Software defined networking (SDN) is an innovative approach to network design and implementing functionality in the network. It is based on the ability to dynamically modify the behaviour of network components. SDN uses software components that can be customised and configured in a deployment, independent of the hardware, to enable networked systems to expand data flow control.
SDN is targeted towards creating an abstraction to the low-level network and presenting a unified-service-facing view of the network. It makes networks more flexible, dynamic and cost-efficient, yet simplifies operational complexity. SDN is next-generation networking that provides benefits like network and service customisability, configurability, improved operations, with increased performance. There are several different approaches to SDN and its practical implementation.
What’s driving SDN
A fast change in the way the Internet is used, and the way large industry players want to use the network and data, has led to the larger and powerful data centres. The network capacity of traditional networking equipment has grown many folds, and there is a strong push towards keeping everything in the cloud and processing as much as possible within the cloud. This is driving the demand for modern-day high-performance data centres.
Here are some of the changes in the usage of networks and how they demand the creation of high-performing, scalable and adaptable data centres:
Changing traffic patterns. Today’s applications access different databases and servers, creating a flood of machine-to-machine traffic before the data is returned back to end user. Users are moving towards accessing content from different kinds of devices and the expectation is that the network would adapt to the device specifications and capabilities.
Rise of cloud services. The large enterprises have adopted the cloud services, both private and public, resulting in an exponential growth of the service. Businesses are looking for the agility to access applications, infrastructure and other IT resources on demand, and as and what they need. The services rendered by cloud demand enhanced security, compliance and auditing requirements. Business reorganisation, consolidation and mergers require IT for the business changes overnight. Providing self-service provisioning, whether in a private or public cloud, requires elastic scaling of computing, storage and network resources.
‘Big data’ means more bandwidth. Handling today’s ‘big data’ or mega datasets requires massive parallel processing on thousands of servers, all of which need direct connections to each other. The rise of mega datasets is fuelling constant demand for additional network capacity in the data centres. Operators of hyper-scale data-centre networks face the daunting task of scaling the network to unimaginable size, maintaining any-to-any connectivity and still keeping the cost of the implementation low.
Movement of distributed data centres to clouds has been the major driver towards the software-defined networks. The cloud service providers want their networks to be flexible and extensible. The application of SDN lies in a data-centre environment, where the network services are fluid and are able to move from one hardware to another in the network. There is a need to create an instance of service dynamically and then destroy the instance when not in use.
SDN also solves the use case for multi-tenancy environment. That is, if I am a data centre service provider, and I provide distributed data centre solution to multiple customers, I should be able to connect the different data centres securely for my customers. And I should be able to do this dynamically in case of changes required in the service or configuration. In each of these use cases multiple tenants in a data centre share the same physical resources (physical servers, physical storage and physical network). Each tenant is assigned its own logical resources (virtual machines, virtual storage and virtual networks). These logical resources are isolated from each other.
SDN primarily helps us in the following two ways:
1. Cloud networking. Helps generate private clouds for enterprises or service providers, builds and provides network infrastructure as a service (IaaS) and helps build virtual private clouds (VPCs) for cloud service providers (also known as MSP).
2. Network function virtualisation (NFV) in service-provider networks. This provides value-added services (VAS) for service-provider edge networks, such as business-edge networks, broadband-subscriber-management edge networks and mobile-edge networks.
SDN also helps in moving a number of network services to general-purpose hardware, eliminating the need for dedicated hardware for these applications. Examples of such applications are intrusion detection or preventions systems (IDS/IPS), deep packet inspection (DPI), caching and wide area network (WAN) optimisation in virtual machines instead of on physical hardware appliances.
In its present state the structure of SDN is not very well defined. It looks like every vender understands the problem they are trying to solve, but every vendor has a different approach towards it. Some organisations are trying to build standards around the SDN.