I used to use GNS3 and then EVE-NG when simulating routing topologies for many years, however for the last couple of years I have been using containerlab exclusively and haven’t looked back. Container based network operating systems such as SR Linux thrive in this environment however VM based Network operating Systems such as SR OS don’t miss out either. While I have so far mentioned Nokia systems that is not the end of it – Cisco, Juniper, Arista and many more are supported – as well as being able to integrate and instantiate generic linux containers and other tools.
Containerlab is constantly being updated and supported and while there may be a bit of a learning curve to get it up and running, the documentation is pretty good and supporting community is top notch.
https://github.com/thinghacker/containerlab-templating is a quick and dirty topology and templating demonstration I have put on Github to hopefully help show how this can help you to get things up and running so you can focus on the doing in relatively short order. This particular demo supporting the deployment of an 8 router topology including a templated configuration to add the relevant Port/IP Interface and IGP configuration so that when doing some BGP lab exercises – the base boilerplate is instantiated and you can get on with just the exercises.
I find the templating concept a powerful idea in that when linked to the topology definition changes – the generated configuration is dynamically associated with the topology