WE{fu{x 小弟對 Linux 系統很喜愛 , 所以有一些研究 . 雖然市面上己經有很多硬體做的到頻寬管理 . 但基於Cost 的因素下 . 以下是使用 Linux 所提供的免費軟體來達到頻寬管理 . 希望大家會喜歡 .
W)_|jpd[ V-{3)6I$hG 0N
|l1Sn Qos頻寬管理設定
= 9Ow!(!@ t@&U2JaL>W 目前Linux提供的Qos頻寬管理套件為CBQ及HTB,此文件以CBQ為主。
=JkPE2mU R@X65o
cbq.init 是一個 Linux shell script file,它提供了一個簡便的設定環境,讓管理者不需操作繁雜的 tc (Traffic Control) 指令,只需專注在頻寬的規劃即可。
%E R"Udh 8l1s]Kqr 取得 cbq.init:
l&/V4V- cbq.init SourceForge Page:http://sourceforge.net/projects/cbqinit
->
^Ex` 以 cbq.init-v0.7.3 為例:
:*=fGwIWS wget
http://nchc.dl.sourceforge.net/sourceforge/cbqinit/cbq.init-v0.7.3 xU1_L*tu ' mv cbq.init-v0.7.3 /sbin/cbq
kxanzsSr9 chmod 700 /sbin/cbq
~WjK'N4n5 mkdir /etc/sysconfig/cbq
oe'f?IY 下載 FC2 shapecfg-2.2.12-15.i386.rpm (安裝後可直接使用 /sbin/cbq, version: 0.7.1)
AV>_bw. ftp://ftp.isu.edu.tw/pub/Linux/Fedora/linux/core/2/i386/os/Fedora/RPMS/shapecfg-2.2.12-15.i386.rpm D-/q-=zd ]<3n;*8k? (ps:此rpm for FC2,如果是FC3則可以試試shapecfg-2.0.36-4.i386.rpm)
^xyU*A}D {\WRW}iO 設定
rD\)ndPv JdM0f!3 環境: WAN <--> eth0 [ Linux NAT / Server ] eth1 <--> LAN
g"Tb\ WAN 頻寬: 2M / 256K
&<=?O
a 設定檔路徑: /etc/sysconfig/cbq
u?-|sv* 設定檔檔名規則: cbq-<0002>~<ffff>.<name>
xekU2u}WE ------------------------------------------------------------------------------------------------------
o7r7HmA@ 限制 LAN User 下載頻寬:
R_4eME2LB iptables -t mangle -A FORWARD -o eth1 -d 172.16.1.0/24 -j MARK --set-mark 10
AMw#_8Y vi /etc/sysconfig/cbq/cbq-0002.download
Hk1 [
0) DEVICE=eth1,100Mbit,10Mbit
qj7}]T_ RATE=200Kbit
Q$yMU[l) WEIGHT=20Kbit
S-f
.NC}:i PRIO=5
.E:3I!dH7 MARK=10
P=[_W;->} ------------------------------------------------------------------------------------------------------
]
6X;&=H 限制 LAN User 上載頻寬:
h-f`as"d iptables -t mangle -A FORWARD -o eth0 -s 172.16.1.0/24 -j MARK --set-mark 20
VMee"'08 vi /etc/sysconfig/cbq/cbq-0003.upload
WYUel4Z DEVICE=eth0,100Mbit,10Mbit
b8
^O"oDrp RATE=50Kbit
g@O H,h/ WEIGHT=5Kbit
oH,{'S@q PRIO=5
q4EOI MARK=20
&o;d ------------------------------------------------------------------------------------------------------
W ZT) LYA 設定 HTTP Server 對外頻寬:
Ke;eI+P[ vi /etc/sysconfig/cbq/cbq-0080.http
|AQU\BUj DEVICE=eth0,100Mbit,10Mbit
g
kM Q=;Nn RATE=180Kbit
%lnVzGP WEIGHT=18Kbit
&-$27 PRIO=5
8nu@6 )# RULE=:80,
j|KjQ'9 ------------------------------------------------------------------------------------------------------
7DKTd^^M 設定 SSH Daemon 對外頻寬:
)ZW[$:wA vi /etc/sysconfig/cbq/cbq-0022.ssh
QZm7
Q4 DEVICE=eth0,100Mbit,10Mbit
n)Z u> RATE=20Kbit
9Q.@RO$%C WEIGHT=5Kbit
8\X-]Gh\^ PRIO=4
;e"dxAUe!^ RULE=:22,
`0_,>Z ------------------------------------------------------------------------------------------------------
{>3J 96 基本參數:
&RHZ7T DEVICE=<ifname>,<bandwidth>[,<weight>]
*)(S}D\94 RATE=<speed>
Yyr
qO^9m WEIGHT=<speed>
j S4\; PRIO=<1-8>
$ {h1(ec8 PARENT=<clsid>
.6=;{h4cpB MARK=<mark>
}`$s"Iv@ RULE=[[saddr[/prefix]][:port[/mask]],][daddr[/prefix]][:port[/mask]]
IAHQT<] 詳細設定參數說明可 less /sbin/cbq 或從瀏覽器直接連結 cbq.init source 查看.
-d. i4X3j 執行 cbq.init:
:5X^t cbq start 即可 (如前述, 已將 cbq.init mv 為 /sbin/cbq)
d =p=eUd2 cbq stats 可查詢是否有封包通過設定好的條件, 以得知條件是否設定正確
+8|9&v` Usage: cbq {start | compile | stop | restart | timecheck | list | stats}
uq2C|=M-x\ 參考文件:http://cha.homeip.net/blog/archives/2005/07/cbqinit.html
H
%b c.c 如果有錯誤訊息產生則Log記錄在 /var/cache/cbq.init
#z1/VZ f<{f/lU@ 可以由 tc qdisc show 指令Check設定是否生效。
;u-[%(00S k\TP3*fD 在 Download Webmin Module For CBQ
Z[9t?ePL http://sourceforge.net/projects/webmin-cbq