Nothing Special   »   [go: up one dir, main page]

Software Defined Networking (SDN)

Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Software Defined Networking (SDN):

Let’s learn some basic concepts of SDN in brief and the how, why and what of this new
technology which is increasingly now being adopted by Data Centers, Wired and Wireless
networks of all types, Cellular Wireless and other service providers. Originating from a PhD
work at Stanford, it has evolved (look into its history, if interested) since the beginning of 2000.
Google, Amazon, and AT&T are among the firms who have implemented it. In short, SDN is
about adding dynamic programmability into the network. Why do we need SDN, let’s
understand first. The internet is no doubt a highly success story, but as far as its infrastructure is
concerned, very few innovation could be taken up at the networking layer (routing protocols,
congestion control etc stagnated, and could not be improved much). Most of the innovation
meanwhile came at the application layer: facebook, skype, you-tube, Netflix and so on. Imagine
the data and bandwidth load: Something like a tortoise being forced to carry four elephants on its
back…Note now with IoT, Cloud computing, mobile traffic, big data on the way, things are
going to be difficult and much different than the original internet. One of the reasons why it is
difficult to innovate and change the Internet Protocol is because most of the equipment have their
software bundled with hardware and interfaces are all vendor-specific, (specific codes written by
their vendors). Network devices are sold by networking vendors often use proprietary hardware and
are primarily configured through their own developed interfaces. Introducing new functionality to
the network, like intrusion-detection systems and load balancers usually requires tampering with
the network’s infrastructure and has a direct impact on its logic, while deploying new protocols
can be a slow process demanding years of standardization and testing to ensure interoperability
among the implementations provided by various vendors. The idea of programmable or
software-defined networks has been proposed as a solution to the above problem. This leads to
flexible networks able to operate according to the user’s needs in a direct analogy to how
programming languages are being used to reprogram computers in order to perform a number of
tasks without the need for continuous modification of the underlying hardware platform. In our
traditional networks, note that Protocols like ARP, STP, OSPF, EIGRP, BGP(routing protocols)
and other run separately on each network device. These network devices communicate with each
other but there is no central device that has an overview or that controls the entire network. This is
where SDN brings a paradigm shift.
The first point you will note in definition of SDN is that it says that it decouples or separates
the control plane from the data plane. In conventional networks, routers, switches, firewalls
and other devices tightly couple the control plane and the data plane on a single device. Recall
the notes of Routing where we introduced the difference between Data plane and Control plane
present in each switch/router. Data plane (also called forwarding plane) is concerned with
forwarding of end-user data packets, their segmentation and re-assembling, replication of
packets for multicasting and similar activities. Control plane is like the brain of the network that
performs all activities necessary for the data plane to work properly, like making of routing
tables, setting up of packet handling policies, traffic engineering and likewise . It is the control
plane of various switch/router that exchange topology information and construct the forwarding
table, and as per this table the data plane forwards an incoming data packet. There is another
plane called “Management/Policy plane” in the networking industry which acts in human scale
and is responsible for configuration of device based on collected measurements and traffic
engineering. The diagram below is a block diagram of a typical traditional router.
The red blocks denote the control plane while the blue switches/routers show the data plane. As
discussed earlier, the control planes run distributed algorithms to track changes in network
topology, computes routing tables, frame rules for forwarding. The data plane stream packets.

In SDN, we have a logically centralized high-level program called a SDN Controller. The data
plane remains on each device (physical and virtual) for quick, efficient forwarding of data. The
functionality of a devices' data plane is dependent on instructions coming from the centralized
controller's control plane. Note this difference: In traditional networks, each switch/router has
its own data plane as well as control plane. In SDN the control plane is taken away from the
switch and assigned to a centralized unit.
Hence, a network administrator can shape traffic via a centralized console without having to
touch the individual switches. The data plane still resides in the switch and when a packet enters
a switch, its forwarding activity is decided based on the entries of tables, which are pre-assigned
by the controller. If a packet doesn’t find a corresponding match in the table, the switch queries
the controller which sends a new entry to the switch. The switch forwards or drops the packet
based on this entry. The tables are often called Flow tables. In traditional networks each network
layer device needs to be configured and whenever there is a change in network they have to be
often reconfigured manually which is highly tedious and time-consuming and could be error
prone. With SDN, dynamic scalability is achieved as one can configure/monitor/troubleshoot
network devices with ease from central point, avoiding and reducing a lot of manual effort,
hence saving time and money in the process. SDN helped to increase the capacity of data centers
of Google by more than two orders of magnitude. The software controller with an overview of
the whole network can now be made intelligent to perform all decision making; the
switches/routers will be much simpler, focusing only on forwarding packets to their destinations
as per the instructions from controller. This has a tremendous scope of simplifying network
management. New protocols and applications can be tested and deployed over the network
without affecting unrelated network traffic; additional infrastructure can be introduced without
much hassle; and middle boxes can be easily integrated into the software control. See the figure
below to understand the SDN concept. Communication between data and control plane is
achieved through a well-defined API (Application Programming Interface) in SDN programming
languages. The data plane consisting of switches are still responsible for forwarding of packets,
The internal implementation of buffers, parameters, and other data structures related to
forwarding can be vendor dependent; however, each switch must implement a model or
abstraction of packet forwarding that is open to SDN controllers. This model is defined in terms
of an open API between the data and control plane. A very common example of such a popular
API used in networking industry is OpenFlow.
The figure above shows another common analogy with operating system in computing that is
often given to understand how SDN control plane introduces flexibility in networking. The core
philosophy of SDN is the existence of a network operating system placed between the network
infrastructure (switching hardware /data plane) and the application layer. This network operating
system is responsible for coordinating and managing the resources of the whole network and for
revealing an abstract unified view of all components to the applications executed on top of it.
This idea is analogous to the one followed in a typical computer system, where the operating
system lies between the hardware and the user space and is responsible for managing the
hardware resources and providing common services for user programs.
Some examples are reproduced from internet below to understand the advantages of SDN.
Example 1: Consider a network on which data is being routed using FTP and VOIP both. Now
at times, FTP traffic has higher priority than VOIP and at other times, VOIP traffic has higher
priority than FTP. Now to achieve this, we got to tell each switch/router that Hey..!! Traffic
priority has changed, let’s change your setting. Whoa, what if there 100s of network devices?
That’s one place SDN saves our lives – using SDN Controller, we can shoot out a command that
FTP traffic has taken precedence over VOIP traffic and that’s it. This command gets propagated
to all the network elements
.

