环境: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)
- 七大洲四大洋分别指什么 七大洲四大洋的占比
- 微信的账单怎么快速删除
- 言不信者下一句
- 蓑毛的意思是什么 蓑毛的意思是什么意思简短
- 蜜蜡是什么 蜜蜡是怎么来的
- 数列的极限与数列收敛的关系
- 身份证的数字代表什么
- 爱莲说中莲花的品质 爱莲说中莲花的美好之处
- 海尔Z1000M和海尔Z8000的比较
- 蜗牛吃什么 蜗牛怎么养
