Experimentation is typically the last step before launching a network application in production. However, it is often difficult to gather enough hardware resources for experimenting with a reasonably sized network inside a controled environment. Virtualization is powerful for creating such a controled network. We propose a tool called vnd designed to create virtual switches, hubs, links, access points and WICs for interconnecting virtual machines. It runs entirely in user space and it can use TCP or UDP sockets as well as linux local sockets, taps and VDEs to interconnect with the emulators of the virtual machines. Any emulator proposing these network backends can use vnds. It has two encapsulation modes: a raw mode forwarding the data as is and a len mode for managing frames over TCP similar to the QEMU and Dynamips basic frame exchange protocol over TCP. Each interface can have any parameters (bandwidth, delay, jitter, BER) modified separately on its input and output queues. The vnd is thus a network component virtualization software that emulates basic layer 1/2 network components to build virtual networks. The vnd is written in C++ and is available for download under the LGPLv3. Please note that there may be some bugs left so please always get the latest version. This software is provided "as is" without warranty of any kind. If a complex virtual network needs to be used, it is better to use NEmu which internally uses vnd.
virtual network device (vnd) manual version 0.5
virtual network device (vnd) version 0.5.6
vnd is released under the GNU LGPL version 3.
If you use vnd for your research or educational work, please cite:
Network Emulator: a Network Virtualization Testbed for Overlay Experimentations.
Vincent Autefage, Damien Magoni.
CAMAD'12 - IEEE International Workshop on Computer-Aided Modeling Analysis and Design of Communication Links and Networks,
pp. 38-42, September 17-19, 2012, Barcelona, Spain.
Last updated: April 10, 2014.