Есть тестовый роутер1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc htb state UP qlen 1000
link/ether 00:04:76:0f:a7:2e brd ff:ff:ff:ff:ff:ff
inet 10.128.1.12/24 brd 10.128.1.255 scope global eth0
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:0a:e6:66:10:f0 brd ff:ff:ff:ff:ff:ff
inet 10.128.1.13/24 brd 10.128.1.255 scope global eth1
eth0 - выход в сеть и инет
eth1 - подключена рабочая станция
на рабочей станции стоит дефолтовый роутинг на 10.128.1.13, откуда и посылаем/принимаем пакеты
на роутере стоит ядро 2.6.25 с наложенным патчем l7-protocols-2008-04-23
iptables 1.4.0 патчен им же
iproute2 версии 2.6.25
ставим правило
iptables -t mangle -A PREROUTING -m layer7 --l7proto bittorrent -j MARK --set-mark 0x111
(не суть важно какое, в данном случае l7)
смотрим iptables -t mangle -L -v
видим пакеты ловятся и маркируются:
Chain PREROUTING (policy ACCEPT 7288K packets, 6648M bytes)
pkts bytes target prot opt in out source destination
13390 13M MARK all -- any any anywhere anywhere LAYER7 l7proto bittorrent MARK set 0x111
ставим правила tc:
tc qdisc add dev eth0 root handle 1: htb default 12
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 10kbps ceil 100kbps
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 10kbps ceil 100kbps
tc class add dev eth0 parent 1:1 classid 1:12 htb rate 500kbps prio 10
tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip protocol 1 0xff flowid 1:11
tc filter add dev eth0 parent 1:0 protocol ip prio 2 handle 0x111 fw flowid 1:10
смотрим статистику tc -s filter show dev eth0
filter parent 1: protocol ip pref 1 u32
filter parent 1: protocol ip pref 1 u32 fh 800: ht divisor 1
filter parent 1: protocol ip pref 1 u32 fh 800::800 order 2048 key ht 800 bkt 0 flowid 1:11 (rule hit 47583 success 3)
protocol 1 (success 3 )
filter parent 1: protocol ip pref 2 fw
filter parent 1: protocol ip pref 2 fw handle 0x111 classid 1:10
в целом tc работает, но по марку 0x111 ничего нет
почему?
пробовал ловить марки через ip rule - ловит
а tc нет