通过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}