ModelNet is a network emulation platform developed by Ken Yocum at UCSD that allows the experimenter to run real code atop a hypothetical network with assigned bandwidth, latency, queue length, and other link properties. In contrast to other emulation platforms such as Emulab, ModelNet runs entirely on commodity hardware and, thus, can be deployed easily and cheaply on just a few machines. Also, there’s no contention for experimental resources with other researchers; it’s your own, private testbed!
In short, ModelNet consists of 1) one or more FreeBSD “emulator” machines that are responsible for emulating the virtual network topology, and 2) one or more Linux “virtual node” machines that have multiple virtual network interfaces, each of which act as a distinct “virtual end-host” located in the virtual network topology.
Kevin Bauer used ModelNet to improve congestion and flow control in Tor, as part of his Ph.D. thesis work.
- The primary ModelNet documentation, detailing installation, configuration, and experiment setup and deployment can be here.
- An excellent installation resource is available here.
Our ModelNet setup is very simple. We have two machines, both located in the Systems Lab machine room:
- Supermicro “slab” (8 core, 24 GB RAM, 1 TB disk) “virtual node” machine. This machine is assigned a static IP address of 18.104.22.168 on eth1 and an internal IP address of 192.168.0.2 on eth0. The eth1 interface should be used primarily as a control channel, to access the machine for configuration and experiment setup via ssh. eth0 is used for all communication with the modelnet emulator machine. For machine identification purposes, NICs: 00:30:48:f5:f1:f0 and 00:30:48:f5:f1:f1.
- Dell PowerEdge 2650 running FreeBSD 6.3 – this is an “emulator.” This machine uses only a single network interface that is statically configured to 192.168.0.1. It uses the 22.214.171.124 machine as a gateway to access the Internet at large. For machine identification purposes, NIC: 00:11:43:35:a3:2f.
IMPORTANT: The 10.0.0.0/8 address space is reserved for ModelNet’s internal routing. Do not use this address space on the ModelNet machines’ VLAN.
The latest version of the ModelNet code (as of 4/7/2011) with Kevin’s patches is available here: Download
See the above documentation for compilation, installation, and configuration details.