TC限速

上行带宽限制:

tc qdisc del dev eth0 root
tc qdisc add dev eth0 root handle 1: htb
tc class add dev  eth0 parent 1: classid 1:1 htb rate  20mbit ceil 20mbit
tc class add dev  eth0 parent 1:1 classid 1:10 htb rate 10mbit ceil 10mbit
tc qdisc add dev  eth0 parent 1:10 sfq perturb 10
tc filter add dev eth0 protocol ip parent 1: prio 2   u32 match ip dst 172.20.6.0/24 flowid 1:1
#  上面这台,让 172.20.6.0/24 这台跑默认的,主要是为了让这个 ip 连接进来不被控制
tc filter add dev eth0 protocol ip parent 1: prio 50 u32 match ip dst 0.0.0.0/0  flowid 1:10
# 默认让所有的流量都从这个通过

下行带宽:

modprobe ifb
ip link set dev ifb0 up
tc qdisc add dev eth0 handle ffff: ingress
tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
tc qdisc add dev ifb0 root handle 1: htb default 10
tc class add dev ifb0 parent 1: classid 1:1 htb rate 10mbit 
tc class add dev ifb0 parent 1:1 classid 1:10 htb rate 10mbit ceil 10mbit

可以通过报文中的源ip进行限速控制,如下配置:

tc qdisc add dev ifb0 root handle 1: htb default 20
tc class add dev ifb0 parent 1: classid 1:1 htb rate 10000mbit
tc class add dev ifb0 parent 1:1 classid 1:10 htb rate 2000mbit
tc class add dev ifb0 parent 1:1 classid 1:20 htb rate 1000mbit
tc class add dev ifb0 parent 1:1 classid 1:30 htb rate 500mbit
tc filter add dev ifb0 protocol ip parent 1:0 prio 1 u32 match ip src 129.9.123.85 flowid 1:10
tc filter add dev ifb0 protocol ip parent 1:0 prio 1 u32 match ip src 129.9.123.89 flowid 1:20 
tc filter add dev ifb0 protocol ip parent 1:0 prio 1 u32 match ip src 129.9.123.88 flowid 1:20

你可能感兴趣的:(TC限速)