原創(chuàng)-OpenDaylight原理解析v1.0_第1頁(yè)
原創(chuàng)-OpenDaylight原理解析v1.0_第2頁(yè)
原創(chuàng)-OpenDaylight原理解析v1.0_第3頁(yè)
原創(chuàng)-OpenDaylight原理解析v1.0_第4頁(yè)
原創(chuàng)-OpenDaylight原理解析v1.0_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、OpendayLight01 Introduction01-1 OverviewFrom a high level view, software defined networking is commonly described in layers.Network Apps & Orchestration: The top layer consists of applications that utilize the network for normal network communications. Also included in this l

2、ayer are business and network logic applications that control, and monitor network behavior.Controller Platform: The middle layer is the framework in which the SDN abstractions can manifest; providing a set of common APIs to the application layer (commonly referred to as the northbound interfac

3、e), while implementing one or more protocols for command and control of the physical hardware within the network (typically referred to as the southbound interface).Physical & Virtual Network Devices: The bottom layer consists of the physical & virtual devices, switches, routers, etc.,

4、that make up the connective fabric between all endpoints within the network.OpenDaylight is an open source project with a modular, pluggable, and flexible controller platform at its core.  The controller exposes open northbound APIs which are used by applications. OpenDaylight supports the OSGi

5、 framework and bidirectional REST for the northbound API. The OSGi framework is used for applications that will run in the same address space as the controller while the REST (web based) API is used for applications that do not run in the same address space (or even necessarily on the same machine)

6、as the controller. The business logic and algorithms reside in the applications. These applications use the controller to gather network intelligence, run algorithms to perform analytics, and then use the controller to orchestrate the new rules, if any, throughout the network.The controller platform

7、 itself contains a collection of dynamically pluggable modules to perform needed network tasks. There are a series of base network services for such tasks as understanding what devices are contained within the network and the capabilities of each, statistics gathering, etc. In addition, pl

8、atform oriented services and other extensions can also be inserted into the controller platform for enhanced SDN functionality.01-2 FrameworkThe southbound interface is capable of supporting multiple protocols (as separate plugins), e.g. OpenFlow 1.0, OpenFlow 1.3, BGP-LS, etc. These modules ar

9、e dynamically linked into a Service Abstraction Layer (SAL). The SAL exposes device services to which the modules north of it are written. The SAL determines how to fulfill the requested service irrespective of the underlying protocol used between the controller and the network devices.This provides

10、 investment protection to the Applications as the OpenFlow and other protocols evolve over time. For the Controller to control devices in its domain it needs to know about the devices, their capabilities, reachability, etc. This information is stored and managed by the Topology Manager. The other co

11、mponents like ARP handler, Host Tracker, Device Manager and Switch Manager help in generating the topology database for the Topology Manager.01-3 InterfaceOpenDaylight ControllerPackage/OSGi BundleExported InterfacesDernal§ IHostFinder§ I

12、ListenDataPacketHandles all ARP traffic: sending ARP requests to find hosts as well as responding to ARP requests from .opendaylight.controller.clustering.services_ernal§ IClusterContainerServices§ IClusterServices§ IClusterGlobalServicesorg.opendaylight.con

13、ernal§ IClusterContainerServices§ IClusterGlobalSernal§ IConfigurationService§ IConfigurationContainerService§ IConfigurationAernal§ IConta

14、inerManager§ ICernal§ IForwardingStaticRouting§ ICacheUpdateAware§ IfNewHostNotify§ IConfigurationContainerAernal§ IContainerListener§ ISwitchM

15、anagerAware§ IForwardingRulesManager§ IInventoryListener§ ICacheUpdateAware§ IConfigurationContainerAware§ IFlowProgrammerLernal§ ISwitchManagerAware§ IInventoryListener§ IfIptoHost§ IfHostListener§ I

16、TopologyManagerAtocol_ernal§ IContainerListener§ IController§ IDataPacketListen§ IDataPacketMux§ IDiscoveryService§ IFlowProgrammerNotifier§ IInventoryShimExternalListener§ IMessageListener§ IOFStatist

17、icsManager§ IPluginInDataPacketService§ IPluginInFlowProgrammerService§ IPluginInInventoryService§ IPluginInReadService§ IPluginInTopologyService§ IPluginReadServiceFilter§ IRefreshInternalProvider§ IStatisticsListener§ ITopologyServiceShimListenerorg.ope

18、tocol_ernal§ IPluginInReadServiceorg.opendaylight.controller.routing.dijkstra_ernal§ ITopologyManagerAware§ IRernal§ IReadService§ IPluginOutTopologyService§

