[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 系統管理 > FreeBSD > 正文
FreeBSD下的帶寬控制 -- ipfw+dummynet
本文出自:http://www.linuxforum.net 作者: 肥肥頭 (2002-12-26 06:02:00)
環境:FreeBSD 4.5-Release 
在FreeBSD下可以通過ipfw+dummynet來進行帶寬控制,具體實現如下: 
1、 修改kernel configuration file, 加入對IPFW和DUMMYNET的支持 

options IPFIREWALL 
options DUMMYNET 

重新編譯,安裝新的kernel 

注:如果原內核中支持IPFILTER, 請注釋 options IPFILTER。 

2、 新內核缺省是deny所有的連接,因此在/etc/rc.conf文件裡加入以下行: 

# --------------------------------------------------------------------------- 
firewall_enable="YES" # Set to YES to enable firewall functionality 
firewall_script="/etc/rc.firewall" # Which script to run to set up the firewall 
firewall_type="open" # Firewall type (see /etc/rc.firewall) 
# --------------------------------------------------------------------------- 

注:因為是測試FreeBSD的帶寬管理, 不想在ipfw上浪費時間,因此我們將firewall設置
為open狀態, 允許所有包的in, out 

3、 重新啟動系統,讓新內核起作用。在ipfw裡加入自己的rules來進行帶寬管理: 

# ipfw pipe 1 config bw 128Kbytes/s 
# ipfw add 1000 pipe 1 ip from 172.22.4.90 to 172.22.0.0/24 out 

注:172.22.4.90是FreeBSD網卡的ip address, 172.22.0.0/16是它所在的網段 

第一條rule定義了一個128Kbytes/s的pipe 
第二條rule 是將從172.22.4.90-〉172.22.0.0/16 的packet送到pipe 1處理 

測試結果: 
加入兩條rule前從FreeBSD上下載文件速率是900K Bytes/s(10M局域網) 
加入兩條rule從FreeBSD上下載文件速率是127K Bytes/s 

以上只是一個很簡單的測試,但從結果看FreeBSD下通過ipfw+dummynet可以很好的進行帶寬
的控制。大家可以參考dummynet手冊來定制更復雜的rule來滿足自己的需求! 

參考文檔:DUMMYNET(4) 

(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
Linux 的帶寬管理系統 (2002-01-09 07:10:00)
 

★  樊強制作 歡迎分享  ★