tc 过滤器不适用于虚拟接口和物理接口之间

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 虚拟机。

我利用自己在这方面的一点知识做了一些研究,但还是不明白这里的问题是什么。因此,欢迎大家提出建议。

相关内容