0%

linux流量控制器tc

linux系统中的流量控制器(Traffic Control)主要是在输出端口处建立一个队列进行流量控制。

组件

netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块。该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽、传输延迟、丢包等等情况。

模拟延迟

  • 将 ens192 网卡的传输设置为延迟500毫秒发送
1
tc qdisc add dev ens192 root netem delay 500ms
  • 指定对应的IP流
1
2
3
4
tc qdisc add dev ens192 root handle l: htb r2g 1
tc class add dev ens192 parent 1: classid 1:1 htb rate 100mbit ceil 100mbit
tc filter add dev ens192 parent 1: protocol ip prio 16 u32 match ip src 10.22.208.107 flowid 1:1
ens192 parent 1:1 handle 2: netem delay 500ms

常见问题

设置流量控制的时候,遇到报错如下。

image-20240307210353185

首先检查对应的驱动模块是否加载,如果未加载,如未加载需要先加载sch_netem模块。

image-20240614134942059

执行命令 tc qdisc del dev ens192 root删除对应的过滤器。

reference

[1] https://www.cnblogs.com/yulia/p/10346339.html

[2] https://blog.csdn.net/Hh20161314/article/details/81408037

小主,路过打个赏再走呗~