tc及iptables用于网络异常场景覆盖测试

通过tc工具模型网路延迟、丢包、乱序;网络抖动、闪断等场景

备注 #{eth_ins}未机器网卡; #{time_ins}延迟时间:毫秒  ; #{rate_ins}  丢包率

延迟

tc qdisc add dev #{eth_ins} root netem delay #{time_ins}ms

丢包

tc qdisc add dev #{eth_ins} root netem loss #{rate_ins}%

包乱序

tc qdisc change dev #{eth_ins} root netem delay #{time_ins}ms reorder #{rate_ins1}% #{rate_ins2}%

包损坏

tc qdisc add dev #{eth_ins} root netem corrupt #{rate_ins}%

限速

tc qdisc del dev #{eth_ins} root tc qdisc add dev #{eth_ins} root handle 1: htb tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1mbit ceil 1mbit tc qdisc add dev eth0 parent 1:10 sfq perturb 10 tc filter add dev eth0 protocol ip parent 1: u32 match ip dst"

规则清除

tc qdisc del dev #{eth_ins} root

网络闪断

if #{eth_ins} down &&  if #{eth_ins} up 

指定端口丢包

iptables -A INPUT -p tcp --dport #{port_ins} -j REJECT

iptables -A OUTPUT -p tcp --dport #{port_ins} -j REJECT

iptables -A INPUT -s #{ip_ins} -j DROP

iptables -A OUTPUT -s #{ip_ins} -j DROP

ifconfig #{eth_ins} down && sleep 1 && ifconfig #{eth_ins} up

ifdown #{eth_ins} && sleep 1 && ifup #{eth_ins}

iptables规则清除

iptables -P INPUT ACCEPT && iptables -F

网络流量数据获取

cat /proc/#{pid}/net/dev | grep #{eth_ins}

你可能感兴趣的:(tc及iptables用于网络异常场景覆盖测试)