What Software Defined Networking (SDN) is all about?
I have been hearing a lot on SDN for quite a long time.
There are many articles on the web which talks about it but
does not adequately explain what IS SDN really. I finally decided to write on
SDN from my perspective.
Let’s start with a simple example. We have CISCO Router (I
like cisco).
I want to check whether my CISCO Router can ping an IP on
the Internet.
To do this I will carry the following steps:
1. telnet or ssh into the router
2. ping an IP address
on the internet (8.8.8.8)
If I have to do this regularly it becomes a boring thing.
What if I can write
an Application which can telnet/ssh into my router, then perform a ping and
check whether the ping was successful or not?
This is where SDN
comes into play. SDN allows you to
programmatically configure or run commands on your switches and routers.
I think that the right word for this should have been Programmable Networks (I have seen this
on some networking vendor’s website)
To make SDN happen, the network vendors should provide some
API or SDK to allow access to their routers and switches. In the case of CISCO,
the SDK/API is called onePK.
I can see the following important benefits in using SDN:
Centralization – You
can manage your routers and switches from a central point. No need to go into
each router or switch.
Abstraction – We
don’t need to care whether we are running CISCO, HP or BROCADE. As long as we
have the SDK or API, our application is going to talk to them regardless of
vendor or make.
Automation – Automation of repetitive tasks like in the example given above.
In the following last 2 sections I will dive deeper into the
details and technical architecture of onePK (contents taken from Cisco’s
website).
Cisco's One Platform Kit (onePK)
onePK is an element within Cisco's software defined networking (SDN) strategy. onePK is an easy-to-use
toolkit for development, automation, rapid service creation, and more.
Build
or extend applications from your routers and switches to servers and new
business platforms. Automate current services or create new ones on demand,
when and where you need them and faster
than ever. onePK makes your network more powerful and flexible while
giving you the control you need. Users also have access to an all-in-one
development environment that includes simulated network elements.
Designed for Flexibility
onePK has the capability to:
·
Integrate
with PyCharm, PyDev, Eclipse, IDLE, NetBeans, and more
·
Support
commonly used languages, including C, Java, and Python
·
Run on
any server or directly on your network elements
·
Use
APIs to extend, modify, and tailor your network to your business needs
·
Tie in
easily with third-party tools and workflows
Unlimited Possibilities
Use onePK for new application-enablement, service automation, and more.
With onePK you can orchestrate and enhance your network elements. You can also:
·
Customize
route logic
·
Create
flow-based services such as quality of service (QoS)
·
Adapt
applications for changing network conditions such as bandwidth
·
Automate
workflows spanning multiple devices
·
Empower
management applications with new information
Technical Overview
At a high level, the onePK architecture is composed
of three major elements:
·
the presentation layer
·
the onePK API infrastructure
·
the communication channel
These elements combine to provide a consistent and
adaptable architecture that enables multiple languages and multiple deployment
models for applications that work across the network.
Presentation Layer:
What the Programmer Sees
The presentation layer consists of the
API libraries that programmers can use within their applications. With onePK,
application programmers get a universal network programming toolkit. The onePK
Libraries are initially available in C, Java, and Python. The libraries were
designed with very few dependencies, so it can be easily integrated with
existing tools and development requirements.
onePK API
Infrastructure: One API for Many Devices
The API Infrastructure provides access
to functions that are internal to a router or switch. One of its primary values
is that it abstracts underlying differences between operating systems and
platforms. For example, if your application uses a onePK function call to read
interface statistics, that same function call will work across all Cisco
networking software platforms (Cisco IOS® Software, Cisco IOS XR Software,
Cisco IOS XE Software, and Cisco NX-OS Software).
Communication Channel:
Security and Flexibility
The communication model provides a
fast, safe, extensible channel between the application and the network element.
(Applications are required to authenticate before being allowed to access the
functions of the API Infrastructure layer.)
SOURCE & FURTHER REFERENCE:
OnePK Overview, https://developer.cisco.com/site/onepk/discover/overview/
Cisco's One Platform Kit (onePK) , http://www.cisco.com/c/en/us/products/ios-nx-os-software/onepk.html