This is another post from my ongoing series here at AJSNetworking regarding Evolving Technologies. This addresses the Evolving Technologies section of the CCIE Written Exams. The complete list of topics and my previous posts can be found here:
I think the best way to get a handle on the location of the Northbound and Southbound protocols is to actually see them in relation to the other components. Remember, when we say network programmability, you should think Software Defined Networking (SDN). Figure 1 below makes this clear:
Notice the “Northbound” APIs (protocols) communicate between your network management station running its network apps and the SDN controller. The “Southbound” APIs occur between the controller and the actual network devices themselves.
For the Northbound APIs, Cisco likes to use REST-based APIs. What is a REST-based API? A REST API, or an API that is RESTful (adheres to the constraints of REST) follows six constraints:
- Client-Server – exists to maximize the portability of server-side functions to other platforms. This means that completely different applications, even in different languages, can use the same functions in a REST API.
- Stateless – all state is kept client-side. The server does not retain any record of client state; results in a much more efficient SDN controller
- Caching – just like cookies in your web browser. It is a good idea for the client to maintain a local copy of information that is commonly used; this improves performance and scalability.
- Layered System – a REST API must be built in a way that a client interacts with it’s neighbor and does not need to see “beyond” that neighbor.
- Uniform Interface – no matter the information retrieved, the method by which it is presented is always consistent.
- Code-on-Demand – to transmit working code inside an API call.
A REST API is often just a Web server that accepts HTTP POSTs, GETs. These requests typically contain standard elements like XML, JSON, SOAP, or others.
What is common for the Southbound APIs? Cisco loves to keep it simple with the Command Line Interface (CLI) and Simple Network Management Protocol (SNMP).
Certainly the most well-known Southbound API is OpenFlow, but obviously there are other options available and in development. The Network Configuration Protocol (NetConf) uses Extensible Markup Language (XML) to communicate with the switches and routers to install and make configuration changes. Lisp, also promoted by ONF, is available to support flow mapping. In addition, there are more established networking protocols finding ways to run in an SDN environment, such as OSPF, MPLS, BGP, and IS-IS.