Software Defined Networks
Inspired from the article “Software-defined Networking: A Comprehensive Survey” by Diego Kreutz, Fernando M. V. Ramos, Paulo Verissimo, Christian Esteve Rothenberg, Siamak Azodolmolky and Steve Uhlig. arXiv preprint arXiv:1406.0440
State of Quo in Networking
●
Computer Networks can be divided in three planes of functionality
➢ Data plane ➢ Control plane
➢ Management plane
●
In legacy IP networks, the Control Plane and the Data plane are
tightly coupled
➢ Static architecture
➢ The network operations are decentralized → Rigid and complex to administrate
➢ Best way to provide network resilience
●
To alleviate the lack of in-path network functionalities, several kind
What is Software Defined Networking?
●
The SDN term, coined to represent the OpenFlow project at
the Stanford University, is originally defined like a new
network architecture where the data plane is remotely
configured by the control plane.
●
In an SDN network architecture
➢
The control and data planes are decoupled
➢
Forwarding decision is flow-based, instead of destination-based
✔ Flow programming enables a very high flexibility
➢
Control logic is hosted in an external entity
The Abstractions layers of SDN
● Forwarding abstraction: should
allow any forwarding behavior required by the network
application
● Distribution abstraction – NOS:
install the control command of the forwarding device and
collect status information
● Specification abstraction:
provide any desired network behavior without being
responsible of its
implementation at the fowarding device
Advantages of the SDN abstraction
●
Easier to program the networks
●
Each network device can benefit from the whole view
of the network
●
Integrating new capabilities into a network device is
easier
Terminology
● Forwarding device (FD): hardware or software-based data plane equipments.
➢ Forwarding devices receive the rules from the Control Plane through the “Southbound Interface”
● Data Plane (DP): the interconnection of the forwarding devices materialize the DP
● Southbound Interface (SI): define the instruction set supported by the FD and the protocol of communications with the Control Plane
● Control Plane (CP): FD are programmed at the Control Plane, through the SI. ● Northbound Interface: The API that can be provided by the NOS to
developers, providing an abstraction of the low level instructions set understood by the FD.
● Management Plane: Applications that provide the functionalities required by the network (e.g. Routing, Load balancing, etc.)
The graphical view of SDN architecture and
elements
SDN architectures
●
OpenFlow is currently the most known design of SDN-enabled
FD (other specification are also available, like the Negotiable
Datapath Models -NDMs- from the ONF Forwarding
Abstraction Working Group -FAWG-)
➢ Only 2 elements are mandatory: the controller and the forwarding
device
●
Only some fields and actions are mandatory to be compliant
with a given protocol version.
●
From OpenFlow 1.2, new matching fields can be added
●
OpenFlow version 1.2 and later OpenFlow 1.3 was defined by
Available Southbound Interfaces
●
Currently, OpenFlow is the most widely deployed SI
●
Other SI are ForCES, OVSDB, POF, OpFlex
●
POF is maybe the most direct competitor of
OpenFlow
➢
OpenFlow-based DP needs to parse a packet in order to
apply forwarding rules
➢
Parsing packets can be a problem for the evolution of
protocols
➢
Listing all packet types and fields leads to a high complexity
➢
POF tries to solve the problem those problems by removing
Challenges
●
There are several challenges that must still be faced
by SDN-based networks and at different levels
➢
Switch design
➢Controllers platforms
➢Scalability
➢Security
➢Performance
➢...
The Content-Addressable Memories
● The Content-Addressable Memory (CAM) is a kind of memory used in systems with very high searching applications
● In RAM memories, the user provides a memory address and the RAM returns the data stored at that address. In CAMs, the user provides the word to search for, and the memory returns the address(es) where such a word is (are) found. ● CAMs are very useful for switches: a switch reads the destination MAC
address, submit the address to the CAM memory and retrieve the port number where it should be forwarded
● For routers operations, CAM memories are not flexible enough.
➢ Routers use the network address and a network mask in order to determine the
outgoing port.
➢ With CAMs, an AND operation must be applied between the destination IP address of an
incoming packet and the netmask, and then the result should be submitted to the CAM → slow
The TCAM problem
●
CAMs are mainly Binary CAMs. A word is compared bit per
bit with the content of the CAM
●
Ternary CAMs. It implements a “don't care” bit. E.g. it is
possible to store the word 1XX, that will match 100, 101, 110,
111.
➢
With TCAMs, the router only needs to store the bits related to the
network address and insert “don't care” bits in the host address
part
➢