如何使用tc netem模拟数据包丢失?

问题描述 投票:1回答:1

我试图使用服务器端口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流量时,没有观察到丢包。我在上面的命令中做错了什么?

任何帮助表示赞赏。

filter controls network-traffic
1个回答
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

在此设置之前和之后。

注意:如果您进行大量洪水淹没,几乎所有托管服务提供商都会开始限制您的流量。

© www.soinside.com 2019 - 2024. All rights reserved.