延迟一些本地主机流量

延迟一些本地主机流量

如何延迟一些本地主机流量?(计算机是虚拟机,但希望这并不重要)

以下创建一个新接口并尝试应用tc到它:

ifconfig lo:1 127.0.10.10 netmask 255.0.0.0 up
tc qdisk add dev lo:1 root netem delay 200ms

这也限制了正常环回接口的流量:

$ ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=400 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=400 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=400 ms

127.0.10.10对设备的 IP 地址执行 ping 操作时,也会出现同样的延迟。

如何仅延迟一部分本地主机流量?(例如特定的 IP 地址?)

更新:删除tc qdisk、使用它创建新接口ip link add link lo name lo30 type dummytc对其进行设置不会延迟任何流量。似乎本地计算机的所有流量都会自动路由到lo.

答案1

tc qdisc 可以控制任何 ip 和端口流量:

sudo tc qdisc add dev lo root handle 1: prio bands 4
sudo tc qdisc add dev lo parent 1:4 handle 40: netem delay 200ms
sudo tc filter add dev lo parent 1: protocol ip prio 4 basic match "cmp(u8 at 16 layer network eq 127)
                            and cmp(u8 at 17 layer network eq 0)
                            and cmp(u8 at 18 layer network eq 0)
                            and cmp(u8 at 19 layer network eq 1)" flowid 1:4

相关内容