Topology Generation and Configuration Tools from Purdue University




1 Introduction

Configuring different experimental topologies on an emulation testbed is a time-consuming process. One of the earliest and simplest Internet topology generators is gt-itm. We have developed a tool to generate a DETER ns file, given a topology generated by gt-itm. We also developed another tool to classify the nodes of the topology as ospf routers, bgp routers or non-router nodes. It also specifies the domain the node belongs to, and the type of that domain. The next step after topology generation is to configure the routing protocols, i.e., BGP or OSPF on the nodes. To do so, our BGPConf tool can be used. The configuration files generated can be executed when the experimental nodes boot or reboot. The average time required to edit the configuration files manually for an experiment with 40 nodes is about 2-3 hours, because the process includes setting IP addresses for every node in the files. Using our tool, it takes seconds for the process to complete.

2 Tools

Our topology generation and configuration tools run on Linux.

2.1 Topology Generator (topgen)

The shell script topgen.sh is used to execute more than one tool sequentially. The input to topgen is a transit-stub specification file, and its final output is an ns file representing the topology, and a description file that specifies the location of each node and its type. The following is a description of the scripts executed when topgen.sh is executed:

itm and sgb2alt

"itm" and "sgb2alt" are tools developed at Georgia Institute of Technology as part of the gt-itm topology generator. "topgen.sh" executes these two scripts sequentially such that given a transit-stub specification file, it will output a graph file representing the topology in alt format.

descgen.pl

The tool descgen.pl is a perl script developed by our group. It takes as input a topology represented as a graph in alt format, and generates a description file that classifies every node as a member of a transit or stub domain giving the number of that domain, and as a bgp router, ospf router, or a non-router node.

gt2ns.pl

The tool gt2ns.pl is a perl script developed by our group. It takes the same input as descgen.pl and outputs an ns file to be swapped in an emulation tesbed like DETER.

2.2 BGP/OSPF Configuration

This tool generates BGP and OSPF configuration files for zebra or quagga routers. It takes as input the description file generated by "topgen" and a file representing the assignments of nodes, links and IP addresses on the tesbed when the experiment is created on DETER. It outputs script files to be used for the experimental configuration.

3 Example

The figure below represents our automated topology generation and configuration process on DETER.

The following steps must be followed:

1. Create a file with gt-itm tansit-stub parameters. Let us call the file ts.
2. Type the following command "sh topgen.sh ts". This will generate two files ts-0.desc and ts-0.ns.
3. A new experiment should be created with the ns file "ts-0.ns". Let us call the experiment "topology".
4. From the experiment details generated by DETER, copy all the lines between "Virtual Lan/Link Info:" and "Virtual Queue Info:" and paste them into a file called links inside the folder BGPConf/inputs
5. Run the following command "BGPConf ts-0.desc"
6. Copy install.sh from the output directory under BGPConf to the scripts directory under the topology directory.
7. Copy zebra.sh, ospf.sh, leafs.sh, and loop.sh from the output directory under BGPConf to the zebra directory under the topology directory.
8. Swap the experiment in.

 


Created by: Abdallah Khreishah
Updated by: Wei-Min Yao
Last updated by: Sonia Fahmy
July 25th, 2007