When I started on my network automation journey, I didn’t pay too much attention to what I was using when creating my code. I knew that programmers used Integrated Development Environments (IDEs), but since I was mostly editing smaller text files I kept to simple text editors like Nano or Vi. I attended Red Hat’s AnsibleFest in Austin, TX and saw that many people in the network world (both vendor reps and other network engineers) would use much more advanced text editors. One of the most popular ones being used was Atom. I ended up having a conversation with some other co-workers and a few Red Hat reps, and some suggested trying out Microsoft’s Visual Studio Code (commonly referred to VS Code). After having some time to try out both, I have chosen to stick with VS Code. While this blog post isn’t going to do a side by side comparison of text editors, it will show some of the highlights that led me to choose VS Code when creating network code.Continue reading “Using Visual Studio Code for creating Network Code”
In a typical network, routing is done on a hop by hop basis with each router making a forwarding decision based on the destination address of a packet. However, certain scenarios can occur that require routing based on something other than the destination. Policy based routing (PBR) can be used to modify how packets are handled by a router. This blog post will demonstrate how to perform policy based routing on Cisco IOS devices using the source address as the policy to route by.
GNS3 Problems in Fedora 25
In my first blog post, I setup a Fedora 25 machine running Fedora Server version and GNS3 for network simulation. Unfortunately, during a “dnf update” on the system GNS3 stopped working. This was possibly an issue with the version of GNS3 I was running (1.5.3) and the aiohttp python library. I did see that GNS version 2.1 was supposed to fix the aiohttp library issue (this post), but it was only available on the Fedora 26 repositories. Upgrading from Fedora 25 to 26 is simple, as detailed by this Fedora Magaizne article. In short, all you need to do is run the following commands:
In a previous blog post I showed how to utilize Python to create a script that will generate network configurations from templates utilizing Jinja2. While the solution did work, creating scripts from scratch using a programming language can be a daunting task for network engineers. Luckily for us, there are already tools in place that we can leverage to do the heavy lifting for us. Today we will look at Ansible to generate network device configurations from templates.