What is Network Programmability
Completion Time: 10 minutes
- Understand Network Programmability and how it fits into DNA.
- You should complete the lab What is DNA.
- Understand the use and function of Networks. See Networking 101 Basics and Software Defined Networks.
Step 1. The Digital Network and its Background
How does an open, software-driven network help you in business terms? It delivers network-based insights, automates processes, and protects against threats. For example, in the digital age you can mine network analytics that reveal user location and behavior.
Analytics can describe how customers move through your store or venue and how that’s reflected in what they consume. And network devices can detect and shut down a pipeline spill automatically or track energy usage in your manufacturing plant.
What makes all this possible is a fundamental transformation occurring in how networks are built and run. Behind this transformation is the idea of programmability at every layer. This means:
- Closed and hardware-centric models are giving way to open, programmable, and software-centric ones.
- Manual, repetitive command-line-interface-driven management is being largely superseded by policy-based automation.
- Perimeter-based, reactive security has been supplanted by network-embedded, context-based security that reaches from the cloud to enterprise edge.
- IT-centric analytics are morphing into business-centric analytics.
The Cisco Digital Network Architecture reflects all these changes. With this architecture, business and IT can become far more nimble and respond to business conditions quicker and more intelligently.
Older Styles of Network Management
Before Network Programmability, networks were generally configured manually using a command line interface (CLI). While network events, such as an interface going down, could be captured in logs, these events were handled on the device where they occurred. Languages such as Task Control Language (TCL) were supported for making network changes dynamically on that same network device, but that was about it. Because the intellect of the network resided on each device, improving this intelligence typically involved replacing the network devices, which could be quite expensive.
Software Defined Networks (SDN)
On each network device there are two layers that reside on the device to process data. The Data Plane layer receives network data called packets and routes them to the Control Plane layer (the intelligent layer). The Control Plane layer decides what to do with the packets, such as routing them to another device, filtering them, modifying them, or dropping them altogether. Because these two layers reside on the same network device, there was no easy, centralized way to manage the network.
The introduction of new protocols that allowed for the separation of the Control Plane and Data Plane layers produced a dramatic change in the networking paradigm. This separation meant that the intelligence of a network device (the Control Plane) could be abstracted to a remote location. This change allowed for remote software applications to dynamically change how a network device functions by reconfiguring it based upon network events. Essentially, networks could now be defined and redefined by software applications, giving rise to the concept of Software Defined Networks (SDN)
With SDN, a new client/server architecture was introduced. A controller could operate as a server and communicate with network devices and other applications. The network devices and applications would act as clients with the applications requesting the server to perform tasks on various network devices. The applications would interface with the controller via Application Programming Interfaces (APIs) that it provides. The controller, in turn, would interface with the network devices making changes to their configuration requested by the applications.
There is a huge advantage using controllers. Since they configure network devices, human error is dramatically reduced, and reconfiguration time is cut down from hours to seconds as the entire network could be quickly reconfigured by one controller.
In addition to centralized remote Controllers which could manage the network, some network operating systems (NOS) such as Cisco's NX-OS began adding their own APIs. This change meant that network devices could be directly reconfigured through applications as well. Each change would occur on a device-by-device basis, but by software. Network Programmability implies that network devices can be reconfigured either by interfacing with APIs provided by the NOS or through a controller.