标题: FreeBSD下的带宽控制 -- ipfw+dummynet
ty
荣誉会员
Rank: 1



UID 9897
精华 0
积分 1868
帖子 901
威望 901
金币 892
热心 9
阅读权限 50
注册 2006-3-22
状态 离线
FreeBSD下的带宽控制 -- ipfw+dummynet

环境: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来满足自己的需求!

顶部
[广告] 免费域名(Free Subdomain) 免费空间(Free hosting) PR查询(Google Pagerank)



当前时区 GMT+8, 现在时间是 2008-10-13 23:13
信产部ICP备案:京ICP备05066424号 北京市公安局网监备案:1101050648号

Powered by Discuz! 5.5.0
清除 Cookies - 联系我们 - 网友俱乐部 - Archiver - WAP