Most of us love Netmiko because it’s unparalleled at what it does, but what if it could do more?
Times change, and so must our tools. What was once considered the Swiss Army knife of network automation is now seen by some as merely a fork. This isn’t due to a drop in quality but rather the growing versatility and sophistication of network specialisation.
Contemporary network automation integrates AI and machine learning to create intelligent, self-managing infrastructure. These systems enable predictive threat detection, autonomous fault remediation, and real-time network optimisation without human intervention.
The current era represents a fundamental shift from reactive problem-solving to proactive, autonomous network operations. While we won't deep dive into every AI improvement here, it must be said: any new tool should inherently incorporate AI capabilities. Like it or not, those that don’t will be left behind.
The Ups & Downs of Netmiko
Netmiko is a fantastic Python solution. As the second oldest among its competitors, it has remained the most reliable solution on the market for the past 15 years because it is the best at what it does and doesn’t try to be something it’s not.
However, to understand where we are going, we must understand where we are. Let’s look at what puts Netmiko ahead of the pack and what keeps it tethered to the past.
The Positives
Robust CLI Compatibility Layer: It abstracts away complex, device-specific differences across major vendors.
Handling of Terminal Idiosyncrasies: It automatically manages low-level session dynamics, such as inconsistent command prompts, ANSI escape codes, and extra messages that typically break generic scripts.
Uniform API for I/O: Provides a simplified, consistent Python API using high-level methods like send_command() and send_config_set().
Configuration Simplicity: Includes specialised methods that handle configuration sequences automatically (entering config mode, deploying large config blocks via send_config_from_file()).
The Indispensable Foundation: It acts as the execution engine (the "connection driver") for newer, higher-level frameworks like NAPALM and Nornir.
The Negatives
Limited Integration: Options make it difficult to connect with third-party or web-based platforms.
No Session Persistence: Sessions must often be re-established for each command, reducing efficiency in large-scale environments.
No Command Queuing: Lack of command execution control can lead to conflicts or configuration errors during concurrent operations.
Difficult Extensibility: Adding support for new devices is complex due to the absence of a modular framework.
Limited Scalability: A synchronous design limits performance when managing multiple network connections simultaneously.
Short Vendor/Model List: In the current landscape, the default vendor list is becoming insufficient.
The Necessity Of Netdriver
Once we examine Netmiko’s state in the current IT industry, a question arises: What product could we use that combines the solid foundation of Netmiko with the innovation required for current industry standards?
While searching for an answer, I came across an open-source project called NetDriver.
Netdriver is the first open-source project of the OpenSecFlow team. They are upfront about being based on Netmiko, positioning themselves as a "Netmiko upgrade." The developers created this not out of disdain for the original, but out of love for it—and the frustration of not being able to use it effectively in modern, high-scale environments.
How Netdriver Operates
NetDriver is an advanced open-source framework for automating network devices. Its main purpose is to use a high-level HTTP RESTful interface to make it easier to execute low-level commands on different networking equipment.
This architecture facilitates generalised automation solutions and third-party integrations. Its design focuses on operational efficiency and stability, featuring advanced session management for persistent connections and a command queue to avoid configuration conflicts.
Key Upgrades in Netdriver
API-Driven Integration: Provides an HTTP RESTful API, enabling seamless integration with external third-party systems and applications.
Customisable Session Persistence: Offers session persistence with a configurable duration, maintaining connections for ongoing tasks.
Extended Vendor List: To adjust to the current IT environment, Netdriver devs have almost doubled the model and vendor list.
Conflict-Free Command Execution: Implements a command execution queue to prevent concurrent commands from conflicting.
Plugin Architecture: Features a plugin architecture, simplifying the development and addition of support for new devices.
High-Performance Asynchronous Operations: Built on an AsyncSSH-based architecture, allowing for efficient, non-blocking communication with multiple devices simultaneously.
Netdriver Architecture
NetDriver connects your applications to real and simulated community devices through a unified automation layer.
Your app communicates with the NetDriver Agent through an HTTP RESTful API.
The agent translates requests into CLI commands.
Commands are executed over SSH on real devices (Cisco, Juniper, Arista) or simulated devices (SimuNet).
This setup allows developers to manipulate networks efficaciously, test in virtual environments, and combine operations with other systems without dealing immediately with tool-specific configurations.
Conclusion
From junior to senior, from backend to frontend, if you’ve worked in web development or network engineering, you’ve likely heard of Netmiko. It is simply irreplaceable.
So instead of replacing it, the team at OpenSecFlow decided to embrace and upgrade it. Netdriver expands our model options, changes a sync-based architecture to async, adds HTTP third-party integrations, and includes quality-of-life features that previously required separate plugins.
In our age of paywalls, open-source projects like this are what keep the industry moving forward.
Sources:
Netdriver Repository:https://github.com/OpenSecFlow/netdriver
Netmiko Repository:https://github.com/ktbyers/netmiko
Top comments (0)