Question
What is the biggest problem with managing a network through the command-line interface (CLI)?
Answer
Misconfiguration: a human typing commands device by device makes mistakes, and in a complex network every resulting outage is expensive because troubleshooting takes longer.
On the CLI an engineer logs into each router or switch and types configuration commands by hand. That has two consequences that reinforce each other:
- Errors are likely. A wrong subnet mask, a forgotten
no shutdownor a mistyped VLAN number is easy to make and hard to spot, and nothing checks the change before it goes live. - Errors get more expensive as the network grows. The more devices and dependencies there are, the longer it takes to find which box and which line broke things, and the longer the outage lasts.
That is why tools exist that reduce human-error outages on the CLI (config templates, validation, automated rollout). The rest of network programmability goes one step further and replaces typed commands with APIs and structured data.
Go deeper:
Command-line interface — Wikipedia — how CLIs work and why they suit humans more than programs.
Note saved — thanks!
Question
What are the pros and cons of managing devices through the CLI?
Answer
Pro: well known, documented, scriptable, built-in syntax help and SSH encryption. Con: hard to scale, many commands with exact syntax to master, slow, one command at a time, unintuitive, changes between versions and platforms, and a security risk.
| Pros | Cons |
|---|---|
| Well known and well documented | Hard to scale |
| The common, standard method | Huge number of commands |
| Commands can be scripted | You must master the exact syntax |
Syntax help for every command (?) |
Running commands can be slow |
| Connection can be encrypted (SSH) | Not intuitive |
| Only one command at a time | |
| Commands can change between software versions and platforms | |
| Using the CLI can be a security risk |
The pros explain why the CLI is still everywhere: every network engineer knows it, and it works on every device. The cons all come from the same root. The CLI was built for a human reading text on a screen, not for a program exchanging structured data. That is fine for one device and painful for a thousand.
Note saved — thanks!