Я провожу эксперимент между двумя серверами. Если правила tc не добавлены, пропускная способность между двумя серверами составляет около 7 Гбит / с, протестированных с помощью iperf3.
Затем я добавляю tc-фильтр на основе HTB для тестирования. Когда установленный мной предел скорости меньше 300 Мбит / с или 350 Мбит / с, результат теста соответствует ожиданиям.
Но когда значение ограничения скорости превышает 350 Мбит / с, например 500 Мбит / с или 1 Гбит / с, значение пропускной способности между двумя серверами по-прежнему составляет около 350 Мбит / с, протестированных с помощью iperf3.
Я неправильно использую tc-фильтр? Следует ли использовать фильтр tc в сочетании с классом tc?
Я использую следующие команды TC. Странно то, что независимо от того, какое значение ограничения скорости установлено для входящего направления, оно может достичь ожидаемого, но HTB не может. Представленные результаты одинаковы при использовании ipv4 или ipv6.
tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: protocol all prio 1 u32 match ip6 dst 2408:8:8:6::16 police rate 1000000kbit burst 800000kbit mtu 64k drop flowid :1
tc qdisc add dev eth0 root handle 1: htb
tc filter add dev eth0 parent 1: protocol all prio 1 u32 match ip6 src 2408:8:8:6::16 police rate 500000kbit burst 400000kbit mtu 64k drop flowid :1
Спасибо за помощь