使用netem模拟弱网络环境

前段时间为了测试bind递归时的SRTT算法效果,使用netem模拟了一下到几个NS的任意延迟.简单的脚本如下


tc qdisc add dev eth1 handle 1: root htb
tc class add dev eth1 parent 1: classid 1:1 htb rate 100Mbps  quantum 40000
tc class add dev eth1 parent 1:1 classid 1:11 htb rate 100Mbps  quantum 40000
tc class add dev eth1 parent 1:1 classid 1:12 htb rate 100Mbps  quantum 40000
tc class add dev eth1 parent 1:1 classid 1:13 htb rate 100Mbps   quantum 40000
tc class add dev eth1 parent 1:1 classid 1:14 htb rate 100Mbps   quantum 40000

tc qdisc add dev eth1 parent 1:11 handle 10: netem delay 100ms
tc qdisc add dev eth1 parent 1:12 handle 20: netem delay 200ms
tc qdisc add dev eth1 parent 1:13 handle 30: netem delay 300ms
tc qdisc add dev eth1 parent 1:14 handle 40: netem delay 400ms

tc filter add dev eth1 protocol ip parent 1: prio 3 u32  match ip dst xx.xx.1.19/32  flowid 1:11
tc filter add dev eth1 protocol ip parent 1: prio 3 u32  match ip dst xx.xx.3.19/32  flowid 1:12
tc filter add dev eth1 protocol ip parent 1: prio 3 u32  match ip dst xx.xx.5.19/32  flowid 1:13
tc filter add dev eth1 protocol ip parent 1: prio 3 u32  match ip dst xx.xx.7.19/32  flowid 1:14

通过在本机设置到几个NS的不同延迟,对本地的bind发请求,抓包查看Bind到不同NS的请求量,可以对比出不同版本的bind的SRTT行为差异.

此条目发表在dns, net分类目录。将固定链接加入收藏夹。

发表评论