Untwine is an Intranet topology discovery tool. It is implemented in java and requires java 1.3 or higher version. It also requires joeSNMP library for SNMP. This library can be downloaded from http://freshmeat.net/projects/joesnmp/
It reads default router of probing station and community name from file "config.dat". Sample config.dat is included in the package.
Untwine performs hierarchical discovery of the topology. It first discovers the network layer topology, also known as Layer-3 topology. Network layer topology describes how routers connect to different networks and subnets. The results of the layer-3 topology are stored in file "Layer3". Next it discover the link layer topology, also known as Layer-2 topology. Link layer topology describes how data link layer devices, switches and bridges, are interconnected and the different hosts connected to them. The results of the layer-2 topology are stored in file "Layer2".
Untwine uses spanning tree parameters and available forwarding databases from the link layer devices to discover the interconnection among them and non-SNMP devices. It does not require the forwarding database in Layer-2 device to be complete. It discovers the active spanning tree at Layer-2 and does not discover the links which are not active.
Untwine stores topology information in five lists RouterList, SubnetList, DeviceList, HostList and PortList.
L3Mapper maintains three lists RouterList, SubnetList and DeviceList. Each entry in RouterList contains the IP address of a router, pointers to the previous hop router, a pointer to the entries in SubnetList which are directly connected to it and the interface number on which the subnet is connected. SubnetList contains HostList, the subnet numbers of subnets discovered and subnet mask. HostList contains IP address, MAC address and type of host - managed or non-SNMP. If a host is managed then a pointer to the corresponding entry in DeviceList is kept.
L2Mapper updates DeviceList, created by L3Mapper, during the process. DeviceList maintains the information about link layer devices discovered. It contains number of ports the device is having, cost of the path to root of spanning tree, port which provides the least cost path to root, and contribution of this port to the least cost path. In addition to this, DeviceList maintains a PortList, which in turn contains the information about the state of port, MAC addresses seen on the port and corresponding port number.
At this time Untwine does not have a graphical interface. The results are stored in the lists as described above. We expect that this will be available soon.
Untwine takes around 7 hrs to generate topology of Intranet consisting of around 4000 hosts and 80 layer-2 devices in 120 subnets. Intranet under consideration have gigabit backbone and 10/100 mbps network inside subnets.
Package also include two files Layer3Read.java and Layer2Read.java which shows how to read the stored information from the "Layer3" and "Layer2" files.
Any questions, desirable enhancements, source code contributions, problems, bugs, etc., should be sent to the email address kapil@cse.iitb.ac.in.