Linux下模拟网络环境
前言:linux下模拟网络环境,主要是使用tc命令改写内核信息来模拟网卡收发包的延迟和丢失率。
分为三部分:
1 安装linux系统,可使用redhat5.x企业版,在安装的时候注意勾选“系统网络设置”工具。
2 建立透明桥接,需要至少2个物理网口,如果需要额外管理,则需要3个。
建立透明桥接步骤如下:
网卡准备,网卡不能设置ip地址
a建立桥组
#brctl addbr bridgename
b将两层接口加入桥组
#brctl addif bridgename device
c把生成的网桥UP起来
#ifconfig bridgename up
d检验
#brctl show 可以看到桥接信息
#/user/sbin/brctl show 查看桥接信息
#ifconfig –a 可以看到桥接端口
#接上网线进行测试
其他命令:
#brctl delbr bridgename 删除桥接组
#brctl delif bridgename device 将物理接口从桥接组删除
3 使用tc命令模拟网络环境
Tc是linux下的流量控制工具,基本功能模块包括队列、分类、过滤器、通过相关参数进行流量控制,可通过‘man tc’命令查看tc的所有操作信息。
注:限制接口应为连接client端接口。
我们常用的是队列模块,命令格式如下:
tc qdisc [ add | del | change | replace | link ] dev DEV [ parent qdisc-id | root ] [ handle qdisc-id ] qdisc [ qdisc spe-cific parameters ]
命令解说:
#tc qdisc add dev eth0 root netem delay 1000ms 所有经过eth0的数据延迟1000ms
#tc qdisc add dev eth0 root netem delay 1000ms 500ms 数据延迟范围在1000±500ms
#tc qdisc add dev eth0 root netem delay loss 10% 丢包率为10%
#tc qdisc add dev eth0 root netem delay loss 10% 5% 丢包率范围在10±5%
# tc qdisc add dev eth0 root netem duplicate 10% 随机产生10%的重复包
# tc qdisc add dev eth0 root netem corrupt 10% 随机产生10%的损坏包
# tc qdisc add dev eth0 root netem delay 10ms reorder 25% 50% 有25%的包(50%相关)立即传送,其他延迟10ms
# tc qdisc 查看信息
#以上命令可叠加使用