1.Bridege eth1 and eth2 to br0
#安裝bridge-utils
yum install bridge-utils
#新增一個Bridge
brctl addbr br0
#關閉STP, 減少網絡環境的數據包污染
brctl stp br0 off
#新增介面接口
brctl addif br0 eth1
brctl addif br0 eth2 //如果用script, 執行完這最好sleep一下再繼續...
#設置成功後eth1和eht2已經不需要IP了.
ifoncfig eth1 down
ifconfig eth2 down
ifconfig eth1 0.0.0.0 promisc
ifconfig eth2 0.0.0.0 promisc
#開啟內部的轉送
echo “1” > /proc/sys/net/ipv4/ip_forward

<非必要>
#給br0新增一個IP,
ifconfig br0 xxx.xxx.xxx.xxx up
#設定Defalut route為br0的IP位址
route add default gw xxx.xxx.xxx.xxx
2.Limit eth1 download bandwidth to 300Kbits

tc qdisc add dev eth1 root handle 1 cbq bandwidth 100Mbit avpkt 1000 cell 8
tc class add dev eth1 parent 1: classid 1:2 cbq bandwidth 100Mbit rate 300Kbit weight 30Kbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded
tc qdisc add dev eth1 parent 1:2 handle 2 tbf rate 300Kbit buffer 10Kb/8 limit 15Kb mtu 1500
tc filter add dev eth1 parent 1:0 protocol ip prio 100 u32 match ip dst 192.168.1.0/24 classid 1:2

 

tc qdisc add dev eth1 root handle 1 cbq bandwidth 100Mbit avpkt 1000 cell 8

這一行 tc 指令在宣告一個頂級的佇列戒律.

qdisc add : 新增加一個佇列戒律.

dev eth0 : 網路卡 eth0.

root : 宣告這個是一個頂級戒律.

handle 1 : 編號為1.

bandwidth 100Mbit : 網路頻寬為 100Mbit.

avpkt 1000 : 平均封包體積大約為 1000.

cell 8 : 封包間隔發送單位為8.

 

 

 

tc class add dev eth1 parent 1: classid 1:2 cbq bandwidth 100Mbit rate 300Kbit weight 30Kbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded

這一行 tc 指令在產生一個屬於佇列戒律1的 頂層類別 1:2.

class add parent 1: classid 1:2 : 產生一個屬於佇列戒律1的 頂層類別 1:2.

dev eth0 : 網路卡 eth0.

classid 1:2 : 指定這個新類別的編號名稱.

rate 300Kbit : 為實際限制的網路下載速度.

weight 30Kbit : 為一個微調參數.一般為rate值除以10去得出來的.

prio 5 : 為一優先級別值,一般設定為5.

allot 1514 : 為網卡的MTU值加上overhead.

maxburst 20 : 可接收衝突的最大封包數目.

bounded : 設定不可借用其它類別頻寬.

 

 

 

 

 

tc qdisc add dev eth1 parent 1:2 handle 2 tbf rate 300Kbit buffer 10Kb/8 limit 15Kb mtu 1500

這一行 tc 指令在利用 TBF 來處理頻寬管理.

tbf : 使用 TBF 來處理頻寬管理.

buffer 10Kb/8 : 最大可接收的位元組.一般在cbq.init預設值為10Kb/8.

limit 15Kb : 它是能被佇列的有效位元組長度.

mtu 1500 : 網卡的MTU值.

 

 

 

tc filter add dev eth1 parent 1:0 protocol ip prio 100 u32 match ip dst 192.168.1.0/24 classid 1:2

這一行 tc 指令在利用 u32 分類器來比對處理的封包.

protocol ip : 分類器所能接受的協定.

prio 100 : 為分類器的優先等級.

u32 match ip dst 192.168.1.0/24 : 為指定分類器 u32 的使用範圍為何.

classid 1:2 : 過濾後的封包再送到類別1:2那邊去

 

 

 


 

創作者介紹
創作者 NatPixnet 的頭像
NatPixnet

Nat's programing

NatPixnet 發表在 痞客邦 留言(0) 人氣()