1 2 3 4 5 6 7 8 9 10 11 12 | #tc ad add dev eth0 root handle 1: prio hands 3 priomap 1---1 16 个 1(tos 比特 ) 表示所有数据包 注 : 此命令自动在 1: 下创建三子类 1:1 1:2 1:3 此例中只用到 1:1 #tc qd add dev eth0 parent 1:1 handle 11:sfq #tc qdisc add dev eth0 parent 1:1 handle 12: tbf rate 20kbit buffer 1600 limit 3000 #tc qd add dev eth0 parent 1:1 handle 13:sfq #tc filter add dev eth0 parent 1:1 prio 1003 protocol ip u32 match ip src 192.168.1.0/24 flowid 1:13 #tc filter add dev eth0 parent 1:1 prio 1001 protocol ip u32 match ip src 10.0.0.0/8 flowid 1:12 #tc filter add dev eth0 parent 1:1 protocol ip prio 1001 u32 match ip tos 0x10 0xff flowid 1:11 交互和最小延迟的数据流 |
1 2 3 4 5 6 7 8 9 10 11 | #tc qd del dev eth1 root #tc qdisc add dev eth1 root handle 1: htb default 12 #tc class add dev eth1 parent 1: classid 1:1 htb rate 2Mbit burst 1500000 在 1: 下定义子类 1:1 #tc class add dev eth1 parent 1:1 classid 1:11 htb rate 512kbit burst 150000 ceil 1Mbit #tc qd add dev eth1 parent 1:11 handle 111: sfq #tc class add dev eth1 parent 1:1 classid 1:12 htb rate 1Mbit burst 150000 ceil 1Mbit #tc qd add dev eth1 parent 1:12 handle 122: sfq 注 : 亦可不在 1:12 class 下定义 122: qd #tc class add dev eth1 parent 1:1 classid 1:13 htb rate 2Mbit burst 150000 ceil 2Mbit #tc qd add dev eth1 parent 1:13 handle 133: sfq #tc filter add dev eth1 parent 1: prio 10001 protocol ip u32 match ip src 192.168.1.0/24 flowid 1:12 其它二类亦如此 .. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | tc qdisc add dev eth0 root handle 1: htb default 24 tc class add dev eth0 parent 1: classid 1:1 htb rate 300kbit ceil 300kbit prio 0 tc class add dev eth0 parent 1: classid 1:2 htb rate 150kbit prio 3 tc class add dev eth0 parent 1:1 classid 1:11 htb rate 300kbit ceil 300kbit prio 1 tc class add dev eth0 parent 1:1 classid 1:12 htb rate 150kbit ceil 250kbit prio 2 tc class add dev eth0 parent 1:2 classid 1:21 htb rate 100kbit ceil 150kbit prio 4 tc class add dev eth0 parent 1:2 classid 1:22 htb rate 30kbit ceil 140kbit prio 5 tc class add dev eth0 parent 1:2 classid 1:23 htb rate 15kbit ceil 130kbit prio 6 tc class add dev eth0 parent 1:2 classid 1:24 htb rate 5kbit ceil 50kbit prio 7 tc qdisc add dev eth0 parent 1:11 handle 111: sfq perturb 5 tc qdisc add dev eth0 parent 1:12 handle 112: sfq perturb 5 tc qdisc add dev eth0 parent 1:21 handle 121: sfq perturb 10 tc qdisc add dev eth0 parent 1:22 handle 122: sfq perturb 10 tc qdisc add dev eth0 parent 1:23 handle 133: sfq perturb 10 tc qdisc add dev eth0 parent 1:24 handle 124: sfq perturb 10 tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 1 fw classid 1:11 tc filter add dev eth0 parent 1:0 protocol ip prio 2 handle 2 fw classid 1:12 tc filter add dev eth0 parent 1:0 protocol ip prio 3 handle 3 fw classid 1:21 tc filter add dev eth0 parent 1:0 protocol ip prio 4 handle 4 fw classid 1:22 tc filter add dev eth0 parent 1:0 protocol ip prio 5 handle 5 fw classid 1:23 tc filter add dev eth0 parent 1:0 protocol ip prio 6 handle 6 fw classid 1:24 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | echo 1 > /proc/sys/net/ipv4/ip_forward iptables -F iptables -t nat -F iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to-source 124.42.97.36 iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 124.42.97.36 iptables -I PREROUTING -t mangle -p tcp -s 192.168.0.0/24 -j MARK --set-mark 1 iptables -I PREROUTING -t mangle -p tcp -s 192.168.1.0/24 -j MARK --set-mark 2 注 : 可分数据包类型标记 tc qdisc del dev eth0 root # 加一个根队列 , 速率用网卡的速率 10Mbit,也可用上传的速率 tc qdisc add dev eth0 root handle 100: cbq bandwidth 10Mbit avpkt 1000 # 加一个根类 tc class add dev eth0 parent 100:0 classid 100:1 cbq bandwidth 10Mbit rate 10Mbit allot 1514 weight 1Mbit prio 8 maxburst 8 avpkt 1000 bounded # 加一个子类用于内网 1 速率限制为 300Kbit tc class add dev eth0 parent 100:1 classid 100:2 cbq bandwidth 10Mbit rate 300Kbit allot 1513 weight 30Kbit prio 5 maxburst 8 avpkt 1000 bounded # 加一个子类用于内网 2 速率限制为 320Kbit tc class add dev eth0 parent 100:1 classid 100:3 cbq bandwidth 10Mbit rate 320Kbit allot 1513 weight 32Kbit prio 6 maxburst 8 avpkt 1000 bounded # 设置队列规则 tc qdisc add dev eth0 parent 100:2 sfq quantum 1514b perturb 15 tc qdisc add dev eth0 parent 100:3 sfq quantum 1514b perturb 15 # 将队列和 fw 过滤器映射起来 其中 hand 1 的 1 是开始用 iptables 做的标记 hand 2 的 2 也是开始用 iptables 做的标记 tc filter add dev eth0 parent 100:0 protocol ip prio 1 handle 1 fw classid 100:2 tc filter add dev eth0 parent 100:0 protocol ip prio 2 handle 2 fw classid 100:3 流量监测相关命令 : tc -s qdisc/class ls dev eth0 tc -s qdisc/class ls dev eth1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #!/bin/sh PWD=/home/huaying/net TC=/sbin/tc $TC class ls dev eth0 $TC qdisc del dev eth0 root $TC qdisc add dev eth0 root handle 1: htb r2q 1 U32="$TC filter add dev eth0 parent 1: protocol ip prio 16 u32" while read line do ip=`echo $line | awk '{print $1}'` limit=`echo $line | awk '{print $2}'` $TC class add dev eth0 parent 1: classid 1ip htb rate "$limit"kbit burst 1k $U32 match ip dst 192.168.1.$ip/32 flowid 1ip done < $PWD/ip_limit 注 :ip_limit 分行记录 , 第一列为 ip, 第二列为限制的带宽 , 二列以 tables 分开 .. 服务器限速 #!/bin/sh /sbin/tc qdisc del dev eth0 root /sbin/tc qdisc add dev eth0 root handle 1:0 htb r2q 1 /sbin/tc class add dev eth0 parent 1:0 classid 1:1 htb rate 75mbit burst 10k /sbin/tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dst 0.0.0.0/0 flowid 1:1 /sbin/tc class ls dev eth0 最大限制服务器 eth0 流量在 75Mbit/s |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |