LINUX.ORG.RU
ФорумAdmin

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


0

1

Итак. Есть скрипт, который генерирует правила шейпера. Есть 2 реальных интерфейса (eth1 - интернет, и eth0 - локалка). Есть 2 виртуальных. Все идущее В eth1 предварительно помещается в imq1. А Все идущее В eth0 предварительно в imq0. А на этих интерфейсах уже шейпиться трафик. Но с недавних пор решили сеть разделить вланами. eth0.10, eth0.15, eth0.20 и т.д. Но как исправить не знаю.

Текущие правила такие

tc qdisc del dev imq0 root
tc qdisc del dev imq1 root
tc qdisc add dev imq0 root handle 1:0 htb
tc class add dev imq0 parent 1:0 classid 1:1 htb rate 100000kbit burst 15k  mtu 1500
tc class add dev imq0 parent 1:1 classid 1:20 htb rate 20000kbit prio 00
tc class add dev imq0 parent 1:20 classid 1:200 htb rate 2000kbit ceil 18000kbit prio 0
tc qdisc add dev imq0 parent 1:200 handle 200 sfq limit 256   quantum 1500
tc class add dev imq0 parent 1:20 classid 1:201 htb rate 2000kbit ceil 18000kbit prio 1
tc qdisc add dev imq0 parent 1:201 handle 201 sfq limit 256   quantum 1500
tc class add dev imq0 parent 1:20 classid 1:202 htb rate 4000kbit ceil 18000kbit prio 2
tc qdisc add dev imq0 parent 1:202 handle 202 sfq limit 256   quantum 1500
tc class add dev imq0 parent 1:20 classid 1:203 htb rate 8000kbit ceil 18000kbit prio 3
tc qdisc add dev imq0 parent 1:203 handle 203 sfq limit 256   quantum 1500
tc class add dev imq0 parent 1:20 classid 1:204 htb rate 3800kbit ceil 18000kbit prio 4
tc qdisc add dev imq0 parent 1:204 handle 204 sfq limit 256   quantum 1500
tc class add dev imq0 parent 1:20 classid 1:205 htb rate 200kbit ceil 18000kbit prio 5
tc qdisc add dev imq0 parent 1:205 handle 205 sfq limit 256   quantum 1500
tc qdisc add dev imq1 root handle 2:0 htb
tc class add dev imq1 parent 2:0 classid 2:1 htb rate 100000kbit burst 15k  mtu 1500
tc class add dev imq1 parent 2:1 classid 2:20 htb rate 20000kbit prio 00
tc class add dev imq1 parent 2:20 classid 2:200 htb rate 2000kbit ceil 18000kbit prio 0
tc qdisc add dev imq1 parent 2:200 handle 200 sfq limit 256   quantum 1500
tc class add dev imq1 parent 2:20 classid 2:201 htb rate 2000kbit ceil 18000kbit prio 1
tc qdisc add dev imq1 parent 2:201 handle 201 sfq limit 256   quantum 1500
tc class add dev imq1 parent 2:20 classid 2:202 htb rate 4000kbit ceil 18000kbit prio 2
tc qdisc add dev imq1 parent 2:202 handle 202 sfq limit 256   quantum 1500
tc class add dev imq1 parent 2:20 classid 2:203 htb rate 8000kbit ceil 18000kbit prio 3
tc qdisc add dev imq1 parent 2:203 handle 203 sfq limit 256   quantum 1500
tc class add dev imq1 parent 2:20 classid 2:204 htb rate 3800kbit ceil 18000kbit prio 4
tc qdisc add dev imq1 parent 2:204 handle 204 sfq limit 256   quantum 1500
tc class add dev imq1 parent 2:20 classid 2:205 htb rate 200kbit ceil 18000kbit prio 5
tc qdisc add dev imq1 parent 2:205 handle 205 sfq limit 256   quantum 1500
tc filter add dev imq0 protocol ip parent 1:0 prio 21 u32  match ip dst 172.20.0.0/20  match ip sport 554 0xffff  flowid 1:201
tc filter add dev imq1 protocol ip parent 2:0 prio 21 u32  match ip src 172.20.0.0/20  match ip dport 554 0xffff  flowid 2:201
tc filter add dev imq0 protocol ip parent 1:0 prio 22 u32  match ip dst 172.20.0.0/20  match ip sport 1755 0xffff  flowid 1:201
tc filter add dev imq1 protocol ip parent 2:0 prio 22 u32  match ip src 172.20.0.0/20  match ip dport 1755 0xffff  flowid 2:201
tc filter add dev imq0 protocol ip parent 1:0 prio 23 u32  match ip dst 172.20.0.0/20  match ip sport 1935 0xffff  flowid 1:201
tc filter add dev imq1 protocol ip parent 2:0 prio 23 u32  match ip src 172.20.0.0/20  match ip dport 1935 0xffff  flowid 2:201
tc filter add dev imq0 protocol ip parent 1:0 prio 24 u32  match ip dst 172.20.0.0/20  match ip sport 5060 0xffff  flowid 1:201
tc filter add dev imq1 protocol ip parent 2:0 prio 24 u32  match ip src 172.20.0.1/20  match ip dport 5060 0xffff  flowid 2:201
tc filter add dev imq0 protocol ip parent 1:0 prio 25 u32  match ip dport 10000 0xffff  flowid 1:202
tc filter add dev imq1 protocol ip parent 2:0 prio 25 u32  match ip sport 10000 0xffff  flowid 2:202
tc filter add dev imq0 protocol ip parent 1:0 prio 26 u32  match ip dport 33459 0xffff  flowid 1:202
tc filter add dev imq1 protocol ip parent 2:0 prio 26 u32  match ip sport 33459 0xffff  flowid 2:202
tc filter add dev imq0 protocol ip parent 1:0 prio 27 u32  match ip dport 32400 0xffff  flowid 1:202
tc filter add dev imq1 protocol ip parent 2:0 prio 27 u32  match ip sport 32400 0xffff  flowid 2:202
tc filter add dev imq0 protocol ip parent 1:0 prio 32 u32  match ip dst 172.20.0.1/20  flowid 1:204
tc filter add dev imq1 protocol ip parent 2:0 prio 32 u32  match ip src 172.20.0.1/20  flowid 2:204
tc filter add dev imq0 protocol ip parent 1:0 prio 33 u32  match u32 0 0  flowid 1:205
tc filter add dev imq1 protocol ip parent 2:0 prio 33 u32  match u32 0 0  flowid 2:205

