歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> Unix教程

FreeBSD下的帶寬控制 -- ipfw+dummynet

FreeBSDIPFW帶寬控制 環境: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來滿足自己的需求!
Copyright © Linux教程網 All Rights Reserved