加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 使用tc为出站UDP数据包添加延迟

发布时间:2020-12-13 16:40:48 所属栏目:Linux 来源:网络整理
导读:我想在tc中使用fw过滤器对出站UDP数据包施加任意延迟;但是,我无法让过滤器正常工作: tc qdisc add dev eth0 root handle 1: priotc qdisc add dev eth0 parent 1:3 handle 30: netem delay 200mstc filter add dev eth0 parent 1:0 protocol ip prio 3 hand
我想在tc中使用fw过滤器对出站UDP数据包施加任意延迟;但是,我无法让过滤器正常工作:
tc qdisc add dev eth0 root handle 1: prio
tc qdisc add dev eth0 parent 1:3 handle 30: netem delay 200ms
tc filter add dev eth0 parent 1:0 protocol ip prio 3 handle 1 fw flowid 1:3

iptables -A PREROUTING -i eth0 -t mangle -p udp -j MARK --set-mark 1

如果我使用以下u32过滤器,我会得到所需的效果:

tc filter add dev eth0 parent 1:0 protocol ip prio 3 u32 match ip dport 53 0xffff flowid 1:3

我不想使用u32过滤器,更令人不安的是我无法让–ttl-set或–set-tos manglers在Ubuntu 10.04中工作.

这两者可能完全不相关,但我担心数据包没有被iptables标记.我一直无法找到测试标记的方法.

解决方法

我用iptables的另一个功能而不是–set-mark结束了解决我的问题:
iptables -t mangle -A POSTROUTING -o eth0 -p udp -j CLASSIFY --set-class 1:3

在希望完成这个看似简单的任务之前,我希望这可以帮助某些人在tc的复杂性上努力工作.

编辑:

安迪史密斯是对的,我应该一直在标记POSTROUTING链!以下规则应与–set-mark一起使用:

iptables -A POSTROUTING -t mangle -p udp -j MARK --set-mark 1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读