前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux TC(Traffic Control)作为损伤仪的基础配置和使用

Linux TC(Traffic Control)作为损伤仪的基础配置和使用

原创
作者头像
Nujil
发布2023-07-12 10:43:36
5401
发布2023-07-12 10:43:36
举报
文章被收录于专栏:CNotesCNotes

使用场景

当我们有要在某两台设备之间的链路上人为增加一定的时延,丢包,损伤的需求时,最简易的方法是在两台设备之间加入一台 Linux 服务器,分别与两个设备直连,服务器上作为一个纯二层 bridge 透传报文;同时使用Linux操作系统中的流量控制器TC(Traffic Control)用于Linux内核的流量控制来实现对于链路流量增加时延,丢包及损伤。

这里我们仅介绍TC作为损伤仪的最基本使用方法,关于TC(Traffic Control)的具体原理和规则可以参考https://cloud.tencent.com/developer/article/1409664

使用方法:

如上拓扑图所示环境,设备端 Router-1 和 Router-2 的配置不需要改动,仅需在服务器侧做一些配置即可在 Router-1 和 Router-2 之间链路添加损伤,具体配置如下:

创建 bridge:

代码语言:txt
复制
brctl addbr br1

将服务器连接设备的两个网卡加入到刚才创建的 bridge

代码语言:txt
复制
brctl addif br1 ens3

brctl addif br1 ens3d1

将bridge状态置成 up并确认

代码语言:txt
复制
ip link set br1 up
brctl show
代码语言:txt
复制
root@dmage-server-a1:/etc# brctl show

bridge name        bridge id                STP enabled        interfaces

br1                8000.78aa82125bac        no                  ens3
                                                                ens3d1

使用 TC 按需添加损伤,以添加时延为例:

增加 200ms时延

代码语言:txt
复制
tc qdisc add dev ens3 root netem delay 200ms
代码语言:txt
复制
<Router-1>ping -c 1000 172.16.11.50

Ping 172.16.11.50 (172.16.11.50): 56 data bytes, press CTRL+C to break

56 bytes from 172.16.11.50: icmp\_seq=6 ttl=255 time=0.622 ms

56 bytes from 172.16.11.50: icmp\_seq=7 ttl=255 time=0.593 ms

56 bytes from 172.16.11.50: icmp\_seq=8 ttl=255 time=200.664 ms

56 bytes from 172.16.11.50: icmp\_seq=9 ttl=255 time=202.150 ms

增加 10%的丢包

代码语言:txt
复制
tc qdisc add dev ens3 root netem loss 10%

添加 5%的损坏

代码语言:txt
复制
tc qdisc change dev ens3 root netem corrupt 5%

如果要去除损伤,执行以下命令:

代码语言:txt
复制
tc qdisc del dev ens3 root

相关检查命令:

代码语言:txt
复制
tc qdisc show dev ens3

root@dmage-server-a1:~# tc qdisc show dev ens3

qdisc netem 8003: root refcnt 257 limit 1000 delay 200.0ms
代码语言:txt
复制
tc -s qdisc

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用场景
  • 使用方法:
    • 创建 bridge:
      • 将服务器连接设备的两个网卡加入到刚才创建的 bridge
        • 将bridge状态置成 up并确认
          • 使用 TC 按需添加损伤,以添加时延为例:
            • 增加 200ms时延
            • 增加 10%的丢包
            • 添加 5%的损坏
          • 如果要去除损伤,执行以下命令:
            • 相关检查命令:
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档