(未完)
1。cbq.init 是基於 CBQ traffic control 的 script
2。不需要再用更複雜的 ip 與 tc 指令
3。為了加速 cbq.init start,它有個 cache 檔在 /var/cache/cbq.init 裡 ???
4。cbq.init compile 可以透出 tc 指令化
5。cbq 的設定預設是放在 /etc/sysconfig/cbq 目錄底下
6。設定檔格式長這樣子 cbq-<clsid>.<name>
clsid 從0002 到 FFFF,它實際是 CBQ 的 class ID,且是 16 進位的數值
name 是 class name,可以自行定義
7。設定檔內容說明
DEVICE=eth0,10Mbit,1Mbit # DEVICE=<ifname>,<bandwidth>,<weight>
# ifname = 網卡名稱
# bandwidth = 網卡上限頻寬
# weight = bandwidth / 10
# 如果同一個 eth0 要多個設定檔,bandwidth 及 weight 只能設一次不能重覆
# 其它的檔只有 DEVICE=eth0RATE=2Mbit # 限頻寬,單位可以是 Kbit, Mbit, bps, Kbps, Mbps,如果都沒給預設是 bits/sec
# 假如你要像 IPS 分用你的網路 2Mbits/256Kbits 的話這裡就設定 2MbitWEIGHT=200Kbit # WEIGHT = RATE / 10PRIO=5 # 優先權 (值介於1到8),預設為 5
PARENT=0002 # 父系 clsid,預設沒有
LEAF=none | tbf | sfq # 預設為tbf,可以防止這個class從父系借入頻寬,即使 BOUNCED=no時,
# 如果要讓可以從父系借入頻寬就要設定 LEAF=none或LEAF=sfq
# 在相同的class如果要確定分流是公平的就設 LEAF=sfqBOUNDED=yes | no # 預設為 yes
# 設成 yes,將在超出限制的情況下不允許從它的父系借入頻寬,
# 當設成 no,時還要搭配LEAF=none 或 LEAF=sfqISOLATED=yes | no # 預設為 no
# 設成 yes,將不會借出沒用到的頻寬給下層使用BUFFER=10Kb/8
LIMIT=15Kb
PEAK=
MTU=1500
QUANTUM=
PERTURB=10
RULE=10.1.1.0/24:80 # 目的為10.1.1.0的網段,且port為80
RULE=10.2.2.5 # 目的為10.2.2.5的主機
RULE=10.2.2.5:20/0xfffe # 目的為10.2.2.5的主機,且port為20和21
RULE=:25,10.2.2.128/26:5000 # 來源port為25,到目的網段為10.2.2.128,且port為5000
RULE=10.5.5.5:80, # 來源主機為10.5.5.5,且port 為80
# ps: RULE 可以多筆
# ps: “沒”加逗點的為目的端,”有”加逗點的為來源端REALM=
MARK= # 搭配 iptables的 mangle,如果你不用 RULE的話
TIME= # 依時間限頻 ???
# 可多筆 TIME=
# 有重覆的話依最後一筆為主
# 0=sunday, 1=monday
# TIME=[<dow>,<dow>, …,<dow>/]<from>-<till>;<rate>/<weight>[/<peak>]
# TIME=0,1,2,5/18:00-06:00;256Kbit/25Kbit
# TIME=60123/18:00-06:00;256Kbit/25Kbit
# TIME=18:00-06:00;256Kbit/25Kbit
8。cbq 的作用是在於流出的封包,如果你有一個 NAT 環境,eht1是對外、eth0是對內,那限eth1就是限到上傳,限eth0就是限到下載,對像是內網的 client
模擬一個環境:
1。我今天租用了 ADSL 8Mbits/640Kbits 的網路,同時間我要分享我的網路給我室友用,給個 2Mbits/256Kbits吧
2。使用撥接的方式,網路的架構如下
internet ———-+ ppp0 [ server ] eth0 +—————— client1 (朋友) (dhcp配 ip,區段是: 10.1.1.33 ~ 10.1.1.55)
|——————-client2 (其它)
3。這次的設定概念放在設定檔裡的頻寬值為主、使用 MARK 搭配 iptables,所以我對誰可以使用多少頻寬之後只要用 iptables 加入即可
4。client1 下載 internet 的檔案限在 2Mbits
編輯設定檔:
cbq-0011.eth0_dl_global
DEVICE=eth0,100Mbit,10Mbit
RATE=100Mbit
WEIGHT=10Mbit
cbq-0012.eth0_dl_2M_MARK50
DEVICE=eth0
RATE=4000Kbit
WEIGHT=400Kbit
MARK=50
iptables 設定
iptables -t mangle -A FORWARD -o eth0 -m iprange –dst-range 10.1.1.33-10.1.1.55 -j MARK –set-mark 50# 或者用
iptables -t mangle -A POSTROUTING -o eth0 -m iprange –dst-range 10.1.1.33-10.1.1.55 -j MARK –set-mark 50
重啟 cbq restart
5。client1 下載 server 也是 2M,這次只要設定 iptables 就好
iptables -t mangle -A OUTPUT -o eth0 -m iprange –dst-range 10.1.1.33-10.1.1.55 -j MARK –set-mark 50
6。client1 上載至 internet 的檔案限在 256Kbits
留言