Wednesday, December 11, 2013

CoNEXT'13: An Automated System for Emulated Network Experimentation

Authors: Simon Knight, Hung X Nguyen, Iain Phillips, Olaf Maennel, Randy Bush, Nickolas Falkner, Matthew Roughan
Presented By: Simon Knight

It is time consuming, tedious and error prone to setup and configure large scale test networks. This paper presents a system to facilitate emulation by providing translation from a high-level network design into a concrete set of configurations that are automatically deployed into one of several emulation platforms.

The system allows an user to specify the network topology at a high-level, in a standard graph exchange format. This allows the use of a GUI-based graph editor, such as yED. In these graphs nodes correspond to routers, with edges indicating their connectivity. Node and edge attributes allow hostnames, AS numbers, and link weights to be specified. From these IGP and BGP topologies can be inferred. 
- Reduces configuration burden.
- Reduces the expense and inconvenience of real hardware
- Use of abstraction, graphs, and templates provides manageability and scalability
- Decouples network-level design from device-level configuration state.
Interesting demo video about the entire flow right from drawing a network topology in the yED editor to having the emulated network up and running. The system is built on Pyhton platform. The code is available in github, and all relevant details and links are here:

Q: Can you take a cisco image and run in the vm environment?
A: You can generate IOS config files and run it.

Q: There can be a lot of constraints, limited number of ports, number of rules you handle etc. How do you take care of that?
A: You design the network, do sanity checks for the constraints before you run it.