★★

Где здесь упоминания про eth0/eth1 ?

Смысл imq как раз в том, что ограничиваемый поток дальше идет через разные устройства.

Если весь поток идущий через imq дальше идет на одно устройство, то imq лишний (imho у тебя imq1 - лишний) .

vel ★★★★★
()
Ответ на: комментарий от vel

eth1/0 смысл упоминать. Там обычное правило iptables И я немного ошибся. Шепиться трафик eth1. Просто смотря какой он, исходящий или входящий.

iptables -t mangle -I PREROUTING  -i eth1 -j IMQ --todev 0
iptables -t mangle -I POSTROUTING -o eth1 -j IMQ --todev 1
Вопрос в том, будет ли справедливое разделение, если после imq0 (через него трафик из интернета попадает в сеть) трафик будет идти в разные интерфейсы.

Само деление делаю через

tc filter add dev imq1  parent 2:0 protocol ip handle 200 flow hash keys nfct-dst divisor 1024
tc filter add dev imq0  parent 1:0 protocol ip handle 200 flow hash keys nfct-src divisor 1024

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

Вопрос в том, будет ли справедливое разделение, если после imq0 (через него трафик из интернета попадает в сеть) трафик будет идти в разные интерфейсы.

Да. Это как раз одна из двух задач для которых создавали imq.

Хотя в твоем варианте можно использовать ifb.

Одна из главных проблем ifb - невозможность использования iptables.

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