Since the beginning when the first router hit the market, network engineers would log into the box and type in the configuration. The CLI was faster then and is still faster now versus using a Web browser and click on virtual buttons. The negative aspect was it was not scaleable. The network engineer has to log into every device to configure it. The tasks are repetitive for each device. This could be considered tedious, error prone and time consuming. In today’s working environment speed and flexibility are champions.
Today networking vendors have introduced programming languages to their products. Network engineers now can use the same tools programmers use to speed up the deployments. Repetitive tasks such as configuring a VLAN tag on a switch port can be automated.
The first step is to convert the networking hardware to run on a variant of Linux. Linux has been around for a long time and there are plenty of mature tools to use. Do you need to know how to use Linux? No. For network devices, the new Linux software emulates the same command line. Don’t be fooled, this is for backwards compatibility. Linux brings new ways to access and manage a network device. The bigger picture, we now can extract information from the network devices in real-time.
Disclaimer: This article is not meant to provide training or replace training material. This is a high level introduction to new automating tools, now available to networking engineers.
New fancy words:
API: (Application Programming Interface) Think of this like the interface on a router. When you want to configure the router, you first Telnet or SSH to the router’s interface. API’s allow for direct access or hooks into applications or network devices. API’s allows you to leverage the application’s capabilities. Great, how and what does this mean for the network engineer? Cisco is in the process of converting all their hardware to run based on a special Linux version. Linux has its own API’s. This will allow network engineers to access a Cisco router via it’s API’s.
REST: (Representational State Transfer) Modern API’s rely on Web based technologies to communicate. this is protocol Utilized to transfer data between a web interface and a device, a router for example. It’s like what SSH for a network engineer, REST is used by a Web GUI/Browser. Modern API’s rely on Web based technologies to communicate.
From the perspective of the Web Browser:
PUTS: Creates or updates data like a configuration change to router.
GETS: Retrieves data from a device like a router’s IP address
POSTS: Creates data like a router’s configuration
DELETES: Removes data, like a ACL on a router.
Postman: Postman is a app created by Google to run on REST, and provide PUTS, GETS, POSTS, and DELETES. It’s free it runs on Google Chrome. Not a bad idea to download it and kick the tires
Side note: Cisco ACI and APIC-EM and VMware’s NSX software packages, in basic terms are paid versions of Google’s Postman. In the case of ACI, you need specific network devices to run it. I did state basic, with all due respect these software packages have way more functionality, to go into detail here. Look for future BLOGs.
Network engineer can also utilize scripts to manage network devices.
Command line via scripting:
Python: Python is a scripted based programming language. It’s the RIP of the programming languages, very easy to learn. But you are not a programmer you say. No worries, you don’t have to be a Python expert. How can I use Python, if I don’t know it? When you use Python, you are utilizing scripts. There are some free websites (see below) where you can download previously created scripts. Track down the script closes to what you are trying to accomplish, make some detail changes, i.e. the IP address and mission accomplished. However, it still is in your best interest to learn and understand the basics at the very least.
Git: is version control software package
GitHub: is a free website that hosts scripts who been created by others and uploaded as contributions.
Tools are great. Just like a screw driver is used to tighten screws and a power drill can speed up the process. The tools do not replace the carpenters. Programming tools are not going to replace network engineers. However, it would be foolish for an organization or a network engineer to ignore the new automation tools. These tools save time, and time is irreplaceable. One note of warning. Extreme caution should be used with automated anything. It’s one thing to make a simple mistake on a single router, the end result is a local network outage. A single error automated throughout a nationwide network can cause a coast to coast outage. That will lead to the engineer being replaced. This recently happened. A network engineer was updating 200 of his organization’s router software from coast to coast, unfortunately he fat-fingered the new operating file system file name and disabled all the routers. You will need to how to use the all tools mentioned here moving forward.
Here is a great place to start:
Programming and Automating Cisco Networks: A guide to network programmability and automation in the data center, campus, and WAN (Networking Technology) 1st Edition
by Ryan Tischer (Author), Jason Gooley (Author)