Example 2 Consider a network which is divided into 2 sub-networks. Sub-Network 1 is


providing a dedicated bandwidth of 10 Gbps and Sub-Network 2 is providing a dedicated
bandwidth of 20 Gbps. Now there will be times when bandwidth requirement from Sub-Network
1 is just 5 Gbps but from Sub-Network 2, it is 25 Gbps. SDN will enable dynamic allocation of
bandwidth based on current needs which is not possible to achieve today. Hence comes the
definition, SDN allows us to easily shape the traffic.

Example 3 Consider an organization, which needs low bandwidth, good latency pipe at one
point of time but high bandwidth, poor latency pipe at another point of time. Well achieving
good latency is highly expensive so when they are not doing any time sensitive operations, they
would want to have a poor latency pipe which is relatively cheaper. SDN will help in achieving
this.

Network Virtualization and Network Function Virtualization


These two technologies you will often hear in close relation to SDN: they are actually applications
of SDN, or we can say SDN is a tool to achieve these. We will have a basic understanding of
these two terms.
Network virtualization (NV) is the separation of the network topology from the underlying
physical infrastructure. Through virtualization it is possible to have multiple ‘virtual’ networks
deployed over the same physical equipment, with each of them having a much simpler topology
compared to that of the physical network. This abstraction allows network operators to construct
networks as they see fit without having to tamper with the underlying infrastructure which can
turn out to be a difficult or even impossible process. For instance, through network virtualization
it becomes possible to have a virtual local area network (VLAN) of hosts spanning multiple
physical networks or to have multiple VLANs on top of a single physical subnet.
The idea behind network virtualization of decoupling the network from the underlying physical
infrastructure bears resemblance to that advocated by SDN for decoupling the control from the
data plane and therefore naturally becomes a source of confusion. The truth is that none of the
two technologies is dependent on the other. The existence of SDN does not readily imply
network virtualization. Similarly, SDN is not necessarily a prerequisite for achieving network
virtualization. On the contrary, it is possible to deploy a network virtualization solution over an
SDN network, while at the same time an SDN network could be deployed in a virtualized
environment. Since its appearance SDN has closely coexisted with network virtualization, which
acted as one of the first and perhaps the most important use cases of SDN. The reason is that the
architectural flexibility offered by SDN acted as an enabler for network virtualization. In other
words, network virtualization can be seen as a solution focusing on a particular problem, while
SDN is one (perhaps the best at this moment) architecture for achieving this. However, network
virtualization needs to be seen independently from SDN. In fact, it has been argued NV could
turn out to be even bigger technological innovation than SDN { Do some Google study if
interested in career in networking industry}
Another technology that is closely related but different from SDN is Network Functions
Virtualization (NFV) NFV is a carrier-driven initiative with a goal to transform the way that
operators architect networks by employing virtualization related technologies to virtualize
network functions such as intrusion detection, caching, domain name service (DNS) and network
address translation (NAT) so that they can run in software. Through the introduction of
virtualization it is possible to run these functions over generic industry-standard high volume
servers, switches and storage devices instead of using proprietary purpose-built network devices.
This approach reduces operational and deployment costs, since operators no longer need to rely
on expensive proprietary hardware solutions. Finally, flexibility in network management
increases as it is possible to quickly modify or introduce new services to address changing
demands. The decoupling of network functions from the underlying hardware is closely related
to the decoupling of the control from the data plane advocated by SDN and therefore the
distinction of the two technologies can be a bit vague. It is important to understand that even
though closely related, SDN and NFV refer to different domains. NFV is complementary to SDN
but does not depend on it and vice-versa. For instance, the control functions of SDN could be
implemented as virtual functions based on the NFV technology. On the other hand, an NFV
orchestration system could control the forwarding behavior of physical switches through SDN.
However, neither technology is a requirement for the operation of other, but both could benefit
from the advantages each can offer.

You might also like