19、; ITopologyService§ IInventoryService§ IPluginOutInventoryService§ IFlowProgrammerService§ IPluginOutFlowProgrammerService§ IPluginOutDataPacketService§ IDataPacketSernal§ IListenDataPacket§ IConfigMana

20、ernal§ IInventoryListener§ IfNewHostNotify§ IListenRoutingUernal§ IStatisticsMernal§ IListenInventoryUpdates&#

21、167; ISwitchManager§ ICacheUpdateAware§ IConfigurationContainerAernal§ IListenTopoUpdates§ ITopologyManager§ IConfigurationContainerAernal§ ICacheUpdateAware§ IUserMan

22、ager§ IConfigurationAware02 arphandler1) 簡(jiǎn)介該模塊用于解析arp包.ARP(Address Resolution Protocol,地址解析協(xié)議)是獲取物理地址的一個(gè)TCP/IP協(xié)議。某節(jié)點(diǎn)的IP地址的ARP請(qǐng)求被廣播到網(wǎng)絡(luò)上后,這個(gè)節(jié)點(diǎn)會(huì)收到確認(rèn) 其物理地址的應(yīng)答,這樣的數(shù)據(jù)包才能被傳送出去。RARP(逆向ARP)經(jīng)常在無(wú)盤工作站上使用,以獲得它的邏輯IP地址。2) 類圖3) 基本原理4) 依賴服務(wù) <Import-Package> org.opendaylight.controller.sal.core, org.openda

23、ylight.controller.sal.utils, org.opendaylight.controller.sal.packet, org.opendaylight.controller.switchmanager, org.opendaylight.controller.hosttracker, org.opendaylight.controller.hosttracker.hostAware, org.apache.felix.dm, ponent, org.slf4j<dependencies>switchmanagerhosttracker sal5) 流程圖03 c

24、lustering03-1 Services1) 簡(jiǎn)介定義了一系列集群服務(wù)接口,包含ICacheUpdateAware集群緩存更新時(shí)需要監(jiān)聽的接口,IClusterServicesCommon提供了一組集群中常用的接口,ICoordinatorChangeAware,IGetUpdates,IListenRoleChange角色改變時(shí)需要監(jiān)聽的接口, IClusterServices.2) 類圖3) 基本原理4) 依賴服務(wù)導(dǎo)出包:<Export-Package> org.opendaylight.controller.clustering.services </Export-

25、Package> <Import-Package> javax.transaction </Import-Package>5) 流程圖03-2 Services-implementations1) 簡(jiǎn)介該模塊是集群服務(wù)的實(shí)現(xiàn)模塊,主要實(shí)現(xiàn)了上述Services包中的接口服務(wù)。集群之間通過(guò)JGroup來(lái)進(jìn)行通信,同步數(shù)據(jù)。集群數(shù)據(jù)采用infinispan來(lái)進(jìn)行存儲(chǔ)。Innispan 是個(gè)開源的數(shù)據(jù)網(wǎng)格平臺(tái)。它公開了一個(gè)簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)(一個(gè)Cache)來(lái)存儲(chǔ)對(duì)象。雖然可以在本地模式下運(yùn)行Innspan,但其真正的價(jià)值在于分布 式,在這種模式下,Innispan可以將集

26、群緩存起來(lái)并公開大容量的堆內(nèi)存。這可比簡(jiǎn)單的復(fù)制強(qiáng)大的多,因?yàn)樗鼤?huì)為每個(gè)結(jié)點(diǎn)分配固定數(shù)量的副本服 務(wù)器故障的一種恢復(fù)手段同時(shí)還提升了可伸縮性,這是由于存儲(chǔ)每個(gè)結(jié)點(diǎn)所需的工作量是與集群大小息息相關(guān)的。JGroup是當(dāng)前被廣泛使用的可靠組間通信的工具之一。例如OSCache以及JBossTreeCache都是用的是JGroup。JGroup功能十分強(qiáng)大,通過(guò)配置各種參數(shù)就可以充分利用它所提供的各項(xiàng)功能。JGroup最大的特點(diǎn)就是支持協(xié)議棧的可配置性,它本是實(shí)現(xiàn)了基本的Java的協(xié)議棧實(shí)現(xiàn),也就是最基本的消息廣播的基礎(chǔ),同時(shí)支持附加協(xié)議棧的配置,消息的傳遞就是在這些協(xié)議棧之間相互傳遞,封裝,檢查,丟

