h#p1wK;N 小弟對 Linux 系統很喜愛 , 所以有一些研究 . 雖然市面上己經有很多硬體做的到頻寬管理 . 但基於Cost 的因素下 . 以下是使用 Linux 所提供的免費軟體來達到頻寬管理 . 希望大家會喜歡 .
gB\
a @WuB&uF=d q#W7.8 Z@ Qos頻寬管理設定
K<`"Sr _SS6@`X 目前Linux提供的Qos頻寬管理套件為CBQ及HTB,此文件以CBQ為主。
iRwqt-WZ >icK]W cbq.init 是一個 Linux shell script file,它提供了一個簡便的設定環境,讓管理者不需操作繁雜的 tc (Traffic Control) 指令,只需專注在頻寬的規劃即可。
?kvc`7> 4%5H<:V7 取得 cbq.init:
]@@3] cbq.init SourceForge Page:http://sourceforge.net/projects/cbqinit
enu",wC3 以 cbq.init-v0.7.3 為例:
23a&m04Rk wget
http://nchc.dl.sourceforge.net/sourceforge/cbqinit/cbq.init-v0.7.3 UnjUA!v mv cbq.init-v0.7.3 /sbin/cbq
7X| M\WUq chmod 700 /sbin/cbq
c"mRMDg% mkdir /etc/sysconfig/cbq
-QaS/WO_ 下載 FC2 shapecfg-2.2.12-15.i386.rpm (安裝後可直接使用 /sbin/cbq, version: 0.7.1)
^%|(dMo4 ftp://ftp.isu.edu.tw/pub/Linux/Fedora/linux/core/2/i386/os/Fedora/RPMS/shapecfg-2.2.12-15.i386.rpm ;D5B$ @W> J('p'SlI (ps:此rpm for FC2,如果是FC3則可以試試shapecfg-2.0.36-4.i386.rpm)
#^IEQZgH E%L]ifA9! 設定
/?b<}am *.ffyBI*~ 環境: WAN <--> eth0 [ Linux NAT / Server ] eth1 <--> LAN
a8fLj WAN 頻寬: 2M / 256K
V+A1O k) 設定檔路徑: /etc/sysconfig/cbq
.F=15A 設定檔檔名規則: cbq-<0002>~<ffff>.<name>
VN=S&iBa/ ------------------------------------------------------------------------------------------------------
hM*T{|y 限制 LAN User 下載頻寬:
Y4PU~l iptables -t mangle -A FORWARD -o eth1 -d 172.16.1.0/24 -j MARK --set-mark 10
@21G[!%J vi /etc/sysconfig/cbq/cbq-0002.download
,"/<N*vh DEVICE=eth1,100Mbit,10Mbit
IyE9G:fY RATE=200Kbit
9gMNS6D'b WEIGHT=20Kbit
w+vYD2a PRIO=5
l\l\T<wa, MARK=10
z_XI,u} ------------------------------------------------------------------------------------------------------
m4:b?[
限制 LAN User 上載頻寬:
f#xqu+)Z iptables -t mangle -A FORWARD -o eth0 -s 172.16.1.0/24 -j MARK --set-mark 20
G6X vi /etc/sysconfig/cbq/cbq-0003.upload
2fc8w
3 DEVICE=eth0,100Mbit,10Mbit
=Ewa}$- RATE=50Kbit
c9e
}P WEIGHT=5Kbit
7S<Z&1( PRIO=5
^0 t81,` MARK=20
/wIev1Z!Y ------------------------------------------------------------------------------------------------------
54 8w
v 設定 HTTP Server 對外頻寬:
% ~%>3 vi /etc/sysconfig/cbq/cbq-0080.http
C._I\:G^ DEVICE=eth0,100Mbit,10Mbit
-CW$p=y} RATE=180Kbit
Z+"%MkX0 WEIGHT=18Kbit
p-U'5<n PRIO=5
mea]m)P RULE=:80,
7Kx3G{5ja ------------------------------------------------------------------------------------------------------
^=)? a;V 設定 SSH Daemon 對外頻寬:
>M7e'}0; vi /etc/sysconfig/cbq/cbq-0022.ssh
SZ}t_w ` DEVICE=eth0,100Mbit,10Mbit
9.5h
QZ RATE=20Kbit
E&k{ubcT WEIGHT=5Kbit
B^(0>Da\ PRIO=4
>iP>v`J RULE=:22,
rnxO2 ------------------------------------------------------------------------------------------------------
?5m[Qc(< 基本參數:
-0| '{ DEVICE=<ifname>,<bandwidth>[,<weight>]
e=nEx Y RATE=<speed>
A0*u(15% WEIGHT=<speed>
~Ra1Zc$o: PRIO=<1-8>
_96hw8 PARENT=<clsid>
gM|X":j MARK=<mark>
L4SvE^2+ RULE=[[saddr[/prefix]][:port[/mask]],][daddr[/prefix]][:port[/mask]]
|N[SCk>Kj 詳細設定參數說明可 less /sbin/cbq 或從瀏覽器直接連結 cbq.init source 查看.
%^RlE@l9 執行 cbq.init:
bA#E8dlC_ cbq start 即可 (如前述, 已將 cbq.init mv 為 /sbin/cbq)
1 sCF
-r cbq stats 可查詢是否有封包通過設定好的條件, 以得知條件是否設定正確
;(3fr0
cr: Usage: cbq {start | compile | stop | restart | timecheck | list | stats}
5
Am*1S^ 參考文件:http://cha.homeip.net/blog/archives/2005/07/cbqinit.html
hB:R8Y^?H 如果有錯誤訊息產生則Log記錄在 /var/cache/cbq.init
Q!>
8E4Z g5TXs^g 可以由 tc qdisc show 指令Check設定是否生效。
_:om(gL (JC -4X_ 在 Download Webmin Module For CBQ
XQ:HH 8 http://sourceforge.net/projects/webmin-cbq