General purpose IP network emulation/simulation architecture for real-time large scale experiments
- FreeBSD kernel-level network stack virtualization technology developed at the University of Zagreb
- GUI: management plane, automates virtual node and link instantiation and configuration
- Lightweight, portable experiments that can be easily instantiated
- Used as replacement for testbeds and realistic laboratory environments
As invaluable tools in networked and distributed systems research, network emulators offer a viable alternative to live experimental / testbed networks. We are developing a realistic network topology emulation / simulation framework based on the FreeBSD operating system kernel partitioned into multiple lightweight virtual nodes, which can be interconnected via kernel-level links to form arbitrarily complex network topologies. The concept of using virtual nodes inside a kernel for fast network emulation is not entirely new, yet previously published work generally advocated the implementation of kernel-level virtual nodes with capabilities limited to only certain simple functions, such as passing of network frames from one queue to another based on a static precomputed path. We are basing our work on a thesis that virtual nodes, which could offer the identical rich set of capabilities as the standard kernel does, can be implemented very efficiently by reusing the existing OS kernel code. Our model therefore not only provides each node with an independent replica of the entire standard network stack, thus enabling highly realistic and detailed emulation of network routers; it also enables each virtual node to run a private copy of any unmodified user-level application, including routing protocol daemons, traffic generators, analyzers, or application servers. Furthermore, in later development phases we expect to enable each virtual node to support multiple network protocols concurrently, such as both IPv4 and IPv6, which would bring us a step closer to allowing for emulation of true multiprotocol networked environments.