I’m currently evaluating some alternatives for network simulations with virtual machines in Linux.
So far, the best solution available would be Xen, but other good solutions would be OpenVZ and Linux VRF. Linux VRT provides separate networks profiles for processes, so that one process can have some interfaces, firewall rules and routing table, while other processes will be associated with other devices and tables. OpenVZ is a containers solution (something like Solaris Zones), where this isolation between processes is not only done at the networking level but at an OS level, with their own node name, virtual network interfaces, storage, etc.
Xen is not the best performer. The performance problem comes from the overhead introduced by systems calls: when a guest VM sends a packet to the network, it has to be processed by the guest machine, make a context switch and be processed again at the host OS. As a result, network performance is not as good as a native machine, but its is still one of the best in its class.
However, Xen is probably the best supported solution in the market nowadays. There are a lot of configuration tools, web interfaces, and some network simulation tools. For example, MLN looks like a nice application for creating virtual networks: you have to define the topology in a very simple configuration file, and you get a bunch of Virtual Machines connected with virtual LANs, hubs, routers and so.



0 Responses to “Network Simulation with Virtual Machines”