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. 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. The current one are:
- "SNMP Network Discovery" - able to discovering and visualize IP networks based on various metods like OSPF, BGP, CDP, LLDP, Direct links, next hops
Blue is Metro Ethernet, red is MPLS core layer!
Same topology this time metro edge is filtered and is displayed only the core!
- "SNMP BGP Peering Map" - for generating an Internet peering autonomous systems maps from raw SNMP
Bulgarian Internet Peering in 2010 (Red are international peers with which Bulgarian ISPs has relationship, green are Bulgarian companies with public BGP autonomus systems)
- "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.
Its source code is available in github. Its user guide is available here. If there is something that still boders you please don't hesitate to ask on our community forum.
If you just want to try it you can get the latest version from our downloads page.