I have mentioned about FreeBSD ringmap
here, and now I will share how I get ringmap installed quickly. As the developer of ringmap(Alex) has ported it to FreeBSD stable, here's what you can do -
Download FreeBSD 8.1 stable iso -
shell>wget -c ftp://ftp.jp.freebsd.org/pub/FreeBSD/snapshots/201011/FreeBSD-8.1-STABLE-201011-i386-disc1.isoInstall FreeBSD 8.1 stable on VirtualBox using the iso(Standard Install and make sure you include the source), you can do this quickly without issue if you are familiar with FreeBSD installation. The reason why I choose VirtualBox because VirtualBox can virtualize the following six types of networking hardware:
- AMD PCNet PCI II (Am79C970A)
- AMD PCNet FAST III (Am79C973, the default)
- Intel PRO/1000 MT Desktop (82540OEM)
- Intel PRO/1000 T Server (82543GC)
- Intel PRO/1000 MT Server (82545EM)
- Paravirtualized network adapter (virtio-net)
The ringmap implementation supports Intel 8254x network cards which you can find in the list above, therefore it's the ideal VM solution to use. Make sure you use any of the Intel 8254x in the list.
After I have FreeBSD stable installed on VirtualBox, then proceed to recompile the kernel without device em.
shell>cd /usr/src/sys/i386/confshell>mkdir /root/kernelsshell>cp GENERIC /root/kernels/RINGMAPshell>ln -s /root/kernels/RINGMAPEdit /root/kernels/RINGMAP by commenting out this line
# device em # Intel PRO/1000 Gigabit Ethernet FamilyTo recompile and install the custom kernel -
shell>cd /usr/srcshell>make buildkernel KERNCONF=RINGMAPshell>make installkernel KERNCONF=RINGMAPIt will take a while and once you got it done, reboot the system. After the system is up, add these two lines to /etc/make.conf(if the file not exists, you can just create it) -
EM_RINGMAP=yesLIBPCAP_RINGMAP=yesDownload ringmap source and install -
shell>fetch http://ringmap.googlecode.com/files/ringmap_freebsd_8.1_1.1.0.bz2shell>tar xvjf ringmap_freebsd_8.1_1.1.0.bz2shell>cd FreeBSD_8/scriptsshell>chmod 755 *shell>./build_ringmap.shTo enable the ringmap -
shell>./set_ringmap.shTo make sure you can run any packet capture tool, you need to turn on monitor mode for the network interface -
shell>ifconfig em0 monitor upFor quick testing just run tcpdump and listen to em0 interface -
shell>tcpdump -ttttnni em0That's all for ringmap testing, I haven't done any benchmarking yet until I get the real hardware for testing but you definitely can find more information about ringmap in its own page here -
http://code.google.com/p/ringmap/Cheers (;])