SDN or Software-defined networking (SDN) is an approach to computer networking that allows network administrators to manage network services through abstraction of lower-level functionality.
More applications, evolving security threats, demands for faster deployment, and an explosion of new devices are all pushing traditional IT models to their limits. SDN is about making the network more flexible and responsive so that organizations are better positioned to respond to these challenges.
At its most simple, the Software Defined Networking method centralizes control of the network by separating the control logic to off-device computer resources. All SDN models have some version of an SDN Controller, as well as southbound APIs and northbound APIs.
- Controllers: The “brains” of the network, SDN Controllers offer a centralized view of the overall network, and enable network administrators to dictate to the underlying systems (like switches and routers) how the forwarding plane should handle network traffic.
- Southbound APIs: Software-defined networking uses southbound APIs to relay information to the switches and routers. OpenFlow, considered the first standard in SDN, was the original southbound API and remains as one of the most common protocols. Despite some considering OpenFlow and SDN to be one in the same, OpenFlow is merely one piece of the bigger SDN landscape.
- Northbound APIs: Software Defined Networking uses northbound APIs to communicate with the applications and business logic. This helps network administrators to programmatically shape traffic and deploy services
Here’s The SDN Theory
Think about a traditional network and everything that it entails. You have your routers, your switches, and lots and lots of CAT5 and CAT6 cable strung around all physical hardware that, when connected in a certain way, defines the flow of data in the organization.
Like laying down a network of highways, planning a network takes time; it has to be done right the first time because shuffling things around afterward is expensive.
A network has to do two big things: deliver data and manage the flow of that data. For instance: If I am downloading a video from California, the network knows to get it to me in Indiana. Shunting the data through India and Europe would not be the most efficient way to do it – unless, of course, some big physical failure occured between here and the West Coast that required the signal to be sent the long way around the planet.
Inside a company, the same thing happens on a smaller scale. Data is passed back and forth, and that traffic is usually managed by software inside the physical devices – software that knows how to manage the day-to-day operations of the workplace.
With cloud computing, the physical servers that hold the virtual machines are still networked together with the same routers and switches that are used in a workplace network. But the demands on that physical network can be much, much greater at times than anything your employees can dish out. (Which, really, is the whole point of using the cloud in the first place.)
What SDN does is this: Assume you have the network cable laid out between every physical server in the cloud environment and all of the optimized routers and switches. The SDN layer essentially acts a virtual software switch or router in place of (or in conjunction with) the physical network devices.
So instead of software embedded in the routers and switches managing the traffic, software from outside the devices takes over the job. The network layout, or topography, is no longer rooted in the physical. Instead, it’s flexible and adjustable to the systems’ needs on the fly.
Properly implemented, this means an application running inside the cloud itself can take over the job of directing networking traffic. Or a third-party cloud-management application could do the job. That could make it easier to perform tasks such as load balancing devices across servers and automatically adjusting the network architecture to deliver the fastest and most efficient data paths at the right time.
The administrator can change any network switch’s rules when necessary – prioritizing, de-prioritizing or even blocking specific types of packets with a very granular level of control. This is especially helpful in a cloud computing multi-tenant architecture, because it allows the administrator to manage traffic loads in a flexible and more efficient manner. Essentially, this allows the administrator to use less expensive commodity switches and have more control over network traffic flow than ever before.
The Benefits of Software Defined Networking
Offering a centralized, programmable network that can dynamically provision so as to address the changing needs of businesses, software-define networking also provides the following benefits:
- Directly Programable: Network directly programmable because the control functions are decoupled from forwarding functions.which enable the network to be programmatically configured by proprietary or open source automation tools, including OpenStack, Puppet, and Chef.
- Centralized Management: Network intelligence is logically centralized in SDN controller software that maintains a global view of the network, which appears to applications and policy engines as a single, logical switch.
Reduce CapEx: Software Defined Networking potentially limits the need to purchase purpose-built, ASIC-based networking hardware, and instead supports pay-as-you-grow models
- Reduce OpEX: SDN enables algorithmic control of the network of network elements (such as hardware or software switches / routers that are increasingly programmable, making it easier to design, deploy, manage, and scale networks. The ability to automate provisioning and orchestration optimizes service availability and reliability by reducing overall management time and the chance for human error.
- Deliver Agility and Flexibility: Software Defined Networking helps organizations rapidly deploy new applications, services, and infrastructure to quickly meet changing business goals and objectives.
- Enable Innovation: SDN enables organizations to create new types of applications, services, and business models that can offer new revenue streams and more value from the network.