netsim-tools: the swiss knife for network simulations
While working on the VXLAN and EVPN Series I started looking around searching for a good way to automate the configuration of my GNS3 appliances used in the different LABs.
Ansible was a natural choice, since I was already using it for configuring Dell OS10 and other devices at work. For that reason, I was thinking about deploying an Ansible instance as a VM (or as a container) on top of GNS3, keeping track of the different playbooks using GIT (or github), etcetera etcetera etcetera…
But then, I discovered this wonderful tool created by Ivan Pepelnjak @ ipSpace.net: NETSIM-TOOLS.
When I approached it, the first word was: “Wow!”. A single toolkit to deploy virtual appliances, to configure them, and to manage links and IP address allocations! This would be a dream!
Then I started reading all the docs, having a look at the examples and the existing codebase, ansible playbooks and templates, and more time I spent working with it, more and more I was convinced that this is the perfect tool for me.
And the next phase was: let’s contribute to it! Let’s add some more devices, some more templates, let’s make it more useful also for my stuff!
This is why I added support for Mikrotik CHR and VyOS, and their configurations. And this is why, I am sure about that, I will continue to give my little contribution to this wonderful project.
If you are interested in discovering more about netsim-tools, have a look at these links:
- netsim-tools posts on Ivan’s Blog;
- netsim-tools official documentation;
- netsim-tools github repository.
I promise you will like it! ;)
Creating a topology is as simple as creating a YAML file that describes it, using the infrastructure-as-code principle. You can describe nodes, links, and specific parameters:
module: [ bgp ] nodes: a: bgp.as: 65001 b: bgp.as: 65002 y: bgp.as: 65003 linux: device: linux module:  links: [ a-b, b-y, y-linux ]
Going back to the original topic, EVPN support in netsim-tools is still under development, and more other features are to be developed. But you can contribute to it, if you wish! ;)
Oh! I forgot to say that netsim-tools is also able to generate a graph of the topology. See the following example, based on the above YAML file:
Or, a more complex one:
I hope you will like netsim-tools as much as I like it! And I hope to see you soon on the contributor list.