N~0ihTG5 小弟對 Linux 系統很喜愛 , 所以有一些研究 . 雖然市面上己經有很多硬體做的到頻寬管理 . 但基於Cost 的因素下 . 以下是使用 Linux 所提供的免費軟體來達到頻寬管理 . 希望大家會喜歡 .
t3!OqM %ZcS"/gf dVk(R9 8 Qos頻寬管理設定
(S4HU_,88 W/3sJc9 目前Linux提供的Qos頻寬管理套件為CBQ及HTB,此文件以CBQ為主。
@lq)L %NfXe[T cbq.init 是一個 Linux shell script file,它提供了一個簡便的設定環境,讓管理者不需操作繁雜的 tc (Traffic Control) 指令,只需專注在頻寬的規劃即可。
OwEu S#- 5dhy80|g] 取得 cbq.init:
+h
Ks
cbq.init SourceForge Page:http://sourceforge.net/projects/cbqinit
PD^G$LT 以 cbq.init-v0.7.3 為例:
,
@!X!L wget
http://nchc.dl.sourceforge.net/sourceforge/cbqinit/cbq.init-v0.7.3 'oK oF mv cbq.init-v0.7.3 /sbin/cbq
_Hd|y chmod 700 /sbin/cbq
r{B28'f[ mkdir /etc/sysconfig/cbq
fs:yx'mxV 下載 FC2 shapecfg-2.2.12-15.i386.rpm (安裝後可直接使用 /sbin/cbq, version: 0.7.1)
WNZYs ftp://ftp.isu.edu.tw/pub/Linux/Fedora/linux/core/2/i386/os/Fedora/RPMS/shapecfg-2.2.12-15.i386.rpm #
E_S.. 4l{$dtKbI (ps:此rpm for FC2,如果是FC3則可以試試shapecfg-2.0.36-4.i386.rpm)
?"^{:~\N ak-agH 設定
Mna
yiJl B`t/21J 環境: WAN <--> eth0 [ Linux NAT / Server ] eth1 <--> LAN
1Q!kk5jE WAN 頻寬: 2M / 256K
-Lq2K3JHyn 設定檔路徑: /etc/sysconfig/cbq
lT*@f39~g 設定檔檔名規則: cbq-<0002>~<ffff>.<name>
cly} [<w! ------------------------------------------------------------------------------------------------------
rHM^_sYRb 限制 LAN User 下載頻寬:
'9=b@SaAj iptables -t mangle -A FORWARD -o eth1 -d 172.16.1.0/24 -j MARK --set-mark 10
c1r+?q$f vi /etc/sysconfig/cbq/cbq-0002.download
& Zn`2% DEVICE=eth1,100Mbit,10Mbit
jO/cdLKX( RATE=200Kbit
^^zj4 }On? WEIGHT=20Kbit
al
B'l PRIO=5
<f`n[QD2z MARK=10
0w:
3/WO ------------------------------------------------------------------------------------------------------
q7<d|s 限制 LAN User 上載頻寬:
V2|By,. iptables -t mangle -A FORWARD -o eth0 -s 172.16.1.0/24 -j MARK --set-mark 20
F,A+O+ vi /etc/sysconfig/cbq/cbq-0003.upload
C/QmtT~`e DEVICE=eth0,100Mbit,10Mbit
vcsSi%M\U RATE=50Kbit
}O>4XFj WEIGHT=5Kbit
0}"\3EdAbD PRIO=5
)iM(
\=1ff MARK=20
:8]8[ ------------------------------------------------------------------------------------------------------
[& Z-
*a 設定 HTTP Server 對外頻寬:
mj&OZ+ vi /etc/sysconfig/cbq/cbq-0080.http
AorY#oq DEVICE=eth0,100Mbit,10Mbit
] jY^*o[ RATE=180Kbit
#0vda'q=j WEIGHT=18Kbit
-EE'xh-zD PRIO=5
j
RcE241 RULE=:80,
3y+~l
H: ------------------------------------------------------------------------------------------------------
(~%NRH<\ 設定 SSH Daemon 對外頻寬:
,vO\n^ vi /etc/sysconfig/cbq/cbq-0022.ssh
<R+?>kz6 DEVICE=eth0,100Mbit,10Mbit
&F/-%l! RATE=20Kbit
wP*3Hx;S WEIGHT=5Kbit
<i4]qO(0u PRIO=4
>~Xe` }' RULE=:22,
)bR0>3/ ------------------------------------------------------------------------------------------------------
6%h%h: e 基本參數:
[*Ai@:F DEVICE=<ifname>,<bandwidth>[,<weight>]
x.Egl4b3 RATE=<speed>
'l=>H#}<B WEIGHT=<speed>
NJ+$3n om PRIO=<1-8>
$,J0) ~ PARENT=<clsid>
_"Z?O)d* MARK=<mark>
h`n '{s RULE=[[saddr[/prefix]][:port[/mask]],][daddr[/prefix]][:port[/mask]]
%8D>aS U 詳細設定參數說明可 less /sbin/cbq 或從瀏覽器直接連結 cbq.init source 查看.
;Ce?f=4
執行 cbq.init:
39hep8+ cbq start 即可 (如前述, 已將 cbq.init mv 為 /sbin/cbq)
oH
+PlL cbq stats 可查詢是否有封包通過設定好的條件, 以得知條件是否設定正確
:V5 Co!/+ Usage: cbq {start | compile | stop | restart | timecheck | list | stats}
NmXRA(m 參考文件:http://cha.homeip.net/blog/archives/2005/07/cbqinit.html
dq@
*8ui 如果有錯誤訊息產生則Log記錄在 /var/cache/cbq.init
hRRxOr#*$ }^0'IAXi 可以由 tc qdisc show 指令Check設定是否生效。
cc*?4C/t ]{q=9DczG( 在 Download Webmin Module For CBQ
8'L:D http://sourceforge.net/projects/webmin-cbq