27、棄,重發(fā)。JGroup可以基于TCP協(xié)議來(lái)實(shí)現(xiàn)消息廣播,也可以通過(guò)UDP方式來(lái)廣播消息,利弊不言而喻,TCP可靠,但是代價(jià)大,性能沒有UDP來(lái)的好,UDP速度快,代價(jià)小,但是消息的丟失率以及無(wú)序性有著很大的限制。但是JGroup在UDP方式的基礎(chǔ)上,增加了協(xié)議棧的配置,通過(guò)配置上層的協(xié)議,可以保證消息的重發(fā),大包體的分解(同時(shí)保證消息包體順序),組內(nèi)機(jī)器的狀態(tài)檢測(cè)等功能。2) 類圖3) 基本原理4) 依賴服務(wù)<Import-Package> org.slf4j, !org.jboss.*, !bsh*, !net.jcip.*, javax.transaction, *, org.

28、opendaylight.controller.clustering.services, org.opendaylight.controller.sal.core</Import-Package><dependencies> <dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-core</artifactId> <version>5.2.3.Final</version> </dependenc

29、y> <dependency> <groupId>org.opendaylight.controller</groupId> <artifactId>clustering.services</artifactId> <version>0.4.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.opendaylight.controller</groupId> <artifactId&

30、gt;sal</artifactId> <version>0.4.0-SNAPSHOT</version> </dependency></dependencies>5) 流程圖03-3 Stub1) 簡(jiǎn)介實(shí)現(xiàn)了Services中的IClusterContainerServices,IClusterGlobalServices,IClusterServicesCommon接口。2) 類圖3) 基本原理4) 依賴服務(wù)<Import-Package> javax.transaction, org.apache.felix.dm,

31、 org.slf4j, org.opendaylight.controller.clustering.services, org.opendaylight.controller.sal.core </Import-Package><dependencies> <dependency> <groupId>org.opendaylight.controller</groupId> <artifactId>clustering.services</artifactId> <version>0.4.0-SN

32、APSHOT</version> </dependency> <dependency> <groupId>org.opendaylight.controller</groupId> <artifactId>sal</artifactId> <version>0.4.0-SNAPSHOT</version> </dependency> </dependencies>5) 流程圖04 commons簡(jiǎn)介該模塊提供了3個(gè)配置文件,定義了一些公共屬性,供其它模塊使用。05

33、 configurationconfiguration1) 簡(jiǎn)介該模塊提供了配置管理的接口。2) 類圖3) 基本原理4) 依賴服務(wù)<Import-Package> org.opendaylight.controller.sal.utils, mons.lang3.builder </Import-Package> <Export-Package> org.opendaylight.controller.configuration </Export-Package> <dependencies><dependency><

34、;groupId>org.opendaylight.controller</groupId><artifactId>sal</artifactId><version>0.4.0-SNAPSHOT</version></dependency> </dependencies>configuration.implementation1) 簡(jiǎn)介該模塊實(shí)現(xiàn)了configuration的口,完成一些和配置相關(guān)的任務(wù)。2) 類圖3) 基本原理4) 依賴服務(wù)<Import-Package> org.opend

35、aylight.controller.configuration, org.opendaylight.controller.clustering.services, org.opendaylight.controller.sal.utils, org.opendaylight.controller.sal.core, org.osgi.framework, org.slf4j, org.apache.felix.dm </Import-Package><dependencies> <dependency> <groupId>org.openday

36、light.controller</groupId> <artifactId>clustering.services</artifactId> <version>0.4.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.opendaylight.controller</groupId> <artifactId>configuration</artifactId> <version>

37、0.4.0-SNAPSHOT</version> </dependency> <dependency><groupId>org.opendaylight.controller</groupId><artifactId>sal</artifactId><version>0.4.0-SNAPSHOT</version></dependency> </dependencies>06 containermangercontainermanger1) 簡(jiǎn)介提供容器管理的基本

38、接口。2) 類圖3) 基本原理4) 依賴服務(wù)<Import-Package> org.opendaylight.controller.sal.action, org.opendaylight.controller.sal.authorization, org.opendaylight.controller.sal.core, org.opendaylight.controller.sal.flowprogrammer, org.opendaylight.controller.sal.match, org.opendaylight.controller.sal.reader, org

39、.opendaylight.controller.sal.utils, mons.lang3.builder </Import-Package> <Export-Package> org.opendaylight.controller.containermanager </Export-Package>containermanager.implementation1) 簡(jiǎn)介容器管理實(shí)現(xiàn)類,2) 類圖3) 基本原理4) 依賴服務(wù)<Import-Package> org.opendaylight.controller.containermanager

40、, org.opendaylight.controller.clustering.services, org.opendaylight.controller.sal.packet, org.opendaylight.controller.sal.utils, org.opendaylight.controller.sal.core, org.opendaylight.controller.sal.action, org.opendaylight.controller.sal.flowprogrammer, org.opendaylight.controller.sal.match, org.o

