应该怎样着手SDN上层应用开发
首先,不知道你对floodlight的了解程度? 这里简单说一下,floodlight是基于模块开发的,一个模块基本管理一部分功能,具体启动哪些模块可以有配置文件制定,floodlight自身主要模块主要有LinkDiscovery(链路发现),TopologyManager(拓扑管理),ModuleManager(模块管理),Storage(存储),ThreadPool(线程池管理),Forwarding(转发管理)等,这些都是一个基于openflow的SDN必须的功能。你想在floodlight基础上开发自己的应用,完全可以增加自己的模块俩实现相关功能,并可对外提供相关Resutful API(floodlight同时提供RestServer,非常方便),或者如果floodlight自身提供的Restful API已经够你用的,上面就都是废话了。 同时,floodlight也提供了一些应用级别的模块,如StaticFlowPusher(静态流表管理),可以参考这个模块来实现你自己的模块。
■网友
理论上,支持openflow的网络控制器北向提供了各种应用接口(最常用的如REST),这样网络应用可以使用这些接口调用网络控制器各个模块的功能,实现控制(Orchestration)。当网络控制器比较完善,提供了各项应用接口(如拓扑信息、路由策略等),则可直接实现app解决问题,否则就需要添加模块了。当前Floodlight的实现还较为简单,比如网络app要想实现计算、修改路由,实现流量牵引,恐怕还需要实现自己的模块作为agent。
■网友
这取决于你所说的上层应用。以Floodlight为例,Floodlight v1.2 has full support for OpenFlow 1.0 and 1.3 along with experimental support for OpenFlow 1.1, 1.2, and 1.4.从Floodlight官网摘了一段出来:Offers a module loading system that make it simple to extend and enhance.Easy to set up with minimal dependenciesSupports a broad range of virtual- and physical- OpenFlow switchesCan handle mixed OpenFlow and non-OpenFlow networks – it can manage multiple “islands” of OpenFlow hardware switchesDesigned to be high-performance – is multithreaded from the ground upSupport for OpenStack (link) cloud orchestration platform可以看到,Floodlight最突出的特性就是可扩展性了。下图是Floodlight的架构图,它的使用方式也可见一斑了。 【应该怎样着手SDN上层应用开发】 
南向接口就是Controller与交换机之间通讯,控制、管理交换机的接口,最著名的就是OpenFlow协议了。OpenVSwitch在Linux机器上实现了软件交换机的功能,向上对Controller暴露OpenFlow接口。扯开一句,indigo是Floodlight中兼容物理硬件交换机和软件交换机的实现。Indigo is an open source project to support OpenFlow on a range of physical and now virtual switch platforms. The original version of Indigo was based on the Stanford reference implementation of an OpenFlow virtual switch. This release represents a complete rearchitecture with a continued focus on native support for hardware switching platforms and better support for a variety of virtual switching environments.针对题主关注的上层应用,Floodlight已经给出了很明确的答案,通过controller暴露的Northbound API来实现业务,控制各网元。Floodlight就有用REST API来实现北向接口;如果想用protobuf等其他协议,完全可以在Floodlight的模块中进行扩展。Floodlight自身提供了链路发现、拓扑管理、策略制定、表项下发等支持SDN网络运行的基本操作。SDN的上层应用利用这些基本操作对整个网络做路由调度、流量控制等综合管理。有一些应用,题主可以关注一下,比如:Floodlight与Openstack的网络模块neutron的交互。 SDN Series Part Five: Floodlight, an OpenFlow Controller 有兴趣也可以去看一下。Routeflow by CPqD 一个很有意思的SDN路由实现。----------------------------------上班去了,回头继续补充
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
- 想要入门图像处理,应该从哪本书看起
- 怎样成为一名合格的Python程序员?
- 怎样评价华为、诺基亚、中兴中标中国移动高端路由交换设备扩容集采
