Computer Network 11 | Introduction of SDN and SDN Architecture
1. Introduction of SDN
(1) Difficulties of Managing Computer Networks
In practice, it’s very difficult to manage a computer network because of the following two reasons,
Diversity of Equipment: computer networks have a large range of equipments and these equipments require to operate at a level of individual protocols, mechanisms and configuration interfaces, making the network difficult to manage. The common equipments include,
routers
switches
middleboxes
firewalls
network address translators (NATs)
server load balancers (LBs)
intrusion detection systems (IDSs)
Proprietary Technologies: Equipments like routers and switches tends to run softwares that are closed-source and proprietary, which means the config interfaces can be various.
(2) Software Defined Networking (SDN)
Because of these difficulties of managing the network, SDN was developed as part of the process to make computer networks more programmable. The basic idea of SDN is to seperate the tasks into control plane and data plane so the the network become modular and manageable.
(3) History of SDN 1: Active Networks (mid 1990s ~ early 2000s)
In early 1990s, the networking approach was primarily via IP or ATM (we mentioned it when we talked about knockout scheme).
The network took off and researchers were eager to test out new ideas to improve network efficiency. However, this process was bottlenecked by standardization of new protocols of organization Internet Engineering Task Force (IETF).
Therefore, this lead to the growth of activate network which aimed at opening up network control. It envisioned APIs that exposed the network nodes and it supported customization of functionalities for flows of packets.
(4) Two Active Network Models
There are two main types of programming models in activate networking, include,
Capsule model: each capsulate contains both the data and a set of instructions for processing the data. The capsules are processed by a sequence of Capsule routers.
Programmable router/switch model: the routers and switches in the network are themselves programmable.
Note that the capsule model has the following benefits,
most closely related to active networking
bring a new data-plane functionality
cache to make code distribution more efficient
(5) Reasons for Active Networking
There are several technological incentives that lead to the active networks,
Reduction in computation cost
Advancement in programming languages
Advances in rapid code compilation and formal methods
Funding from agencies such as U.S. Defense Advanced Research Projects Agency (DARPA)
There are also some other emerging use cases require this properity,
Network service providers require shorter time to develop and deploy new network services.
Third party interests to add value by implementing control of specific applications or network conditions.
Researchers interest in having a network that would support large-scale experimentation.
Unified control over middleboxes.
(6) Active Network’s Contributions to SDN
Programmable functions in the network to lower the barrier to innovation.
Network virtualization, and the ability to demultiplex to software programs based on packet headers.
The vision of a unified architecture for middlebox orchestration.
(7) History of SDN 2: Control and Data Plane Separation (2001 ~ 2007)
Because there was a steady increase in traffic volumes during this period of time, the network reliability, predictability and performance became more important.
Therefore, network providers were looking for better network-management functions and researchers identified the challenge in network management happened because of a tight integrate of control plane and data plane in switches. Once this was identified, efforts to separate the these two planes began.
(8) Reasons for Seperation
There are several technological incentives that lead to the plane seperation,
Higher link speeds in backbone networks requires direct packet forwarding implement by hardware
ISPs found it hard to meet the increasing demands for reliability, VPNs, and scalability
Servers are more powerful on processing, storage, and memory
Open-source routing software lowered the barrier of creating centralized routing prototype
These incentives lead to two main innovations,
Open API between control plane and data plane
Logically centralized network management
There are also some other emerging use cases require this properity,
Demand of selecting network paths
Minimize routing change disruptions
Detect and drop suspicious attacking traffic
Allow customized network traffic
Provide other services like VPN
As a result, the data plane and control plane seperation leads to the following two main benefits,
Independency: Independent evolution and development of data plane and control plane
Control: SDN can control through high-level software program
(9) Control and Data Plane Separation’s Contributions to SDN
Centralized control to data plane through API
Distributed state management
What’s more, this separation leads to opportunities in different areas of SDN,
Data centers: SDN helps to manage data center networks
Routing: SDN can provide more control over path selection and it’s easier to update router’s state
Enterprise networks: SDN can improve the security applications for enterprise networks
Research networks: SDN allows research networks to coexist with production networks
(10) History of SDN 3: OpenFlow API (2007 ~ 2010)
OpenFlow is a network protocol developed with the purpose of increasing network scalability. It allows the server to tell the OpenFlow enabled switch where to send the packets.
When a packet comes to an OpenFlow enabled switch, it will switch based on a table of packet-handling rules where each rule has,
a pattern
a list of actions
a set of counters
a priority
The packet-moving decisions are made based on the highest priority matching rule. This process under OpenFlow is centralized so that the network can be programmed independently of the individual switches.
(11) Reasons for OpenFlow
There are several technological incentives that lead to the OpenFlow,
With microchips, switches are programmable
Companies build switches without having to design and fabricate their own data plane
Early OpenFlow versions built on technology that the switches already supported
There are also some other emerging use cases require this properity,
OpenFlow came up to meet the need of conducting large scale experimentation on network architectures
OpenFlow was useful in data-center networks
Companies started investing more in programmers to write control programs
(12) OpenFlow’s Contributions to SDN
Generalize network devices and functions
Transfer network to an operating system
Enable other distributed state management techniques
2. SDN Architecture
(1) Components of SDN
The data plane of an SDN contains infrastructures which is mainly SDN controlled switches. The control plane include the SDN controller and other network control applications.
Infra layer: SDN controlled switches
Controller layer: Network OS (SDN Controller)
Application layer: Network Control Applications
Routing
Access Control (IAM)
Load Balancer (LB)
There are two API rules in this structure,
Northbound API: API between applications and controller
Sorthbound API (OpenFlow): API between controller and infra
(2) SDN Architecture Features
Flow-based forwarding
The rules for forwarding packets in the SDN-controlled switches can be computed based on any number of header field values in various layers. For example, OpenFlow allows up to 11 header field values to be considered.
Separation of data plane and control plane
SDN-controlled switches operate on the data plane and they only execute the rules in the flow tables.
Network control functions
The controller provide update-to-date network states about infra devices for applications to monitor and control.
Programmable network
Network control applications used to control the network are programmable.
(3) SDN Controller Architecture
Communication Layer
This layer consists of a protocol for SDN communication to infra devices. We can have several options on this protocol including OpenFlow
, PCEP
, SB
and etc. This layer is also know as the Southbound API.
Today’s SDN controllers are using OpenFlow
.
Network-wide state-management layer
This layer is where the real process happens. It includes the informations like state of the hosts, links, switches and other controlled elements in the network. Network-state information is needed by the SDN control plane to configure the flow tables.
Interface to application layer
This layer is also known as the Northbound API. Through this interface, controller can notify the applications changes of the network state based on the event notifications.
There are several kinds of interfaces we can choose in this layer include HTTP
, RESTful API, RPC
, Java Native Functions, etc.