FreeBSD下的带宽控制--ipfw+dummynet

发表于:2007-07-04来源:作者:点击数: 标签:
环境:FreeBSD 4.5-Release 在FreeBSD下可以通过ipfw+dumm .net 来进行带宽控制,具体实现如下: 1、 修改kernel configuration file, 加入对IPFW和DUMMYNET的支持 options IPFIREWALL options DUMMYNET 重新编译,安装新的kernel 注:如果原内核中支持IPFIL

  环境:FreeBSD 4.5-Release
  在FreeBSD下可以通过ipfw+dumm.net来进行带宽控制,具体实现如下:
  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来满足自己的需求

原文转自:http://www.ltesting.net