第三章 SDN控制平面

    Hurray 2228次浏览 0条评论 2154字

#笔记 #SDN

--- ## SDN控制平面简介 `SDN控制平面`是SDN的大脑,只会数据平面的转发等网络行为。控制平面提供了网络可编程能力,使得开发者可以在控制平面上开发网络应用,并直接部署到数据平面,知道数据平面的数据交换等业务。 在传统网络中,由于网络是分布式的,所以在增加新业务时需要逐个节点配置部署,其业务部署周期十分漫长;而SDN的集中控制,使得编程自动化部署成为可能,从而缩短了网络业务部署周期,加快了网络业务的多样化和个性化。 ![](https://file.hurray0.com/uploads/menu/16/c680dfd3e6954b1680e36faf68de2f38.jpg) _图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本身的性能问题,被之后出现的性能更好、代码质量更高的`Ryu`和`Floodlight`挤下了历史舞台。__现NOX/POX已成为过去式。__ ####NOX架构图 略 ####环境配置 ```bash 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-Config`、`OVSDB`、`VRRP`和`NET-CONF`等其他南向协议。北向方面,Ryu可以作为`OpenStack`的插件,也指出和开源入侵检测系统`Snort`协同合作。 ![](https://file.hurray0.com/uploads/menu/16/3878750c379da1e7e1b66e9c1c5b9cbb.jpg) #### 环境配置 需要的依赖(Ubuntu): ```bash sudo apt-get install python-eventlet python-routes python-webob python-paramiko ``` ```bash 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支持缓慢。 #### 架构 略 #### 环境配置 ```bash # 下载 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. 网络安全性

最后修改: