Итак, есть небольшая делема. Есть manad, но нужно ли его поддерживать в inet. Если это команды типа
Код:
iptables -t filter -I FORWARD 1 -s $ip -j ACCEPT
то, тут хватит ssh и telnet активаторов.
Если это что-то типа
Код:
sbin/tc class add dev eth0 parent 1:0 classid 1:[N1] htb rate 256kbit burst 4k prio 1
/sbin/tc qdisc add dev eth0 parent 1:[N1] handle [N1]: sfq perturb 10 quantum 1500
/sbin/tc class add dev eth0 parent 1:0 classid 1:[N2] htb rate 128kbit burst 4k prio 1
/sbin/tc qdisc add dev eth0 parent 1:[N2] handle [N2]: sfq perturb 10 quantum 1500
<LOOP>
/sbin/tc filter add dev eth0 parent 1:0 protocol ip prio [N1] u32 match ip dst {A} flowid 1:[N1]
</LOOP>
<LOOP>
/sbin/tc filter add dev eth0 parent 1:0 protocol ip prio [N2] u32 match ip src {A} flowid 1:[N2]
</LOOP>
То, тут сложнее. Manad следил за использованием классов [N1], [N2] и т.п. Он выделял свободный класс на новый договор и хранил его в памяти . Если это делать в обработчике активации сервиса , то его надо хранить в какой-то таблице тогда, так как обработчик , это не демон и ничего в памяти не хранит. Проблема тут в связке договор -классы . Но при этом количество классов в iproute2 может быть максимум FFFF(2 байта), а код договора у нас это FFFFFFFF(4 байта). Иначе код договора можно использовать в качестве класса(правда только одного , а тут в примере надо 2 на договор). Поэтому все эти извраты по выделению нового класса(классов) на на каждый договор. Особенность работы iproute2. Еще вариант хранить отдельно класс в каждом сервисе (можно как вариант использовать поле vlan), но при этом если нужно пожать скорость на нескольких сервисах сразу, то делать их дочерними тому , в котором указан vlan. Но это опять же в случае одного класса . А тут 2 класса как минимум. У skуb-а в примере один класс, но это частный случай или вообще ошибка.