SDN控制平面
是SDN的大脑,只会数据平面的转发等网络行为。控制平面提供了网络可编程能力,使得开发者可以在控制平面上开发网络应用,并直接部署到数据平面,知道数据平面的数据交换等业务。
在传统网络中,由于网络是分布式的,所以在增加新业务时需要逐个节点配置部署,其业务部署周期十分漫长;而SDN的集中控制,使得编程自动化部署成为可能,从而缩短了网络业务部署周期,加快了网络业务的多样化和个性化。
图3-1 SDN网络架构1.1版本
适合科研应用:POX/NOX、RYU、Floodlight
适合工程实践:OpenDaylight、ONOS
NOX
是SDN发展史上的第一个控制器。开源。发布NOX的SDN初创公司Nicira于2012年被VMware以12.6亿美元收购,这个收购事件是SDN发展史上的重要里程碑。NOX开发语言是C++,开发成本较高。后为解决这个问题,该公司又推出NOX的兄弟版本控制器POX
,其基于Python语言开发。后来,由于POX本身的性能问题,被之后出现的性能更好、代码质量更高的Ryu
和Floodlight
挤下了历史舞台。现NOX/POX已成为过去式。
略
<源码>- git clone https://github.com/noxrepo/pox.git
- cd pox
- ./pox.py forwarding.12_learning py
名字由来: 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
协同合作。
需要的依赖(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
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
基于Java
略
基于Java、OSGi框架
、支持bundle插件扩展、分布式部署。
略
评价要素:
版权属于:Hurray's InfoShare
本文链接:https://hurray0.com/menu/16/
如果没有特别声明,则为本博原创。转载时须注明出处及本声明!
最后修改: