NetTransformer
netTransformer is a cross-platform, network discovery and transformation program. It begun as part of the PhD thesis of Nikolay Milovanov in New Bulgarian University.[1] The software has been created with the idea to discover through a set of SNMP queries IP networks state to produce various data models from and then to use the data from the models and other inputs to transform the network from one "state" to another. As per the original PhD the author has used netTransformer to demonstrate a network transformation of an ISP network from IPv4 to an IPv6 state. The transformation is a long lasting process typically driven by a strategy that passes through many states. For example the initial state is the current state in which the network and the services offered by it are IPv4 only. The long term goal is a network and service that is IPv6 only. To achieve it the ISP will has to pass through many intermediate states depending of its transformation strategy.
netTransformer has been used to generate the states and to make a formal diff between them. The transformation from a state to state happens by executing a set of steps that in the end get parameters from the models and execute a set of templates through a management protocol on one or more network devices. Finally the software supports a network rediscovery and a diff between the newly reached network state and the previously discovered one prior the execution of the step. That way the network engineer can ensure that the desired state has been reached and the envisioned effect of the transformation step has been achieved.
From network mapping perspective netTransformer generates 3 distinct data models.
- hierarchical xml device centric data model of the network device (containing information about the device, its key metadata, its ports, interfaces and protocol neighbors)
- graph based device centric data model in graphml file format (produced by xslt transformation of the device data xml)
- graph based network centric data model in graphml (this is a network wide model produced by merging all device centric graphmls).
The software is generating topology views and network topology diff views from the network centric data model. Thus a lot of people use it simply for network mapping. One of the important other concepts of it is that each network has to be treated as a separate project. Since there are many kinds of networks through the years appeared various kinds of project types. For example:
- "SNMP Network Discovery" - for discovering IP networks;
- "SNMP BGP Peering Map" - for generating an Internet peering autonomous systems maps from raw SNMP
- "MRT BGP Peering Map" - for generating an Internet autonomous systems maps from raw MRT files.[2] The author of the project used that approach to generate Internet maps from the mrt files from[3] and to present interactively the evolution of the Internet in Bulgaria from 2001 till 2014.[4]
"Free graph" - for working with any kind of a graph and using the rest of the diff and visualization capabilities of the software.
netTransformer has been created in java programing language with certain parts being written in xslt or groovy by Nikolay Milovanov and Vasil Yordanov. Its source code is available in github.[5] The software could be useful mostly for network scientists and a limited group of network engineers willing to constantly rediscover and map their IP network infrastructures. Ideally the concepts behind it will also lead to faster and more business bound network transformation.
References
- ↑ http://eprints.nbu.bg/1836/
- ↑ https://tools.ietf.org/html/rfc6396
- ↑ http://archive.routeviews.org/
- ↑ http://www.slideshare.net/itransformersCrew/tracking-network-evolution-process-with-nettransformer-bulgarian-internet-bgp-peering-evolution-from-2001-till-now-network-evolution
- ↑ https://github.com/iTransformers/netTransformer