LINUX.ORG.RU
ФорумAdmin

Вопрос по HTB, ESFQ...


0

0

Есть канал 128 Кбит на мир и 1 Мбит на Украину. Хочу поделить каждый из них на всех пользователей локальной сети поровну с займом полосы. 
Всю фильтрацию провожу по MARK меткам в mangle таблице iptables. Еще желательно выделить незначительный по скоростям, но важный по задержкам траффик игрушек, dns-запросов, ssh... 

Локальная сеть: 192.168.12.0/24 (7 машин)
Провайдер: 10.0.5.0/24 
Сервер (на котором все это делается и который есть шлюз): 192.168.12.33 и 10.0.5.164 соответственно.

Вот мой конфиг:

htb:
-----------------------------------------------------------------------
LS=285Kbit
US=143Kbit
WS=18Kbit

/sbin/tc qdisc del dev eth1 root
/sbin/tc qdisc add dev eth1 root handle 1 htb default 0 r2q 10

/sbin/tc class add dev eth1 parent 1: classid 1:2 htb rate 100Mbit




##############################        Ukraine       ####################################

/sbin/tc class add dev eth1 parent 1:2 classid 1:20 htb rate 1Mbit ceil 2Mbit prio 1

/sbin/tc class add dev eth1 parent 1:20 classid 1:21 htb rate $US ceil 1Mbit prio 1
/sbin/tc qdisc add dev eth1 parent 1:21 handle 21 esfq perturb 5 hash dst
/sbin/tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 210 fw classid 1:21

/sbin/tc class add dev eth1 parent 1:20 classid 1:22 htb rate $US ceil 1Mbit prio 1
/sbin/tc qdisc add dev eth1 parent 1:22 handle 22 esfq perturb 5 hash dst
/sbin/tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 211 fw classid 1:22

/sbin/tc class add dev eth1 parent 1:20 classid 1:23 htb rate $US ceil 1Mbit prio 1
/sbin/tc qdisc add dev eth1 parent 1:23 handle 23 esfq perturb 5 hash dst
/sbin/tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 212 fw classid 1:23

/sbin/tc class add dev eth1 parent 1:20 classid 1:24 htb rate $US ceil 1Mbit prio 1
/sbin/tc qdisc add dev eth1 parent 1:24 handle 24 esfq perturb 5 hash dst
/sbin/tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 213 fw classid 1:24

/sbin/tc class add dev eth1 parent 1:20 classid 1:25 htb rate $US ceil 1Mbit prio 1
/sbin/tc qdisc add dev eth1 parent 1:25 handle 25 esfq perturb 5 hash dst
/sbin/tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 218 fw classid 1:25

/sbin/tc class add dev eth1 parent 1:20 classid 1:26 htb rate $US ceil 1Mbit prio 1
/sbin/tc qdisc add dev eth1 parent 1:26 handle 26 esfq perturb 5 hash dst
/sbin/tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 220 fw classid 1:26

/sbin/tc class add dev eth1 parent 1:20 classid 1:27 htb rate $US ceil 1Mbit prio 1
/sbin/tc qdisc add dev eth1 parent 1:27 handle 27 esfq perturb 5 hash dst
/sbin/tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 224 fw classid 1:27

###############################         World        ###################################

/sbin/tc class add dev eth1 parent 1:2 classid 1:3 htb rate 128Kbit ceil 150Kbit prio 1

/sbin/tc class add dev eth1 parent 1:3 classid 1:31 htb rate $WS ceil 128Kbit prio 1
/sbin/tc qdisc add dev eth1 parent 1:31 handle 31 esfq perturb 5 hash dst
/sbin/tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 310 fw classid 1:31

/sbin/tc class add dev eth1 parent 1:3 classid 1:32 htb rate $WS ceil 128Kbit prio 1
/sbin/tc qdisc add dev eth1 parent 1:32 handle 32 esfq perturb 5 hash dst
/sbin/tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 311 fw classid 1:32

/sbin/tc class add dev eth1 parent 1:3 classid 1:33 htb rate $WS ceil 128Kbit prio 1
/sbin/tc qdisc add dev eth1 parent 1:33 handle 33 esfq perturb 5 hash dst
/sbin/tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 312 fw classid 1:33

/sbin/tc class add dev eth1 parent 1:3 classid 1:34 htb rate $WS ceil 128Kbit prio 1
/sbin/tc qdisc add dev eth1 parent 1:34 handle 34 esfq perturb 5 hash dst
/sbin/tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 313 fw classid 1:34

/sbin/tc class add dev eth1 parent 1:3 classid 1:35 htb rate $WS ceil 128Kbit prio 1
/sbin/tc qdisc add dev eth1 parent 1:35 handle 35 esfq perturb 5 hash dst
/sbin/tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 318 fw classid 1:35

/sbin/tc class add dev eth1 parent 1:3 classid 1:36 htb rate $WS ceil 128Kbit prio 1
/sbin/tc qdisc add dev eth1 parent 1:36 handle 36 esfq perturb 5 hash dst
/sbin/tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 320 fw classid 1:36

/sbin/tc class add dev eth1 parent 1:3 classid 1:37 htb rate $WS ceil 128Kbit prio 1
/sbin/tc qdisc add dev eth1 parent 1:37 handle 37 esfq perturb 5 hash dst
/sbin/tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 324 fw classid 1:37

######################## High priority ##############################

/sbin/tc class add dev eth1 parent 1:2 classid 1:555 htb rate 10Mbit prio 0
/sbin/tc qdisc add dev eth1 parent 1:555 handle 555 esfq perturb 5 hash dst
/sbin/tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 555 fw classid 1:555


---------------------------------------------------------------------
iptables:

---------------------------------------------------------------------
iptables -t mangle -F
iptables -t mangle -X
iptables -t mangle -X
iptables -t mangle -F
iptables -t mangle -N LOCAL
iptables -t mangle -N UAIX2
iptables -t mangle -A POSTROUTING -p tcp -s 192.168.12.33 --sport 53 -j MARK --set-mark 555 
iptables -t mangle -A POSTROUTING -p tcp -s 192.168.12.33 --sport 53 -j ACCEPT 
iptables -t mangle -A POSTROUTING -p udp -s 192.168.12.33 --sport 53 -j MARK --set-mark 555 
iptables -t mangle -A POSTROUTING -p udp -s 192.168.12.33 --sport 53 -j ACCEPT 
iptables -t mangle -A POSTROUTING -p tcp -s 192.168.12.33 --sport 22 -j MARK --set-mark 555 
iptables -t mangle -A POSTROUTING -p tcp -s 192.168.12.33 --sport 22 -j ACCEPT 
iptables -t mangle -A POSTROUTING -p icmp -j MARK --set-mark 555 
iptables -t mangle -A POSTROUTING -p icmp -j ACCEPT 
iptables -t mangle -A POSTROUTING -p tcp -m layer7 --l7proto html -j MARK --set-mark 555 
iptables -t mangle -A POSTROUTING -p tcp -m layer7 --l7proto html -j ACCEPT 
iptables -t mangle -A POSTROUTING -o eth1 -s 10.0.0.0/8 -j LOCAL
iptables -t mangle -A POSTROUTING -o eth1 -m geoip --src-cc UA -j UAIX2
iptables -t mangle -A POSTROUTING -p tcp -o eth1 -s 192.168.12.33 --sport 3130 -j UAIX2
iptables -t mangle -A LOCAL -d 192.168.12.10 -j MARK --set-mark 110
iptables -t mangle -A LOCAL -d 192.168.12.12 -j MARK --set-mark 112
iptables -t mangle -A LOCAL -d 192.168.12.13 -j MARK --set-mark 113
iptables -t mangle -A LOCAL -d 192.168.12.16 -j MARK --set-mark 111
iptables -t mangle -A LOCAL -d 192.168.12.18 -j MARK --set-mark 118
iptables -t mangle -A LOCAL -d 192.168.12.20 -j MARK --set-mark 120
iptables -t mangle -A LOCAL -d 192.168.12.24 -j MARK --set-mark 124
iptables -t mangle -A LOCAL -j ACCEPT
iptables -t mangle -A UAIX2 -d 192.168.12.10 -j MARK --set-mark 210
iptables -t mangle -A UAIX2 -d 192.168.12.12 -j MARK --set-mark 212
iptables -t mangle -A UAIX2 -d 192.168.12.13 -j MARK --set-mark 213
iptables -t mangle -A UAIX2 -d 192.168.12.16 -j MARK --set-mark 211
iptables -t mangle -A UAIX2 -d 192.168.12.18 -j MARK --set-mark 218
iptables -t mangle -A UAIX2 -d 192.168.12.20 -j MARK --set-mark 220
iptables -t mangle -A UAIX2 -d 192.168.12.24 -j MARK --set-mark 224
iptables -t mangle -A UAIX2 -j ACCEPT
iptables -t mangle -A POSTROUTING -o eth1 -d 192.168.12.10 -j MARK --set-mark 310
iptables -t mangle -A POSTROUTING -o eth1 -d 192.168.12.12 -j MARK --set-mark 312
iptables -t mangle -A POSTROUTING -o eth1 -d 192.168.12.13 -j MARK --set-mark 313
iptables -t mangle -A POSTROUTING -o eth1 -d 192.168.12.16 -j MARK --set-mark 316
iptables -t mangle -A POSTROUTING -o eth1 -d 192.168.12.18 -j MARK --set-mark 318
iptables -t mangle -A POSTROUTING -o eth1 -d 192.168.12.20 -j MARK --set-mark 320
iptables -t mangle -A POSTROUTING -o eth1 -d 192.168.12.24 -j MARK --set-mark 324

---------------------------------------------------------------------

Вобщем-то все это стоит уже 4 месяца, классифицирует траффик вроде правильно, скорости по статистике tc тоже показывает, но делит он совершенно неравномерно траф между юзерами. Скорее всего что-то все же не работает. И еще приоритетный класс 555 не играет никакой роли - всю полосу на себя отбирают закачки и прочие тяжелые вещи. 
   Скажите, пожалуйста, что не так и по возможности как исправить, чтобы решить задачу. 

Rykun
() автор топика
Ответ на: комментарий от Rykun

Одно из двух: либо я вопрос задал как-то не так, чтобы на него ответили либо у меня не конфиг, а фигня и легче написать новый, чем исправить. В любом случае спасибо всем за поддержку.

Rykun
() автор топика
Ответ на: комментарий от fagot

Cетевой интерфейс, смотрит на LAN.

Rykun
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.