Network stack virtualization allows for complete networking independence between jails on a FreeBSD system, including providing each jail with its own virtual network interface set, routing tables, firewalls, rate limiting, IPSEC configuration and more. Compared to full hardware or paravirtualization platforms such as VMWare, Xen or UML, the combination of FreeBSD jails and virtualized stacks incurs significantly lower virtualization overhead while efficiently utilizing the available hardware resources, allowing for great scalability and levels of performance virtually indistinguishable from an unmodified OS kernel.
In this workshop we will show how to configure a virtualized FreeBSD system for typical applications such as virtual hosting, network emulation, or monitoring multiple independent VPNs. We will also explain how to manage the new networking facilities in the OS from C programs, and briefly discuss the reasoning behind the design of the new kernel-level virtualization APIs.
The network stack virtualization project is supported through a sponsorship of the FreeBSD Foundation and Stichting NLNet, and is run as a joint technology development agreement between the FreeBSD Foundation, NLNet, and the University of Zagreb, with the ultimate goal of including the virtualization features in a new release of the FreeBSD operating system.
Marko Zec is a research assistant at the University of Zagreb. In a past life he used to work for IBM and several local Cisco system integrators in Croatia as a "networking specialist". The projects he recently worked or is working on include XORP, IMUNES, and network stack virtualization for FreeBSD -CURRENT.