41、pendaylight.controller.sal.reader, org.eclipse.osgi.framework.console, org.osgi.framework, org.slf4j, org.apache.felix.dm </Import-Package><dependencies> <dependency> <groupId>org.opendaylight.controller</groupId> <artifactId>clustering.services</artifactId>

42、 <version>0.4.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.opendaylight.controller</groupId> <artifactId>containermanager</artifactId> <version>0.4.0-SNAPSHOT</version> </dependency><dependency> <groupId>or

43、g.opendaylight.controller</groupId> <artifactId>sal</artifactId> <version>0.4.0-SNAPSHOT</version></dependency> </dependencies>07 distribuction1) 簡(jiǎn)介是opendaylight的主入口,提供了啟動(dòng)程序的腳本,run.bat為windows下運(yùn)行腳本,run.sh為linux下運(yùn)行腳本。2) 類圖3) 基本原理4) 系統(tǒng)模塊 <modules> <mo

44、dule>././forwarding/staticrouting</module> <module>././clustering/services</module> <module>././clustering/services_implementation</module> <module>././clustering/stub</module> <module>././clustering/test</module> <module>././configurati

45、on/api</module> <module>././configuration/implementation</module> <module>././routing/dijkstra_implementation</module> <module>././arphandler</module> <module>././forwardingrulesmanager</module> <module>././hosttracker</module> <mo

46、dule>././containermanager/api</module> <module>././containermanager/implementation</module> <module>././switchmanager</module> <module>././statisticsmanager</module> <module>././topologymanager</module> <module>././usermanager</module

47、> <module>././security</module> <module>./././third-party/openflowj</module> <module>./././third-party/net.sf.jung2</module> <module>./././third-party/jersey-servlet</module> <!- SAL bundles -> <module>././sal/api</module> <modu

48、le>././sal/implementation</module> <!- Web bundles -> <module>././web/root</module> <module>././web/flows</module> <module>././web/devices</module> <module>././web/troubleshoot</module> <module>././web/topology</module> <!

49、- Northbound bundles -> <module>././northbound/commons</module> <module>././northbound/topology</module> <module>././northbound/staticrouting</module> <module>././northbound/statistics</module> <module>././northbound/flowprogrammer</module&

50、gt; <module>././northbound/hosttracker</module> <module>././northbound/subnets</module> <module>././northbound/switchmanager</module> <!- Debug and logging -> <module>././logging/bridge</module><!- Southbound bundles -> <module>././pr

51、otocol_plugins/openflow</module> <!- Samples -> <module>././samples/simpleforwarding</module> <module>././samples/loadbalancer</module> <module>././samples/northbound/loadbalancer</module> </modules>08 forwardingforwarding.staticrouting1) 簡(jiǎn)介提供靜態(tài)路

52、由配置與靜態(tài)路由的創(chuàng)建功能,用于連接SDN網(wǎng)絡(luò)與非SDN網(wǎng)絡(luò)。2) 類圖3) 基本原理4) 依賴服務(wù)<Import-Package> org.opendaylight.controller.sal.utils, org.opendaylight.controller.sal.core, org.opendaylight.controller.configuration, org.opendaylight.controller.forwardingrulesmanager, org.opendaylight.controller.hosttracker, org.opendaylig

53、ht.controller.hosttracker.hostAware, org.opendaylight.controller.clustering.services, org.opendaylight.controller.sal.packet, org.opendaylight.controller.sal.routing, org.opendaylight.controller.topologymanager, org.eclipse.osgi.framework.console, org.osgi.framework, org.slf4j, org.apache.felix.dm,

54、mons.lang3.builder </Import-Package> <Export-Package> org.opendaylight.controller.forwarding.staticrouting </Export-Package><dependencies> <dependency> <groupId>org.opendaylight.controller</groupId> <artifactId>topologymanager</artifactId> <ve

55、rsion>0.4.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.opendaylight.controller</groupId> <artifactId>forwardingrulesmanager</artifactId> <version>0.4.0-SNAPSHOT</version> </dependency> <dependency> <groupId>or

56、g.opendaylight.controller</groupId> <artifactId>hosttracker</artifactId> <version>0.4.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.opendaylight.controller</groupId> <artifactId>configuration</artifactId> <version>

57、;0.4.0-SNAPSHOT</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.1</version> <scope>test</scope> </dependency><dependency><groupId>org.opendaylight.controller</groupId><artifactId>sal</artifactId><version>0.4.0-SNAPSHOT</version></dependency> </dependencies>5) 流程圖forwardingrulesmanager1) 簡(jiǎn)介管理網(wǎng)絡(luò)容器中的轉(zhuǎn)發(fā)規(guī)則,包括安裝與刪除;同時(shí)也負(fù)責(zé)維護(hù)安裝

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論