Chinaunix首页 | 论坛 | 博客
  • 博客访问: 290034
  • 博文数量: 67
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 802
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-14 16:23
文章分类
文章存档

2011年(4)

2010年(18)

2009年(32)

2008年(13)

我的朋友

分类: 网络与安全

2011-02-23 16:08:32

Linux 中使用 tc 进行流量管理。具体命令的使用请参考 tc 的 man 手册。
本文简单记录一下使用 tc 模拟延时和丢包的命令。

1. 延时
(1)设置延时
  1. # tc qdisc add dev eth0 root netem delay 30ms
上面的命令实现了给 eth0 口发包时添加 30ms 的延时。

(2)显示延时的设置
  1. # tc qdisc show
结果如下:
  1. [root@Kernel-Test test]# tc qdisc show
  2. qdisc pfifo_fast 0: dev eth1 root bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
  3. qdisc netem 8003: dev eth0 root limit 1000 delay 30.0ms
(3)修改延时
  1. # tc qdisc change dev eth0 root netem delay 40ms
(4)删除延时的配置
  1. # tc qdisc del dev eth0 root netem delay 40ms
2. 丢包
设置丢包命令如下:
  1. # tc qdisc add dev eth0 root netem loss 10%
如果你是通过 SSH 登陆设备进行配置丢包的话,配置完这条命令就会感觉到机器访问时有点一卡一卡的。这说明,设备已经开始丢包了,可以通过具体抓包查看。

其他诸如修改、查看、删除的命令,都可以参考上面延时的设置。

最后一点需要注意的是,这两个命令应该都是控制的网卡出口的流量。如果想控制网卡入口的流量,应该是需要确认内核是否明确支持了,如果不支持的话,就需要修改内核配置文件,并重新编译内核。

参考链接:
阅读(3025) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~