我正在尝试使用服务器端口1234上的tc工具模拟5%的数据包丢失。这是我的步骤-
sudo tc qdisc del dev eth0 root
sudo tc qdisc add dev eth0 root handle 1: prio
sudo tc filter add dev eth0 parent 1: protocol ip prio 1 u32 flowid 1:1 match ip dport 1234 0xffff
sudo tc qdisc add dev eth0 parent 1:1 handle 1: netem loss 5%
以上命令期间没有错误。但是,当我将任何TCP通信发送到该端口时,没有观察到数据包丢失。 我在上述命令中做错了什么?
感谢您的帮助。
答案 0 :(得分:0)
有关类似情况,请参见https://serverfault.com/a/841865/342799。
我在测试设备中拥有的命令可以丢弃5.5%的数据包:
# tc qdisc add dev eth0 root handle 1: prio priomap 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
# tc qdisc add dev eth0 parent 1:1 handle 10: netem loss 5.5% 25%
# DST_IP=1.2.3.4/32
# tc filter add \
dev eth0 \
parent 1: \
protocol ip \
prio 1 \
u32 \
match ip dst $DST_IP \
flowid 1:1
要确认,请运行:
# ping -f -c 1000 $DST_IP
此设置之前和之后。
注意:如果您进行大量的ping通,几乎所有托管服务提供商都会开始限制您的流量。