Есть сервер на Ubunut 18.04 (ядро 4.15). Два интерфейса объединены в мост. br_netfilter и xt_mark загружены.
Делаю
tc qdisc delete dev enp3s0f1 root
tc qdisc add dev enp3s0f1 root handle 1: htb
tc class add dev enp3s0f1 parent 1:0 classid 1:1 htb rate 10000mbit burst 15k mtu 1470 quantum 1470
tc class add dev enp3s0f1 parent 1:1 classid 1:20 htb rate 10000mbit prio 00 quantum 1470
tc class add dev enp3s0f1 parent 1:20 classid 1:201 htb rate 100mbit ceil 3000mbit prio 1 burst 15k
tc qdisc add dev enp3s0f1 parent 1:201 handle 201: sfq limit 256 perturb 10 quantum 1470
tc filter add dev enp3s0f1 protocol ip parent 1:0 prio 1 handle 21 fw flowid 1:201
iptables -t mangle -F
iptables -t mangle -A POSTROUTING -m physdev --physdev-out enp3s0f1 -m ndpi --ssl -j MARK --set-mark 21
Выхлопы.
root@server:~# iptables -t mangle -L POSTROUTING -vn
Chain POSTROUTING (policy ACCEPT 286M packets, 306G bytes)
pkts bytes target prot opt in out source destination
31M 34G MARK all -- * * 0.0.0.0/0 0.0.0.0/0 PHYSDEV match --physdev-out enp3s0f1 ndpi protocol ssl MARK set 0x15
root@server:~# tc -s -d -r filter show dev enp3s0f1
filter parent 1: protocol ip pref 1 fw chain 0
filter parent 1: protocol ip pref 1 fw chain 0 handle 0x15 classid 1:201
но в нужный класс трафик не попадает.
tc -s class show dev enp3s0f1 dpi: Sun Jun 6 11:51:20 2021
class htb 1:1 root rate 10Gbit ceil 10Gbit burst 13750b cburst 0b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 187 ctokens: 15
class htb 1:20 parent 1:1 rate 10Gbit ceil 10Gbit burst 0b cburst 0b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 15 ctokens: 15
class htb 1:201 parent 1:20 leaf 10: prio rate 100Mbit ceil 3Gbit burst 15337b cburst 1125b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 19187 ctokens: 62
Второй день голову ломаю. Что ему не нравится?