2015年7月26日 星期日

SDN Control Plane

Introduction to SDN Control Plane

The network consists of routers, switches and controllers. 
The controller speaks to the switch over a secure control channel and the SDN protocol effectively instructs the switch to update its flow table entries to take different actions on various traffic flows that pass through the switch.The purpose of the control channel is effectively to update this flow table and all of the logic concerning how the flow table entries are updated are contained at the controller.

SDN Controllers

When a packet arrives at the switch, it parses the header fields, and based on the values of those header fields, it will attempt to match that packet against flow table entries in any one of several flow tables. If there is no match in any of those tables, the traffic is sent to the controller.

NOX was a first-generation OpenFlow controller. It is open source, stable, and fairly widely used. There are two flavors of NOX. One, Nox-Classic, was the original NOX, and was implemented in C++ and Python. It's no longer supported. The new NOX is C++ only.

POX is essentially NOX in Python. It currently supports only version 1.0. An advantage of POX is that it's widely used, maintained and supported and it's relatively easy to read and write code. The main disadvantage of POX is performance.

Ryu is an open source Python controller. It supports all versions of OpenFlow from 1.0 to 1.4 as well as various mysteria extensions. A disadvantage of Ryu with respect to some of the other commercial grade controllers is performance.

Floodlight is an open-source Java controller that supports OpenFlow 1.0. It's a fork from the Beacon Java OpenFlow controller. And is maintained by Big Switch. Some of the advantages include good documentation and integration with the REST API. It's also production level, and supports and
provides support for OpenStack and Multi-Tenant Clouds.

OpenDaylight (ODL) is to provide a common industry supported platform with a robust, extensible open source codebase and common abstractions for northbound capabilities. OpenDaylight is written by Java and has many advantages including widespread industry acceptance and integration with OpenStack and other types of cloud applications. However, it's extremely complex. 

Frenetic
Pyretic = Python + Frenetic

Customize Network Control

NFV Service Chaining

沒有留言:

張貼留言