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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |