Код: Выделить всё
tc qdisc add dev eth0 root handle 1:0 cbq avpkt 10000 bandwidth 100mbit
tc qdisc add dev ppp0 root handle 2:0 cbq avpkt 10000 bandwidth 512kbit
tc class add dev eth0 parent 1:0 classid 1:101 cbq rate 256kbit allot 1500 bounded isolated
tc class add dev eth0 parent 1:0 classid 1:102 cbq rate 256kbit allot 1500 bounded isolated
tc class add dev eth0 parent 1:0 classid 1:103 cbq rate 80kbit allot 1500 bounded isolated
tc class add dev ppp0 parent 2:0 classid 2:201 cbq rate 256kbit allot 1500 bounded isolated
tc class add dev ppp0 parent 2:0 classid 2:202 cbq rate 256kbit allot 1500 bounded isolated
tc class add dev ppp0 parent 2:0 classid 2:203 cbq rate 80kbit allot 1500 bounded isolated
tc filter add dev eth0 parent 1:0 protocol ip handle 101 fw flowid 1:101
tc filter add dev eth0 parent 1:0 protocol ip handle 102 fw flowid 1:102
tc filter add dev eth0 parent 1:0 protocol ip handle 103 fw flowid 1:103
tc filter add dev ppp0 parent 2:0 protocol ip handle 201 fw flowid 2:201
tc filter add dev ppp0 parent 2:0 protocol ip handle 202 fw flowid 2:202
tc filter add dev ppp0 parent 2:0 protocol ip handle 203 fw flowid 2:203
iptables -t mangle -A POSTROUTING -d 192.168.2.162 -s ! 192.168.0.0/21 -j MARK --set-mark 101
iptables -t mangle -A POSTROUTING -d 192.168.2.163 -s ! 192.168.0.0/21 -j MARK --set-mark 102
iptables -t mangle -A POSTROUTING -d 192.168.7.10 -s ! 192.168.0.0/21 -j MARK --set-mark 103
iptables -t mangle -A PREROUTING -s 192.168.2.162 -d ! 192.168.0.0/21 -j MARK --set-mark 201
iptables -t mangle -A PREROUTING -s 192.168.2.163 -d ! 192.168.0.0/21 -j MARK --set-mark 202
iptables -t mangle -A PREROUTING -s 192.168.7.10 -d ! 192.168.0.0/21 -j MARK --set-mark 203При попытке сделать следующее:
Код: Выделить всё
iptables -t mangle -A POSTROUTING -d 192.168.2.162 -s ! 195.222.0.0/16 -j MARK --set-mark 101
iptables -t mangle -A POSTROUTING -d 192.168.2.163 -s ! 195.222.0.0/16 -j MARK --set-mark 102
iptables -t mangle -A POSTROUTING -d 192.168.7.10 -s ! 195.222.0.0/16 -j MARK --set-mark 103
iptables -t mangle -A PREROUTING -s 192.168.2.162 -d ! 195.222.0.0/16 -j MARK --set-mark 201
iptables -t mangle -A PREROUTING -s 192.168.2.163 -d ! 195.222.0.0/16 -j MARK --set-mark 202
iptables -t mangle -A PREROUTING -s 192.168.7.10 -d ! 195.222.0.0/16 -j MARK --set-mark 203проблема решается, но тогда замедляются пакеты из локальной сети до машины с Debian(при загруженном интернет-соединении тормоза чувствуются уже при работе по ssh).
При попытке сделать следующее
Код: Выделить всё
iptables -t mangle -A POSTROUTING -d 192.168.0.0/21 -s 195.222.0.0/16 -j MARK --set-mark 105
iptables -t mangle -A POSTROUTING -d 192.168.2.162 -s ! 192.168.0.0/21 -j MARK --set-mark 101
iptables -t mangle -A POSTROUTING -d 192.168.2.163 -s ! 192.168.0.0/21 -j MARK --set-mark 102
iptables -t mangle -A POSTROUTING -d 192.168.7.10 -s ! 192.168.0.0/21 -j MARK --set-mark 103
iptables -t mangle -A PREROUTING -s 192.168.0.0/21 -d 195.222.0.0/16 -j MARK --set-mark 205
iptables -t mangle -A PREROUTING -s 192.168.2.162 -d ! 192.168.0.0/21 -j MARK --set-mark 201
iptables -t mangle -A PREROUTING -s 192.168.2.163 -d ! 192.168.0.0/21 -j MARK --set-mark 202
iptables -t mangle -A PREROUTING -s 192.168.7.10 -d ! 192.168.0.0/21 -j MARK --set-mark 203Пакеты маркируются, но проблема не решается. Может кто подскажет, как применяются правила для пакетов в цепочке(до первого совпадения с правилом, или пробегая всю цепочку), или укажет на мои ошибки.
P.S. Я, конечно, понимаю, что можно на клиентах в локальной сети вручную прописать маршруты в подсеть 195.222.0.0, но зачем, если есть маршрутизатор? К тому же, в локальной сети скоро появятся еще маршрутизаторы в другие подсети, так что на машине с Debian появятся еще маршруты.