2024年6月6日发(作者:)

Dummynet安装配置

DummyNet是FreeBSD的内部系统工具,需要在安装FreeBSD系统后重新安装编译内

核。该工具是内核级别的IP包处理工具。该工具可以模拟包的丢失、包的延时……(仓促

间仅试验了drop & delay,但相信功能远多于此)。该工具是配合FreeBSD自带的防火墙ipfw

使用的。

第一部分:简单的介绍安装

1、FreeBSD系统的安装:

(1,2,3,……,系统的安装过程省略)

2、dummynet安装:

我在FreeBSD8.1下面的安装最简单的方法是通过以 root 身份运行 sysinstall, 选择

Configure, 然后是 Distributions、 src,选中其中的 base 和 sys

3、接下来配置内核(因为要编译内核,过程比较慢very very )

内核文件默认路径 /usr/src/sys/i386/conf

A、在文件GENERIC中,所以需要先copy一份

# cd /usr/src/sys/i386/conf

# cp GENERIC dummynet-GENERIC

B、再编辑dummynet-GENERIC文件,添加以下几行

options IPFIREWALL #在内核中添加防火墙支持

options DUMMYNET #启用dummynet

options IPFIREWALL_DEFAULT_TO_ACCEPT #把防火墙设置为默认接收包

C、配置内核

# config dummynet-GENERIC

D、编译内核

根据提示的路径进入,执行提示的相关命令

# cd ../compile/dummynet-GENERIC

# make cleandepend

# make depend

# make (此时可以去休息了,过程灰常滴慢,俺在虚拟机编译了超过1个小时)

# make install

E、reboot重启系统,让新内核生效

检验内核中是否已经添加了防火墙,查看的值

# sysctl

:1

#

结果为1表明已经添加成功,并且防火墙已经启用

第二部分:简单举例(本处需要使用ipfw规则,偶也不熟,找手册吧)

1、 清除所有规则,看默认的网络情况

# ipfw -f flush

本例通过ping网关看到网络基本正常,丢包率0.0%,平均延迟3.257ms (进、出来回,

单向就是1.6ms)

2、 设置延迟和丢包

设置所有上行icmp协议的ip包延迟100ms丢包率40%

通过ping网关看丢包率在46.5%,平均延迟106.581ms(单向out,如果双向则在210ms

所有)

3、 设置延迟

让所有通过网卡的ip包都延迟500ms(包含进、出)