LINUX.ORG.RU

Шейпинг трафика

 ,


0

1

использую tc для шейпинга и пытаюсь настроить через хэш таблицы

download поток нормально загоняется для каждого адреса в свою таблицу а upload все равно продолжает идти через таблицу по умолчанию 800:: если upload резать через таблицу по умолчанию 800:: при достижении ~ более 500 отдельных сетевых адресов начинаются затыки в сети если upload при большом количестве отдельных сетевых адресов отключить то затыков в сети не наблюдается

пример рабочего кода с ограничением при upload через таблицу по умолчанию 800::

rmmod ifb
modprobe ifb numifbs=1
tc qdisc del dev eth0 root
tc qdisc add dev eth0 root handle 1: htb default 9
tc class add dev eth0 parent 1: classid 1:1 htb rate 1000MBit ceil 1000MBit
tc class add dev eth0 parent 1:1 classid 1:9 htb rate 1000MBit ceil 1000MBit
tc qdisc add dev eth0 parent 1:9 handle 9: sfq perturb 10

ip link set dev ifb0 up
tc qdisc del dev ifb0 root
tc qdisc del dev ifb0 ingress
tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
tc qdisc add dev ifb0 root handle 1: htb default 9
tc class add dev ifb0 parent 1: classid 1:1 htb rate 1000MBit ceil 1000MBit
tc class add dev ifb0 parent 1:1 classid 1:9 htb rate 1000MBit ceil 1000MBit
tc qdisc add dev ifb0 parent 1:9 handle 9: sfq perturb 10

tc filter add dev eth0 parent 1:0 handle 20: protocol ip u32 divisor 256
tc filter add dev eth0 parent 1:0 protocol ip u32 ht 800:: match ip dst 192.168.0.0/24 hashkey mask 0x000000ff at 16 link 20:

tc filter add dev ifb0 parent 1:0 handle 20: protocol ip u32 divisor 256
tc filter add dev ifb0 parent 1:0 protocol ip u32 ht 800:: match ip src 192.168.0.0/24 hashkey mask 0x000000ff at 16 link 20:

tc class add dev eth0 parent 1:1 classid 1:10 htb rate 10Mbit ceil 10Mbit
tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10
tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 ht 20:15: match ip dst 192.168.0.21/32 flowid 1:10
tc class add dev ifb0 parent 1:1 classid 1:10 htb rate 10Mbit ceil 10Mbit
tc qdisc add dev ifb0 parent 1:10 handle 10: sfq perturb 10
tc filter add dev ifb0 parent 1:0 protocol ip prio 1 u32 ht 800:: match ip src 192.168.0.21/32 flowid 1:10

при upload через отдельную таблицу все равно поток идет через таблицу по умолчанию 800::

...
tc filter add dev ifb0 parent 1:0 protocol ip prio 1 u32 ht 20:15: match ip src 192.168.0.21/32 flowid 1:10

возможно я что то не так формирую в хэш таблицу или оно просто и не должно работать в ifb через хэш таблицы?

Ответ на: комментарий от anonymous

они в теории для каждого интерфейса разные ну то есть параллельные

на тестовой машине вроде заработало с более новым ядром в такой конфигурации без изменения обновлю на следующей недели на рабочем сервере и отпишусь помогло или нет

Izolda ()