利用TC進行流量控制(Qos)( 前言: 我看到網(wǎng)絡(luò)上關(guān)于linux系統(tǒng)中的流量控制文章很多不實用,即使參考也不能很快編寫流量控制規(guī)則,且有很多錯誤。之前我也寫過一篇文章,被很多網(wǎng)站引用,為感謝對我的支持,我把一個實例編寫出來,供大家參考和學(xué)習(xí)(絕對實用!,絕對精華!大家可以把網(wǎng)上其它人的文章和我的文章比較一下就知道了!) 需求: 目前公司專線帶寬為 一、 下載設(shè)置1、 規(guī)則 (eth0為內(nèi)網(wǎng)卡,可以限制下載流量) tc qdisc add dev eth0 root handle 2:0 htb default 30 tc class add dev eth0 parent 2:0 classid 2:1 htb rate 4Mbit burst 15k tc class add dev eth0 parent 2:1 classid 2:10 htb rate 4Mbit burst 15k 最大流量4 tc class add dev eth0 parent 2:1 classid 2:20 htb rate 2000kbit ceil 2Mbit burst 15k 最大流量2M tc class add dev eth0 parent 2:1 classid 2:30 htb rate 1000kbit ceil 1000kbit burst 15k 最大流量1M tc qdisc add dev eth0 parent 2:10 handle 10: sfq perturb 10 tc qdisc add dev eth0 parent 2:20 handle 20: sfq perturb 10 tc qdisc add dev eth0 parent 2:30 handle 30: sfq perturb 10 U32_1="tc filter add dev eth0 protocol ip parent 2:0 prio 1 u32" $U32_1 match ip src 192.168.9.0/24 flowid 2:10 (192.168.9.0/24總公司ERP服務(wù)器所在網(wǎng)絡(luò)) 使訪問ERP服務(wù)器可用最大帶寬 U32_2="tc filter add dev eth0 protocol ip parent 2:0 prio 2 u32" $U32_2 match ip dst 192.168.1.172/32 flowid 2:20 $U32_2 match ip dst 192.168.1.82/32 flowid 2:20 $U32_2 match ip dst 192.168.1.200/32 flowid 2:20 以上3個IP為總經(jīng)辦人員,限制他們下載流量為 tc filter add dev eth0 protocol ip parent 2:0 prio 3 u32 match ip dst 192.168.1.0/24 flowid 2:30 (因為有默認,此行可以省略,為了規(guī)則更清晰,還是設(shè)置為好) 以上只是設(shè)置默認情況下下載帶寬只有1000K,即將近 2、 注意事項: 優(yōu)先級不要相同 二、 上傳設(shè)置1、 規(guī)則 (eth1為連接專線的網(wǎng)卡,可限制上傳帶寬) iptables -F -t mangle iptables -X -t mangle iptables -Z -t mangle iptables -A PREROUTING -t mangle -i eth0 -s 192.168.1.200/32 -j MARK --set-mark 1 iptables -A PREROUTING -t mangle -i eth0 -s 192.168.1.172/32 -j MARK --set-mark 1 iptables -A PREROUTING -t mangle -i eth0 -s 192.168.1.82/32 -j MARK --set-mark 1 #iptables -A PREROUTING -t mangle -i eth0 -s 192.168.1.0/24 -j MARK --set-mark 2 (可以不用此條) tc qdisc add dev eth1 root handle 1:0 htb default 30 tc class add dev eth1 parent 1:0 classid 1:1 htb rate 4Mbit burst 15k tc class add dev eth1 parent 1:1 classid 1:10 htb rate 4Mbit burst 15k 最大上傳流量為 tc class add dev eth1 parent 1:1 classid 1:20 htb rate 1000kbit ceil 2Mbit burst 15k 最大流量為 tc class add dev eth1 parent 1:1 classid 1:30 htb rate 400kbit ceil 400kbit burst 15k 最大流量為400K tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10 tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 10 tc qdisc add dev eth1 parent 1:30 handle 30: sfq perturb 10 U32="tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32" tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.9.0/24 flowid 1:10 以上規(guī)則使用達到ERP服務(wù)器的流量不受限制,也即最大可為 tc filter add dev eth1 parent 1:0 protocol ip prio 3 handle 1 fw classid 1:20 以上規(guī)則使總經(jīng)辦3個IP地址的上傳流量為 #tc filter add dev eth1 parent 1:0 protocol ip prio 4 handle 2 fw classid 1:30 (因為默認下使用此規(guī)則,所以可以省略) 默認下不符合以上兩規(guī)則的全部使用此規(guī)則,上傳帶寬最大為400K(不要說我苛刻喲) 2、 注意事項 1) 因為內(nèi)部IP地址在經(jīng)過外網(wǎng)卡時會進行NAT,所以不能用源地址進行U32匹配,只能是FW規(guī)則進行流量標(biāo)識 2) 優(yōu)先級一定不能相同,否則fw規(guī)則將失效 3) 以上規(guī)則可以放到一個文件內(nèi)運行
|
|
|