добрый день осваиваю ограничение скорости при помощи traffic control
моя конфигурация следующая [что бы не занимать много места выложен пример только с двумя сетевыми адресами]
rmmod ifb
modprobe ifb numifbs=1
tc qdisc del dev eth4 root
tc qdisc add dev eth4 root handle 1: htb default 9
tc class add dev eth4 parent 1: classid 1:1 htb rate 10000MBit ceil 10000MBit
tc class add dev eth4 parent 1:1 classid 1:9 htb rate 10000MBit ceil 10000MBit
tc qdisc add dev eth4 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 eth4 ingress
tc filter add dev eth4 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 10000MBit ceil 10000MBit
tc class add dev ifb0 parent 1:1 classid 1:9 htb rate 10000MBit ceil 10000MBit
tc qdisc add dev ifb0 parent 1:9 handle 9: sfq perturb 10
tc filter add dev eth4 parent 1:0 handle 10: protocol ip u32 divisor 256
tc filter add dev eth4 parent 1:0 protocol ip u32 ht 800:: match ip dst 10.3.5.0/24 hashkey mask 0x000000ff at 16 link 10:
tc class add dev eth4 parent 1:1 classid 1:a htb rate 100Mbit ceil 100Mbit
tc qdisc add dev eth4 parent 1:a handle a: sfq perturb 10
tc filter add dev eth4 parent 1:0 protocol ip prio 1 u32 ht 10:2c: match ip dst 10.3.5.44/32 flowid 1:a
tc class add dev ifb0 parent 1:1 classid 1:a htb rate 100Mbit ceil 100Mbit
tc qdisc add dev ifb0 parent 1:a handle a: sfq perturb 10
tc filter add dev ifb0 parent 1:0 protocol ip prio 1 u32 ht 800:: match ip src 10.3.5.44/32 flowid 1:a
tc class add dev eth4 parent 1:1 classid 1:b htb rate 20Mbit ceil 20Mbit
tc qdisc add dev eth4 parent 1:b handle b: sfq perturb 10
tc filter add dev eth4 parent 1:0 protocol ip prio 1 u32 ht 10:19: match ip dst 10.3.5.25/32 flowid 1:b
tc class add dev ifb0 parent 1:1 classid 1:b htb rate 20Mbit ceil 20Mbit
tc qdisc add dev ifb0 parent 1:b handle b: sfq perturb 10
tc filter add dev ifb0 parent 1:0 protocol ip prio 1 u32 ht 800:: match ip src 10.3.5.25/32 flowid 1:b
где
eth4 это сетевой интерфейс на котором настроены подсети ifb0 это виртуальный интерфейс на основе eth4 что бы резать скорость на нем в противположном направлении так как разработчики не смогли реализовать резалку скоростей без этого как мною было прочитано в интернете
сетевухи 10GBit при реальном употреблении 1Gbit-1.5GBit и общей загрузки процессора 30%
скорость режит нормально в обще стороны там где задано ограничение скорости на адрес а там где не задано наблюдаются проблемы со скоростью которая падает от скорости подключения сетевого интерфейса до нескольких мигабит и с потерей пакетов псевдослучайно от 10% до 50% каким то непонятным мне алгоритмом на каждый адрес с других подсетей [при отключении ограничения скоростей потери пакетов исчезают] все что в 10.3.5.0/24 нормально работает а параллельно еще есть подсеть 10.3.4.0/24 которую конфигурация не затрагивает обрезанием скорости конкретно на адрес а только направляет в отдельный класс
возможно что то у меня неверно прописано ибо я возможно еще что то недопонимаю в настройке и возможно кто то здесь хорошо разбирается в настройке и может подсказать в чем моя проблема