Internet DRAFT - draft-zhao-opsawg-model-sdn-multi-controller
draft-zhao-opsawg-model-sdn-multi-controller
Network Working Group J. Zhao
Internet Draft Fudan University
Intended status: Informational Y. Xu
Expires: December 2017 BNC
June 16, 2017
A Model for Building SDN Control Plane with Multiple Controllers
draft-zhao-opsawg-model-sdn-multi-controller-00
Abstract
This document describes a reference model for building SDN control
plane with multiple controllers. It defines the key components in
the model and introduces an effective mechanism to balance the load
between controllers. The design also considers the tradeoff between
scalability and performance.
Status of this Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
This Internet-Draft will expire on December 16, 2017.
Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved.
Zhao et al. Expires December 16, 2017 [Page 1]
Internet-Draft Model for Multi-Controller SDN Control Plane June 2017
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with
respect to this document.
Table of Contents
1. Introduction ................................................ 2
2. Terminology ................................................. 3
3. Multi-server Controller Framework ........................... 3
4. Switch-controller Interaction................................ 4
5. Design Issues ............................................... 5
5.1. Load balance ........................................... 5
5.2. Traffic Mapping......................................... 5
6. Security Considerations...................................... 6
7. IANA Considerations ......................................... 6
8. References .................................................. 6
8.1. Normative References.................................... 6
8.2. Informative References.................................. 6
1. Introduction
The centralized design of control plane in software defined
networking(SDN) brings the benefit of network programmability. The
design allows a logically centralized controller to control a number
of network switches and thus enables more flexible control with
global information. However, the centralized design also leads to
scalability concerns. With the increase in flow number and network
size, controllers will experience performance bottleneck. Therefore,
it is critical to scale up the performance of controller for real-
world SDN deployment.
The document defines a reference model and associated
interconnection mechanism for building a controller using server
clusters. The model integrates commodity servers and OpenFlow
switches into a powerful logically centralized controller. On one
hand, a number of OpenFlow switches are used to serve as a highly
scalable front-end switch group, which can handle high-throughput
data traffic. On the other hand, a number of commodity servers are
deployed to serve as the controller cluster, which leverages the
parallelism of cluster to balance the control plane load. Each
server in the cluster thus deals with partial load from the control
plane by a load balancer.
Zhao et al. Expires December 16, 2017 [Page 2]
Internet-Draft Model for Multi-Controller SDN Control Plane June 2017
2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC-2119 [1].
SDN Software Defined Networking
3. Multi-server Controller Framework
With the increase in network scale and traffic flow, the control
plane load is expected to increase significantly. In order to make
the controller scalable, the design principle is to balance the
control plane load across multiple OpenFlow controllers. A cluster
of loosely or tightly connected servers that work together, can be
regarded as one logically single controller. Each controller in the
cluster deals with partial load from the control plane by a load
balancer [2].
The multi-server controller reference model, as shown in figure
1,identifies the components that a controller cluster includes.
Being an integrated architecture, the model takes the advantage of
commodity server cluster and works as one logically centralized
controller.
According to the need for scaling up the performance of controller,
the multi-server controller reference architecture includes:
o Server Cluster
A pool of OpenFlow controller units (commodity servers) are
organized to share the controlling overhead of the logical
controller.
o Switch Group
A set of OpenFlow switches are employed at the front-end switch
group, which servers as the I/O interface between the controller
cluster and the network being managed.
o Load balancer
To schedule the internal resources of the integrated controller,
we introduce an load balancer. It manages both the Switch Group
and the Controller Cluster. The load balancer actively monitors
the CPU and I/O resources of the servers in Controller Cluster
and the switches in Switch Group.
Zhao et al. Expires December 16, 2017 [Page 3]
Internet-Draft Model for Multi-Controller SDN Control Plane June 2017
o Global View
Though the servers in Controller Cluster work independently from
each other, they share a common view of the control information,
such as network topology, routing information, and the link
status of the OpenFlow network. To synchronize the data among
these servers, we introduce a network information database. Each
server needs to report the latest control information to this
database.
+------------------------------------------------------------+
| +-----------+ +------------+ +------------+ |
| | | | | | | |
| | Server 1 | | Server 2 | ... | Server n | |
| | | | | | | |
| +-----------+ +------------+ +------------+ |
| ^ ^ ^ |
| | | | |
| V V V |
|------------------------------------------------------------|
| |
| o---------------o +------------+ o----------------o |
| | Global View | |Switch Group| | Load Balancer | |
| o---------------o +------------+ o----------------o |
| |
|------------------------------------------------------------|
| ^ |
| | |
| V |
| +--------------+ |
| |Client switch | |
| | | |
| +--------------+ |
+------------------------------------------------------------+
Figure 1 Controller cluster framework
The model takes the advantage of commodity PC server cluster and
works a fully functional OpenFlow controller with high scalability.
It can serve a number of client switches for a large-scale network.
4. Switch-controller Interaction
The typical interaction between the client switch and the multi-
server controller is handling the packet-in message. The procedure
works as follows.
Zhao et al. Expires December 16, 2017 [Page 4]
Internet-Draft Model for Multi-Controller SDN Control Plane June 2017
1. According to the resource usage and the pre-defined resource
allocation policy, the load balancer will first select a proper
controller and redirect the packet to the controller.
2. When the packet reaches the given controller server in the
cluster through switch group, the controller decodes the packet,
and then processes it. The controller also needs to update the
global view database accordingly.
3. If some feedback is generated, the controller will send it to the
corresponding client switch.
5. Design Issues
5.1. Load balance
OpenFlow defines three roles for controller: master, slave and equal.
Master and slave are usually used for fail-over or fast recovery. In
the multi-server architecture design, controllers are configured to
share the workload by setting the role as equal. With the role of
equal, the controller can receive all the asynchronous messages from
switches and send commands to switches.
The objective of a load balancer for OpenFlow network consists of
the following aspects:
1. Balancing CPU workloads: The CPU-intensive applications, such as
maintaining topology, querying the network configurations, and
computing the minimum spanning tree or shortest path, may consume
a large amount of CPU resources. High utilization can be achieved
by allocating these CPU-intensive applications to a controller
which has the lowest CPU usage.
2. Balancing I/O workloads: A controller generally involves
periodical operations such as maintaining connection between
controllers and switches, sending and receiving control commands
for modifying switches. Though simple, these frequent I/O
intensive operations will also result in a large amount of I/O
resource consumption. In order to reduce the load on a certain
controller, these I/O-intensive operations can be shared between
different controllers by using the load-balancing structure.
5.2. Traffic Mapping
In the original OpenFlow design, each OpenFlow switch is connected
to one single OpenFlow controller. In our design, cCluster consists
of a number of controllers for scalability consideration. If a new
Zhao et al. Expires December 16, 2017 [Page 5]
Internet-Draft Model for Multi-Controller SDN Control Plane June 2017
controller is added to the cluster, the load from client switches
must be able to redirected to the new one for load balancing.
However, existing OpenFlow specifications do not support such
feature. Therefore, a middle layer with the capability of flexible
traffic mapping is needed in order to enable redirecting traffic
from any OpenFlow switch to any controller in the cluster.
In the reference model, the middle layer is actually an internal SDN
consists of two parts: Switch Group, and load balancer as shown in
Figure 1. Switch group interconnects the controller cluster and the
external client switches. With OpenFlow, the load balancer can
measure the load of each OpenFlow controller, and then change the
connection status adaptively in the middle layer.
6. Security Considerations
This document discusses a reference model for implementing SDN
controller using multiple servers. The solution discussed may have
security implications, such as control flow saturation attacks,
unauthorized access to the global view. Framework described in this
document is limited to the architecture design. Security
considerations regarding specific attack can be addressed in their
respective domains.
7. IANA Considerations
This memo does not have any IANA considerations.
8. References
8.1. Normative References
[1] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
8.2. Informative References
[2] Qiu, K., Tu, R., Huang S., Zhao J., and Wang X., cCluster: A
Highly Scalable and Elastic OpenFlow Control Plane In Proc. of
IEEE/ACM IWQoS, Portland, OR, USA, Jun., 2015.
Zhao et al. Expires December 16, 2017 [Page 6]
Internet-Draft Model for Multi-Controller SDN Control Plane June 2017
Authors' Addresses
Jin Zhao
Fudan University
825 Zhangheng Rd., Shanghai 201203, China
Email: jzhao@fudan.edu.cn
Yanwei Xu
Shanghai Engineering Research Center for Broadband Networks and
Applications (BNC)
150 Honggu Rd., Shanghai 200336, China
Email: ywxu@bnc.org.cn
Zhao et al. Expires December 16, 2017 [Page 7]