Tuesday 10 March 2009

Using Dummynet to simulate WAN links (1/2)

OK my 1st Blog so I'll try to make it slightly interesting rather than my 1st forray into basic programming with "hello world" plastered across the screen.

There are a few network simulation tools out there, but most of these will require a six figure sum to work with. There are some good alternatives that are free. One of which is included within the Free BSD Kernel called DummyNet. If you want to simulate artificial delay, packet loss and bandwidth policing, grab yourself a spare server and follow the instructions below:

PART 1 of 2 (Installing FreeBSD and checking DummyNet options)


Dummynet is a capability that lives within the Free BSD Kernel.

Free BSD 6.2 was used in my tests and can be found at http://www.freebsd.org/where.html

After installing onto a new device with two PCI Ethernet cards the kernel was rebuilt. To see if the Kernel requires rebuilding check the file at: /usr/src/sys/i386/conf/GENERIC

See if the following options are included

OPTIONS BRIDGE

OPTIONS IPFIREWALL

OPTIONS IPFIREWALL_VERBOSE

OPTIONS IPFIREWALL_VERBOSE_LIMIT

OPTIONS DUMMYNET

OPTIONS HZ=1000

If they are not copy (cp) this file to a new file called MYKERNEL and add the above options

Change to the /usr/src directory

# cd /usr/src

Compile the kernel with

# make buildkernel KERNCONF=MYKERNEL

Install the ner kernel

# make installkernel KERNCONF=MYKERNEL

The new kernel will be copied to the /boot/kernel directory as /boot/kernel/kernel and the old kernel will be moved to /boot/kernel.old/kernel. Now, shutdown the system and reboot to use your new kernel.

Next Blog see how to apply and run.


1 comment:

  1. Thanks for this wonderful article :) I downloaded the FreeBSD iso and have been able to install the same , but am getting an 'unknown option BRIDGE' while compiling the Kernel .
    Commenting the options BRIDGE , it gets compiled .. but guess I would be requiring the same for connecting the pipes .. any suggestions ??
    Thanks in advance !

    ReplyDelete