CCNA Exam Info
Historically, the CCNA has focused on traditional models of managing networks. It still very much does, although now the certification requires you to have a basic understanding of various topics related to network automation.
In the ‘traditional’ methods of network management, engineers/admins would configure one device at a time via CLI over SSH, or console port connections as necessary. This way of configuring network devices is time-consuming and prone to errors (typos, etc.).
Network automation offers many key benefits:
- Human errors are reduced (it’s easier to check for & correct typos once, rather than for every node in a network)
- Networks are more scalable; New deployments, network-wide changes, and troubleshooting take a fraction of the time.
- Network-wide compliance is easier to confirm & enforce (distribute standard configurations, compare current configs against standards, check & update software versions, etc.)
- Reduced operating expenses of the network. Each task requires fewer man-hours.
There are various tools and methods to automate tasks in a network:
- Software-Defined Networking (SDN)
- Ansible, Puppet, Chef, etc.
- Python, Ruby, shell, etc. scripting
- More, probably
Scripting (Automation in Traditional Networks)
Many (most?) networking tasks can be automated in traditional networks with the use of custom-written scripts. There are many languages that can be used for this purpose (Ruby, Haskell, Bash Scripts, etc.) but Python is probably the most popular.
Such scripts can be used to send a complex series of commands without fear of typos or omissions, or they can be used to send commands to many devices at the same time.
You can also incorporate Regular Expressions (REGEX) to parse the data from show
commands to gather information about devices.
All that said, many of these functions are also facilitated by SDN controllers — they already gather most useful network information and compile it into formats that are easy for applications to understand and display. They also don’t require network engineers to know how to program in Python (or any other language).
It is also possible to use the APIs provided by SDN to access data with custom scripts, if you’ve got the programming chops. This allows for some very powerful custom tooling, and possibly the best of both worlds.