Назад | Перейти на главную страницу

tc-фильтр не применяется между виртуальным интерфейсом и физическим

Я работаю над проектом, направленным на управление сетью между несколькими компонентами. Для целей проекта мы хотим протестировать некоторые плохие сетевые эффекты с помощью netem. Используются следующие команды:

$ tc qdisc add dev virtualif1 root handle 1: htb
$ tc class add dev virtualif1 parent 1: classid 1:10 htb rate 10gbit
$ tc qdisc add dev virtualif1 parent 1:10 handle 20: netem delay 5000ms

Загвоздка в том, что я новичок в этом проекте и в управлении сетью Linux, и я должен понять и исправить проблемы ... Итак, насколько я понимаю, это создает какие-то правила, которые можно применять или нет.

Теперь мы применяем его, используя:

$ tc filter add dev virtualif1 parent 1: protocol ip prio 1 u32 match ip src 127.78.0.25/32 match ip dst 127.78.0.98/32 flowid 1:13

Моя проблема в том, что когда ip 127.78.0.98 относится к виртуальному интерфейсу, задержка составляет пять секунд, как и предполагалось, но когда он относится к физическому интерфейсу, ничего не происходит и задержка не применяется. Я тестировал другой способ (от физического интерфейса к виртуальному и адаптируя команды tc class и tc qdisc), и задержки тоже не было.

Мы работаем на виртуальной машине с Centos 7.7.1908.

Я провел некоторое исследование, обладая небольшими знаниями в этой области, но я не могу понять, в чем проблема. Так что все советы по этому поводу приветствуются.