欢迎阅读『第三章 SDN控制平面』
PS: 晚上好,今天过得怎么样?

第三章 SDN控制平面

    Hurray 2449次浏览 0条评论 2154字

#笔记 #SDN


SDN控制平面简介

SDN控制平面是SDN的大脑,只会数据平面的转发等网络行为。控制平面提供了网络可编程能力,使得开发者可以在控制平面上开发网络应用,并直接部署到数据平面,知道数据平面的数据交换等业务。

在传统网络中,由于网络是分布式的,所以在增加新业务时需要逐个节点配置部署,其业务部署周期十分漫长;而SDN的集中控制,使得编程自动化部署成为可能,从而缩短了网络业务部署周期,加快了网络业务的多样化和个性化。

图3-1 SDN网络架构1.1版本


SDN开源控制器

适合科研应用:POX/NOX、RYU、Floodlight

适合工程实践:OpenDaylight、ONOS

NOX/POX

NOX是SDN发展史上的第一个控制器。开源。发布NOX的SDN初创公司Nicira于2012年被VMware以12.6亿美元收购,这个收购事件是SDN发展史上的重要里程碑。NOX开发语言是C++,开发成本较高。后为解决这个问题,该公司又推出NOX的兄弟版本控制器POX,其基于Python语言开发。后来,由于POX本身的性能问题,被之后出现的性能更好、代码质量更高的RyuFloodlight挤下了历史舞台。现NOX/POX已成为过去式。

NOX架构图

环境配置

<源码>
  • git clone https://github.com/noxrepo/pox.git
  • cd pox
  • ./pox.py forwarding.12_learning py
git clone https://github.com/noxrepo/pox.git cd pox ./pox.py forwarding.12_learning py

官网

http://www.noxrepo.org

Ryu

名字由来: OpenFlow -> Flow == (JP)流ryu -> (JP)壟ryu == 龙

基于Python开发,可以和OpenStack整合部署。

架构和特性

代码模块化,大致可分为控制层和应用层。控制层主要包含协议解析、事件系统、基本的网络报文库和内建应用等模块;应用层是基于控制层提供的API编写的网络应用,以及支持Ryu和其他系统协同工作的组件和模块。

Ryu通过南向接口与数据平面的设备进行通信,通过北向接口完成应用层和控制层的通信。

Ryu是一个特性丰富的SDN控制器。南向协议方面,不仅支持从1.0到1.5版本OpenFlow协议的特性及Nicira公司的拓展,还支持如OF-ConfigOVSDBVRRPNET-CONF等其他南向协议。北向方面,Ryu可以作为OpenStack的插件,也指出和开源入侵检测系统Snort协同合作。

环境配置

需要的依赖(Ubuntu):

sudo apt-get install python-eventlet python-routes python-webob python-paramiko
<源码>
  • git clone https://github.com/osrg/ryu.git
  • cd ryu
  • sudo pip install -r tools/pip-requires
  • sudo python setup.py install
git clone https://github.com/osrg/ryu.git cd ryu sudo pip install -r tools/pip-requires sudo python setup.py install

Floodlight

Floodlight是基于Java编写的SDN控制器,带Web用户接口。支持OpenFlow1.0/1.3,但1.3支持缓慢。

架构

环境配置

<源码>
  • # 下载
  • git clone git://github.com/Floodlight/Floodlight.git
  • # 安装
  • cd Floodlight
  • ant
  • sudo mkdir /var/lib/Floodlight
  • sudo chmod 777 /var/lib/Floodlight
  • # 运行(JDK1.7)
  • Java -jar target/Floodlight.jar
# 下载 git clone git://github.com/Floodlight/Floodlight.git # 安装 cd Floodlight ant sudo mkdir /var/lib/Floodlight sudo chmod 777 /var/lib/Floodlight # 运行(JDK1.7) Java -jar target/Floodlight.jar

OpenDaylight

基于Java

ONOS

基于Java、OSGi框架、支持bundle插件扩展、分布式部署。


选择SDN控制器

评价要素:

  1. 支持OpenFlow
  2. 支持网络虚拟化
  3. 网络功能
  4. 可拓展性
  5. 性能
  6. 网络可编程
  7. 可靠性
  8. 网络安全性

最后修改:


Send Comment