【问题标题】:How can I simulate packet loss using tc netem?如何使用 tc netem 模拟丢包?
【发布时间】:2018-10-19 22:54:44
【问题描述】:

我正在尝试在服务器端口 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】:

    类似情况见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,几乎所有托管服务提供商都会开始限制您的流量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 2015-06-27
      • 2021-09-11
      • 1970-01-01
      • 1970-01-01
      • 2015-01-18
      相关资源
      最近更新 更多