使用 tc 将数据包延迟到多个端口

使用 tc 将数据包延迟到多个端口

在读了几页之后 并且无需对 Linux 内核有很深的了解,我就可以仅使用树的前三个叶子来过滤最多 3 个端口。

tc qdisc del dev enp0s3 root //clear any previous configuration
tc qdisc add dev enp0s3 root handle 1: prio //start new queue disc but no classes yet

tc filter add dev enp0s3 parent 1: protocol ip prio 1 u32 match ip dport 6332 0xffff flowid 1:1
tc filter add dev enp0s3 parent 1: protocol ip prio 1 u32 match ip dport 6333 0xffff flowid 1:2
tc filter add dev enp0s3 parent 1: protocol ip prio 1 u32 match ip dport 6334 0xffff flowid 1:3

tc qdisc add dev enp0s3 parent 1:1 handle 30: netem delay 146ms 
tc qdisc add dev enp0s3 parent 1:2 handle 20: netem delay 275ms 
tc qdisc add dev enp0s3 parent 1:3 handle 10: netem delay 258ms 

我的问题是,我希望有更多端口过滤器,以便模拟多达 16 个可能端口目的地的大场景。如果我尝试使用10:1我得到的结果添加新过滤器,则延迟不正确,因为它开始添加两个或更多规则,并且我达到了超过 1 秒的延迟,而这是我不想要的。

相关内容