电脑技术学习

FreeBSD handbook中文版 2 开始安装FreeBSD(1)

dn001
环境: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);

标签: