Linux tc筛选器与ip地址不匹配,仅在范围内

Linux tc筛选器与ip地址不匹配,仅在范围内,linux,trafficshaping,Linux,Trafficshaping,我正在尝试建立虚拟网络进行模拟。链接由IP地址决定,我可以调整流量,并为网络掩码定义的范围设置延迟 #!/bin/bash VETH_1="vethf4dbb89" tc qdisc del dev $VETH_1 root tc qdisc add dev $VETH_1 root handle 1: htb default 14 tc class add dev $VETH_1 parent 1: classid 1:0 htb rate 1000Mbps tc class add d

我正在尝试建立虚拟网络进行模拟。链接由IP地址决定,我可以调整流量,并为网络掩码定义的范围设置延迟

#!/bin/bash
VETH_1="vethf4dbb89"

tc qdisc del dev $VETH_1 root

tc qdisc add dev $VETH_1 root handle 1: htb default 14
tc class add dev $VETH_1 parent 1: classid 1:0 htb rate 1000Mbps

tc class add dev $VETH_1 parent 1:0 classid 1:2 htb rate 1000Mbps
tc class add dev $VETH_1 parent 1:0 classid 1:3 htb rate 1000Mbps
tc class add dev $VETH_1 parent 1:0 classid 1:4 htb rate 1000Mbps
tc class add dev $VETH_1 parent 1:0 classid 1:5 htb rate 1000Mbps


tc qdisc add dev $VETH_1 parent 1:2 handle 12: netem loss 0% 1% delay 30ms 10ms
tc qdisc add dev $VETH_1 parent 1:3 handle 13: netem loss 0% 1% delay 200ms 10ms
tc qdisc add dev $VETH_1 parent 1:4 handle 14: netem loss 0% 1% delay 10ms 10ms
tc qdisc add dev $VETH_1 parent 1:5 handle 15: netem loss 0% 1% delay 15ms 10ms

tc filter add dev $VETH_1 parent 1: protocol ip prio 1 u32 match ip dst 172.17.0.3/24 flowid 1:2 
但我只需要过滤特定的IP地址,如

tc filter add dev $VETH_1 parent 1: protocol ip prio 1 u32 match ip dst 172.17.0.3 flowid 1:2 
tc filter add dev $VETH_1 parent 1: protocol ip prio 1 u32 match ip dst 172.17.0.4 flowid 1:3 
tc filter add dev $VETH_1 parent 1: protocol ip prio 1 u32 match ip dst 172.17.0.5 flowid 1:4 
tc filter add dev $VETH_1 parent 1: protocol ip prio 1 u32 match ip dst 172.17.0.6 flowid 1:5
在第一种情况下,使用/24正确捕获所有数据包。没有网络掩码的第二个配置不会捕获任何数据包

tc -s qdisc ls dev veth09840d5
qdisc htb 1: root refcnt 2 r2q 10 default 14 direct_packets_stat 110795 direct_qlen 2
 Sent 268440356 bytes 269182 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc netem 12: parent 1:2 limit 1000 delay 30.0ms  10.0ms
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc netem 13: parent 1:3 limit 1000 delay 200.0ms  10.0ms
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc netem 14: parent 1:4 limit 1000 delay 10.0ms  10.0ms
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
qdisc netem 15: parent 1:5 limit 1000 delay 15.0ms  10.0ms
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0 
编辑:
只有分配给定义接口的ip地址被捕获为目标。但是如何降低其他ip地址的速度呢?

尝试使用iptables来标记数据包,并检查它是否捕获了来自特定ip的流量。

您是否可以扩展您的评论或提供指向资源的链接,解释如何执行您所描述的操作?