Floodlight+Mininet搭建OpenFlow(三):进阶
Floodlight+Mininet搭建OpenFlow(三):Floodlight进阶
本节主要是关于Floodlight的深入学习。
在开始以前,请确定已经熟悉了前两节的内容,本文将会略过一些基本的命令和操作。
PS,开始之前我看了一下networkstatic.net上的关于OpenFlow的内容,发现作者的实验思路和我的类似,呵呵,只是平台不一样,这里我也会提到一些不同的地方,对比学习以后,可能收获会更大。
首先补充一下DataPath的概念,OpenFlow就是控制和数据转发分离,而控制端,就叫做Controller Path,比如floodlight等;负责转发数据的数据转发端,就叫做DataPath,也就是支持OpenFlow的硬件或者软件交换机Switch。
Floodlight进阶学习:
具体的了解Floodlight,可以先参考http://opennetsummit.org/talks/ONS2012/sherwood-mon-floodlight.pdf
这里详细列举几点:
1)模块化,可以根据需要加载相应的模块。目前含有的主要模块:
net.floodlightcontroller.core.FloodlightProvider
net.floodlightcontroller.storage.memory.MemoryStorageSource
net.floodlightcontroller.devicemanager.internal.DeviceManagerImpl
net.floodlightcontroller.linkdiscovery.internal.LinkDiscoveryManager
net.floodlightcontroller.topology.TopologyManager
net.floodlightcontroller.forwarding.Forwarding
net.floodlightcontroller.flowcache.FlowReconcileManager
net.floodlightcontroller.core.OFMessageFilterManager
net.floodlightcontroller.staticflowentry.StaticFlowEntryPusher
net.floodlightcontroller.perfmon.PktInProcessingTime
net.floodlightcontroller.ui.web.StaticWebRoutable
net.floodlightcontroller.hub.Hub
net.floodlightcontroller.jython.JythonDebugInterface
这些信息在Floodlight启动时可以看到。那么,Floodlight的工作流程是这样的:
FloodlightProvider作为核心模块,负责将收到的OF Packet转换为一个个事件,而其他模块向FloodlightProvider进行注册,注册后成为一个service,然后就可以处理相应的事件。
各个主要模块的作用如下图:
进阶%20%20SDNAP原创%20%20SDNAP_files/056b4ffa88805bb1f5c9397c7fa756fb.jpg)
2)模块化进阶
熟悉NOX的就知道,NOX只是作为一个平台,各种基于OF的功能都是在NOX上作为一个APP实现。那么,Floodlight的模块化结构,也支持这种使用方式,也就是说,你可以选择Floodlight启动时候所加载的模块,也可以加入你自己定义的功能的模块。Floodlight的功能,是取决于你的。那么如何操作,如下:
启动Floodlight的时候通过–cf参数可以指定模块的配置(也就是让Floodlight装载哪些模块)
默认的有一份配置文件,在src/main/resources/floodlightdefault.properties,可以看看它的内容,对于配置文件的优先级,有以下规则:
- The file specified by using the -cf option
- The config/floodlight.properties file if it exists
- The floodlightdefault.properties file built into the jar (under src/main/resources)
那么,我们在前面以
sudo java -jar floodlight.jar
启动Floodlight实际上是用的整合Floodlight程序内的配置规则。
让我们来做个实验:在前面的实验中,mininet默认创建的拓扑(sudo mn)实际上执行pingall是能够互相Ping通的,这是因为Floodlight在启动的时候载入了net.floodlightcontroller.forwarding.Forwarding这个模块,这个是一个二层交换机的模块,我们去掉他,在配置文件中去掉这一项,然后再Floodlight目录下执行ant,从新整合。(当然也可以使用–cf指定配置文件)。
随后启动Floodlight,启动mininet,创建默认拓扑,此时执行pingall发现host间就无法相互ping通了。此时怎么办呢,别着急,慢慢来。下一节会讲。这个环境先放在这里。
3)OpenStack支持
这个请参考相应文档。
http://floodlight.openflowhub.org/quantum-and-openstack/
https://github.com/floodlight/quantum-restproxy
4)Static flow pusher以及python API
将会在下一节中讲到。
最后,以一张图进行一个总结,部分未涉及的内容下部分中讲。
进阶%20%20SDNAP原创%20%20SDNAP_files/2b64b120cbd6dca32fb31948e17e7013.jpg)
早期在blog.wangchang.net 网站,因博主空间不稳定,故将相关文字转过来。作者:SDN QQ群 #王畅
本文链接:http://www.sdnap.com/sdnap-post/1813.html \ 本文标签: floodlight, Mininet
本站声明:本站原创文章可以转载,请注明来自SDNAP.com - SDN联合播报
欢迎光临:SDN联合播报 | 中国第一家报道SDN的独立站点 | SDN交流平台 | SDN开源社区 | SDN技术沙龙
欢迎继续浏览
Openflow世界 发布于:2013年08月5日 下午 6:23,转载请注明并保留本文链接;
- 发布者站点/微博:http://weibo.com/2824083995, 欢迎关注或者发邮箱给他/她;
进阶%20%20SDNAP原创%20%20SDNAP_files/floodlight-mininet.jpg)
进阶%20%20SDNAP原创%20%20SDNAP_files/th.png)
进阶%20%20SDNAP原创%20%20SDNAP_files/Juniper-SDN-20130716.jpg)
进阶%20%20SDNAP原创%20%20SDNAP_files/%25e5%259f%2583%25e6%25a3%25ae%25e5%2593%25b22013%25e5%25b9%25b4%25e6%258a%2580%25e6%259c%25af%25e5%25b1%2595%25e6%259c%259b%25e4%25b8%25ad%25e6%2596%2587%25e7%2589%2588.jpg)
进阶%20%20SDNAP原创%20%20SDNAP_files/45d9bdcfa8ec1e0fe84e269e5bce768c.gif)
进阶%20%20SDNAP原创%20%20SDNAP_files/9ee2aeb12c619e6374aeaa8c0051e6f5.png)
进阶%20%20SDNAP原创%20%20SDNAP_files/5e96bf62b9b2c18fdb65564b4a18fd1f.gif)
进阶%20%20SDNAP原创%20%20SDNAP_files/127e73fa0e914339cbd009fc32d3b90e.jpg)
进阶%20%20SDNAP原创%20%20SDNAP_files/42485834c21a1f6e85be9859b093cf1e.jpg)
进阶%20%20SDNAP原创%20%20SDNAP_files/6e18493142a95e4b03d9e8b7a663ead7.jpg)
进阶%20%20SDNAP原创%20%20SDNAP_files/testing_centec_v330.png)
进阶%20%20SDNAP原创%20%20SDNAP_files/ShaihaiJiaoTong-SDN-20130716.jpg)
进阶%20%20SDNAP原创%20%20SDNAP_files/SDN%25e7%25a1%25ac%25e4%25bb%25b6%25e7%2589%25a9%25e7%2590%2586%25e4%25ba%25a4%25e6%258d%25a2%25e6%259c%25ba%25e4%25b8%25bb%25e6%25b5%2581%25e4%25ba%25a7%25e5%2593%2581.jpg)
进阶%20%20SDNAP原创%20%20SDNAP_files/openflow1.4.png)
进阶%20%20SDNAP原创%20%20SDNAP_files/0716SDN.jpg)
进阶%20%20SDNAP原创%20%20SDNAP_files/pica8_logo_sdnap.png)