Обработка команд Manad.
На стороне сервера типы правил проходят следующую обработку : для всех тегов <LOOP> </LOOP> все их содержимое дублируется для каждого ip-адреса. При этом:
1. Макрос вида {A} заменяются на ip-адреса клиента из выбранного диапазона;
2. Подстановки вида {XN}, где X - латинская буква, а N - цифра также обрабатываются для каждого ip-адреса. Начинать нумеровать эти последовательности нужно обязательно с нуля. Для каждого ip-адреса по каждой букве увеличивается индекс. Т.е., например, подстановки {A0}, {A1}, {B0} для 1-го ip-адреса преобразуется в {A0}, {A1}, {B0} ; для второго ip-адреса в {A1}, {A2}, {B1} и т.п.
Т.е. например строки :
<LOOP>pipe {P0} config bw 128000pipe {P1} config bw 128000add {N0} pipe {P0} ip from any to {A} outadd {N0} pipe {P1} ip from {A} to any in</LOOP>для ip-адресов 192.168.184.10, 192.168.184.11 и 192.168.184.12 преобразуются в :
pipe {P0} config bw 128000pipe {P1} config bw 128000add {N0} pipe {P0} ip from any to 192.168.184.10 outadd {N0} pipe {P1} ip from 192.168.184.10 to any inpipe {P2} config bw 128000pipe {P3} config bw 128000add {N1} pipe {P2} ip from any to 192.168.184.11 outadd {N1} pipe {P3} ip from 192.168.184.11 to any inpipe {P4} config bw 128000pipe {P5} config bw 128000add {N2} pipe {P4} ip from any to 192.168.184.12 outadd {N2} pipe {P5} ip from 192.168.184.12 to any in3. Аналогичным образом происходит обработка тега <LOOP_NET > для сетей. Строки дублируются для каждой сети. Тут доступны следующие макросы: {IP} - первый адрес сети, {MASK} - маска сети вида xx.xx.xx.xx, {MASK_WILD} - инвертированная маска сети, {MASK_BIT} - битовая маска сети вида xx.
Напрмер строки вида :
<LOOP_NET>permit {IP}/{MASK_BIT}</LOOP_NET>Для сетей 192.169.185.0/24, 192.169.186.0/24 преобразуется в:
permit 192.169.185.0/24permit 192.169.186.0/24