用linux做一个网络损伤测试仪器

公司最近网络设备越来越多了,很多实验室环境都很好用,到现实环境就会出问题。考虑用linux做一个网桥,通过TC规则设置网络损伤、增加时延最好是随机时延,并引入一定量的丢包。

以下暂时还没试用,先记录一下:

linux tc 随机时延
在Linux中使用tc命令可以设置网络流量的控制规则。要为特定的数据包添加随机时延,可以通过修改qdisc(queue discipline)来实现。

下面是一个示例命令,将所有进入eth0接口的IPv4数据包的传输速度限制为1Mbps并且添加5ms到20ms之间的随机时延:

sudo tc qdisc add dev eth0 root handle 1: htb default 10
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit burst 1k
sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1mbit burst 1k
sudo tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip src <源IP地址> flowid 1:10
sudo tc qdisc add dev eth0 parent 1:10 handle 10: netem delay random 5ms 20ms
其中,<源IP地址>需要替换成实际的源IP地址。这些命令会创建一个根类(root)、两个子类(class)和一个过滤器(filter),然后应用netem模块来引入随机时延。

linux作为网络损伤仪使用:
https://cloud.tencent.com/developer/article/2301767