一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

面向分层分域SDN多控制器架构的拓扑发现系统及方法与流程

2022-02-19 01:25:47 来源:中国专利 TAG:

面向分层分域sdn多控制器架构的拓扑发现系统及方法
1.技术领域
2.本发明属于通信网络技术领域,尤其涉及一种面向分层分域sdn多控制器架构的拓扑发现系统及方法。
[0003]

背景技术:

[0004]
目前:软件定义网络(software defined networking,sdn), 是一种新型网络体系架构。sdn通过转控分离形成控制平面和数据平面,引入统一的编程接口,可对全网的设备进行逻辑集中的管理,无须依赖底层网络转发设备,屏蔽了来自底层网络转发设备的差异。
[0005]
传统的sdn网络采用单控制器,随着网络规模的扩大,单控制器难以满足不断增长的流处理需求,而且当控制器故障时,会导致整个网络的瘫痪,另外控制平面的可扩展性也一直是一个长期的问题。多控制器的sdn部署是在大型网络中解决单点故障以及扩展控制平面的一种被广泛接受的方法。然而,在传统的sdn架构中,sdn控制器通过lldp协议自动进行拓扑发现,这只使用于单域的sdn网络进行拓扑发现,当网络中存在两个及以上sdn网络时,lldp协议无法发现网络中存在的完整拓扑。
[0006]
目前对于sdn多控制器架构下进行拓扑发现的方法种类繁多,从现有的公开资料来看:申请公布号为cn111163003a,名称为“一种无线多控制域sdn网络的拓扑发现方法”的专利申请,公开了一种支持sdn多控制域下的拓扑发现方法,该方法的主要思想是,通过扩展lldp报文发现跨域链路,通过解析lldp报文在本域sdn控制器中建立邻域抽象拓扑。该方法的主要步骤包括:第一步所有sdn控制器构建扩展后的lldp报文并发送至各自管理的sdn交换机,第二步sdn交换机处理lldp报文,将其转发至邻居交换机,第三步sdn控制器解析lldp报文并建立域内链路与跨域链路,第四步全网信息同步,每个sdn控制器建立邻域抽象拓扑。该方法通过扩展lldp报文可以发现跨域链路,但在全网信息同步时,每个sdn控制器即需要掌握本域拓扑,又需要掌握邻域抽象拓扑。一方面,当发生全局拓扑变化事件时,拓扑变化信息需要同步到多个sdn控制器,无法保证较高的拓扑发现实时性;另一方面,该方法只适用于水平式sdn多控制器架构,无法适用于分层分域的sdn多控制器架构。
[0007]
申请公布号为cn103782553a,名称为“一种链路发现方法_sdn控制器及设备”的专利申请,公开了一种支持sdn多控制域下的跨域链路的发现方法,该方法的主要思想是,设置父sdn控制层与子sdn控制层两层sdn控制器,父sdn控制层包含一个父sdn控制器,子sdn控制层包含多个子sdn控制器,子sdn控制器进行域内链路发现,父sdn控制器进行跨域链路发现。以子sdn控制层包含两个子sdn控制器为例,该方法的主要步骤包括:第一步两个子sdn控制器进行域内拓扑发现,并将不存在链路的端口信息上报给父sdn控制器,第二步父
sdn控制器向两个子sdn控制器发送带有父sdn控制器标识的标识报文,并指导两个子sdn控制器将标识报文从第一步所述端口处转发,第三步两个子sdn控制器互相收到来自对方管辖的sdn交换机且带有父sdn控制器标识报文,并将该标识报文上报给父sdn控制器,第四步父sdn控制器收到来自子sdn控制器且带有自身标识的报文,父sdn控制器确定两个子sdn控制器存在跨域链路。该方法通过设计父sdn控制器标识报文并在两个sdn网络中转发可以发现跨域链路,且不需要将网络拓扑同步至每个sdn控制器,但是,该方法需要子sdn控制器先进行域内拓扑发现,再与父sdn控制器进行通信,而后再进行跨域拓扑发现。这种先域内拓扑发现再跨域拓扑发现的方法有较高的时间开销,全网拓扑发现的效率低,拓扑发现实时性差。
[0008]
现有技术虽然可以在sdn多控制器架构下进行拓扑发现,但是这些方法或不适用于分层分域的sdn多控制器架构,或由于具有较大时间开销,导致拓扑发现效率低,无法保证拓扑发现的实时性。因此需要在分层分域sdn多控制器架构下设计一种时间开销保持在较低水平,保证拓扑发现实时性的拓扑发现方法。
[0009]
通过上述分析,现有技术存在的问题及缺陷为:现有技术不适用于分层分域的sdn多控制器架构,时间开销大,拓扑发现效率低,无法保证拓扑发现的实时性。
[0010]
解决以上问题及缺陷的难度为:如何设计一种链路发现报文,可以支持发现域内链路和跨域链路;如何设计一种链路发现机制,能够处理上述链路发现报文并同时发现域内链路与跨域链路;如何处理多域拓扑中的全局网络视图,以保证全网的正常通信。
[0011]
解决以上问题及缺陷的意义为:设计一种链路发现报文,用于发现域内链路以及跨域链路,解决lldp报文不能发现跨域链路的缺陷;设计一种链路发现报文处理机制,利用上述链路发现报文,同时发现网络中的域内链路以及跨域链路,减少拓扑发现的时间,降低时间开销;设计一种全局拓扑抽象机制,主控制器掌握抽象全局拓扑,在较低的存储开销水平下,保证全网的正常通信,且子控制器之间无需进行同步。


技术实现要素:

[0012]
针对现有技术存在的问题,本发明提供了一种面向分层分域sdn多控制器架构的拓扑发现系统。
[0013]
本发明是这样实现的,一种面向分层分域sdn多控制器架构的拓扑发现系统,所述面向分层分域sdn多控制器架构的拓扑发现系统包括:设备信息采集模块、链路发现报文发送模块、链路发现报文处理模块、链路构造模块以及全局抽象拓扑生成模块;设备信息采集模块,包括数据接口和数据存储库;用于采集主机与sdn交换机信息;该模块为系统中的其他模块提供网络中的主机与sdn交换机信息,对于链路发现报文发送模块以及全局抽象拓扑生成模块,这些信息是必要的;链路发现报文发送模块,包括端口分类器、报文构造器和报文发送器;用于构造链路发现报文并控制报文的转发,并在子sdn控制器中解析报文;该模块构造并发送链路发现报文,为系统提供了用于发现链路的链路发现报文;链路发现报文处理模块,用于利用报文解析器解析子sdn控制器收到链路发现报文,得到报文中的交换机id、交换机端口id、子域id以及虚拟端口id;该模块处理并解析经
过网络数据平面转发后的链路发现报文,为系统中的链路构造模块提供了报文携带的信息;链路构造模块,包括域内链路构造器、跨域链路构造器和虚拟端口构造器;用于根据不同报文信息构建域内链路、跨域链路或虚拟端口;该模块为系统生成了域内链路与跨域链路,实现了同时发现域内链路与跨域链路;全局抽象拓扑生成模块,包括子域拓扑抽象器和全局抽象拓扑生成器;用于在主sdn控制器中生成全局抽象拓扑;该模块在系统中实现了全局网络拓扑抽象机制,在保证全网正常通信的同时,降低了控制器的存储开销且保证了子控制器之间无需进行网络同步。
[0014]
进一步,所述设备信息采集模块包括:数据接口,用于提取主机与sdn交换机信息;数据存储库,用于存储数据接口提取的主机与sdn交换机信息。
[0015]
进一步,所述链路发现报文发送模块包括:端口分类器,用于从数据存储库中读取交换机信息中的端口信息,将端口信息分为主机端口信息与非主机端口信息,并将非主机端口信息发送给报文发送器;报文构造器,用于构造链路发现报文;报文发送器,用于将链路发现报文发送至sdn交换机,报文出端口设置为sdn交换机的所有非主机端口,报文转发至邻居sdn交换机,并从邻居sdn交换机转发至管辖邻居sdn交换机的子sdn控制器。
[0016]
进一步,所述子sdn控制器构造包括交换机id、交换机端口id、子域id以及虚拟端口id字段的链路发现报文,其中虚拟端口id默认为0。
[0017]
进一步,所述链路构造模块包括:域内链路构造器,用于子sdn控制器根据报文内容构建域内链路;跨域链路构造器,用于子sdn控制器根据报文内容将报文上报至主sdn控制器构建跨域链路;虚拟端口构造器,用于子sdn控制器根据报文内容对特定sdn交换机端口分配虚拟端口id。
[0018]
进一步,所述全局抽象拓扑生成模块包括:子域拓扑抽象器,用于将子sdn控制器和子域内所有sdn交换机、链路抽象成逻辑交换机,子域的虚拟端口为逻辑交换机的端口,子域内所有的主机看作与逻辑交换机相连的主机;全局抽象拓扑生成器,用于将逻辑交换机、跨域链路、虚拟端口、子域主机及其他信息生成抽象拓扑。
[0019]
本发明的另一目的在于提供一种实施所述面向分层分域sdn多控制器架构的拓扑发现系统的面向分层分域sdn多控制器架构的拓扑发现方法,所述面向分层分域sdn多控制器架构的拓扑发现方法包括:步骤一,采集主机与sdn交换机信息;基于采集的信息构造链路发现报文并控制报文的转发,同时在子sdn控制器中解析报文;在本方案中,该步骤构造了链路发现报文,该报文弥补了lldp报文的缺陷,既可以用于发现域内链路,也可以用于发现跨域链路;步骤二,利用报文解析器解析子sdn控制器收到链路发现报文,得到报文中的交换
机id、交换机端口id、子域id以及虚拟端口id;在本方案中,该步骤用于解析报文内容,将报文信息发送至链路构造器,为链路构造提供了输入信息;步骤三,根据不同报文信息构建域内链路、跨域链路或虚拟端口;在主sdn控制器中生成全局抽象拓扑;在本方案中,该步骤实现了链路的构造,并生成了全局抽象拓扑,完成了sdn分成分域多控制器架构下的拓扑发现的核心功能。
[0020]
进一步,所述采集主机与sdn交换机信息;基于采集的信息构造链路发现报文并控制报文的转发,同时在子sdn控制器中解析报文包括:数据接口向sdn交换机发送请求信息;sdn交换机根据请求信息,向数据接口回复自身信息与相连主机信息;数据接口接收回复信息,将主机信息与sdn交换机信息发送至数据存储库;数据存储库存储从数据接口接收的主机信息与sdn交换机信息;端口分类器提取数据存储库中sdn交换机信息的端口信息,将端口信息分为主机端口信息与非主机端口信息,并将非主机端口信息发送至报文发送器;报文构造器构造链路发现报文,报文发送器接收端口分类器发送的端口信息,将链路发现报文发送至sdn交换机,转发端口设置为sdn交换机的非主机端口,sdn交换机收到链路发现报文后从转发端口转发至邻居sdn交换机,邻居sdn交换机将收到的链路发现报文转发至管辖该邻居sdn交换机的子sdn控制器。
[0021]
进一步,所述链路发现报文包括交换机id、交换机端口id、子域的子域id以及虚拟端口id,其中若交换机端口未被设置为虚拟端口,则虚拟端口id设置为0。
[0022]
进一步,所述根据不同报文信息构建域内链路、跨域链路或虚拟端口,在主sdn控制器中生成全局抽象拓扑包括:若报文信息中子域id与本子域的子域id相同,则域内链路构造器建立一条域内链路,并将域内链路信息发送至全局抽象拓扑生成模块;若报文信息中子域id与本子域的子域id不同且报文信息中的虚拟端口id为0,则虚拟端口构造器为报文入端口分配虚拟端口id,再构造链路发现报文从入端口发出;若报文信息中子域id与本子域的子域id不同且报文信息中的虚拟端口id不为0,子sdn控制器读取存储在本地的虚拟端口列表,若收到报文的sdn交换机的端口号未被分配虚拟端口号,则虚拟端口构造器为报文入端口分配虚拟端口id,否则无需再次分配虚拟端口id,而后跨域链路构造器构造跨域链路,并将跨域链路信息发送至全局抽象拓扑生成模块;全局抽象拓扑生成模块在主sdn控制器中生成全局抽象拓扑:子域拓扑抽象器提取数据存储库中的主机信息,将子域的子域id、子域内的主机ip地址、mac地址信息抽象成子域逻辑交换机,并将子域逻辑交换机信息发送至全局抽象拓扑器;全局抽象拓扑生成器根据子域抽象器发送的信息以及链路构造模块发送的跨域链路信息在主sdn控制器中生成全局抽象拓扑。
[0023]
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提出了一种面向分层分域sdn多控制器架构的拓扑发现方法及系统,能够同时进行域内、跨域拓扑发现,并进行了全网拓扑抽象,提升了拓扑发现的效率、保证拓扑发现的实时性、降低拓扑发现的时间开销。
[0024]
本发明设计了特殊的链路发现报文,通过子域id标识子网,虚拟端口id标识跨域端口,sdn交换机id标识sdn交换机,sdn交换机端口id标识sdn交换机端口,可以在分层分域sdn多控制器架构中用于同时发现域内拓扑与跨域拓扑;设计了端口信息采集模块,用于采集sdn交换机的主机端口与非主机端口,并在链路发现报文发送模块中去除了发送至主机端口的链路发现报文。既确保了可以在分层分域sdn多控制器架构中正确发现全网拓扑,又做到了同时发现域内链路与跨域链路,降低了拓扑发现的时间开销,提升了拓扑发现的效率。
[0025]
本发明设计了在分层分域sdn多控制器架构中的全局拓扑抽象机制,全局抽象拓扑仅由主sdn控制器掌握,子sdn控制器仅需掌握子域拓扑。通过该拓扑抽象机制,可在每个sdn控制器都无需掌握全局拓扑的情况下保证全网的正常运行,且而子sdn控制器之间无需进行信息同步,降低了sdn控制器的拓扑发现的时间开销,提升了拓扑发现的效率。
[0026]
附图说明
[0027]
图1是本发明实施例提供的适用sdn网络物理拓扑示意图。
[0028]
图2是本发明实施例提供的拓扑发现系统的结构示意图。
[0029]
图3是本发明实施例提供的面向分层分域sdn多控制器架构的拓扑发现系统结构示意图;图中:1、设备信息采集模块;2、链路发现报文发送模块;3、链路发现报文处理模块;4、链路构造模块;5、全局抽象拓扑生成模块。
[0030]
图4是本发明实施例提供的拓扑抽象结果示意图。
[0031]
图5是本发明实施例提供的拓扑发现方法的实现原理图。
[0032]
图6是本发明实施例提供的拓扑发现方法的实现流程图。
[0033]
图7是本发明实施例提供的面向分层分域sdn多控制器架构的拓扑发现方法流程图。
[0034]
图8是本发明实施例提供的链路发现报文的格式图。
[0035]
具体实施方式
[0036]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0037]
针对现有技术存在的问题,本发明提供了一种面向分层分域sdn多控制器架构的拓扑发现系统及方法,下面结合附图对本发明作详细的描述。
[0038]
如图1至图3所示,本发明实施例提供的面向分层分域sdn多控制器架构的拓扑发现系统包括:设备信息采集模块1、链路发现报文发送模2块、链路发现报文处理模块3、链路构造模块4以及全局抽象拓扑生成模块5;设备信息采集模块1,包括数据接口和数据存储库;用于采集主机与sdn交换机信
息;链路发现报文发送模块2,包括端口分类器、报文构造器和报文发送器;用于构造链路发现报文并控制报文的转发,并在子sdn控制器中解析报文;链路发现报文处理模块3,用于利用报文解析器解析子sdn控制器收到链路发现报文,得到报文中的交换机id、交换机端口id、子域id以及虚拟端口id;链路构造模块4,包括域内链路构造器、跨域链路构造器和虚拟端口构造器;用于根据不同报文信息构建域内链路、跨域链路或虚拟端口;全局抽象拓扑生成模块5,包括子域拓扑抽象器和全局抽象拓扑生成器;用于在主sdn控制器中生成全局抽象拓扑。
[0039]
本发明实施例提供的设备信息采集模块1包括:数据接口,用于提取主机与sdn交换机信息;数据存储库,用于存储数据接口提取的主机与sdn交换机信息。
[0040]
本发明实施例提供的链路发现报文发送模块2包括:端口分类器,用于从数据存储库中读取交换机信息中的端口信息,将端口信息分为主机端口信息与非主机端口信息,并将非主机端口信息发送给报文发送器;报文构造器,用于构造链路发现报文;报文发送器,用于将链路发现报文发送至sdn交换机,报文出端口设置为sdn交换机的所有非主机端口,报文转发至邻居sdn交换机,并从邻居sdn交换机转发至管辖邻居sdn交换机的子sdn控制器。
[0041]
本发明实施例提供的子sdn控制器构造包括交换机id、交换机端口id、子域id以及虚拟端口id字段的链路发现报文,其中虚拟端口id默认为0。
[0042]
本发明实施例提供的链路构造模块4包括:域内链路构造器,用于子sdn控制器根据报文内容构建域内链路;跨域链路构造器,用于子sdn控制器根据报文内容将报文上报至主sdn控制器构建跨域链路;虚拟端口构造器,用于子sdn控制器根据报文内容对特定sdn交换机端口分配虚拟端口id。
[0043]
本发明实施例提供的全局抽象拓扑生成模块5包括:子域拓扑抽象器,用于将子sdn控制器和子域内所有sdn交换机、链路抽象成逻辑交换机,子域的虚拟端口为逻辑交换机的端口,子域内所有的主机看作与逻辑交换机相连的主机;全局抽象拓扑生成器,用于将逻辑交换机、跨域链路、虚拟端口、子域主机及其他信息生成抽象拓扑。
[0044]
如图4至图7所示,本发明实施例提供的面向分层分域sdn多控制器架构的拓扑发现方法包括:s101,采集主机与sdn交换机信息;基于采集的信息构造链路发现报文并控制报文的转发,同时在子sdn控制器中解析报文;s102,利用报文解析器解析子sdn控制器收到链路发现报文,得到报文中的交换机id、交换机端口id、子域id以及虚拟端口id;
s103,根据不同报文信息构建域内链路、跨域链路或虚拟端口;在主sdn控制器中生成全局抽象拓扑。
[0045]
本发明实施例提供的采集主机与sdn交换机信息;基于采集的信息构造链路发现报文并控制报文的转发,同时在子sdn控制器中解析报文包括:数据接口向sdn交换机发送请求信息;sdn交换机根据请求信息,向数据接口回复自身信息与相连主机信息;数据接口接收回复信息,将主机信息与sdn交换机信息发送至数据存储库;数据存储库存储从数据接口接收的主机信息与sdn交换机信息;端口分类器提取数据存储库中sdn交换机信息的端口信息,将端口信息分为主机端口信息与非主机端口信息,并将非主机端口信息发送至报文发送器;报文构造器构造链路发现报文,报文发送器接收端口分类器发送的端口信息,将链路发现报文发送至sdn交换机,转发端口设置为sdn交换机的非主机端口,sdn交换机收到链路发现报文后从转发端口转发至邻居sdn交换机,邻居sdn交换机将收到的链路发现报文转发至管辖该邻居sdn交换机的子sdn控制器。
[0046]
本发明实施例提供的链路发现报文包括交换机id、交换机端口id、子域的子域id以及虚拟端口id,其中若交换机端口未被设置为虚拟端口,则虚拟端口id设置为0。
[0047]
本发明实施例提供的根据不同报文信息构建域内链路、跨域链路或虚拟端口,在主sdn控制器中生成全局抽象拓扑包括:若报文信息中子域id与本子域的子域id相同,则域内链路构造器建立一条域内链路,并将域内链路信息发送至全局抽象拓扑生成模块;若报文信息中子域id与本子域的子域id不同且报文信息中的虚拟端口id为0,则虚拟端口构造器为报文入端口分配虚拟端口id,再构造链路发现报文从入端口发出;若报文信息中子域id与本子域的子域id不同且报文信息中的虚拟端口id不为0,子sdn控制器读取存储在本地的虚拟端口列表,若收到报文的sdn交换机的端口号未被分配虚拟端口号,则虚拟端口构造器为报文入端口分配虚拟端口id,否则无需再次分配虚拟端口id,而后跨域链路构造器构造跨域链路,并将跨域链路信息发送至全局抽象拓扑生成模块;全局抽象拓扑生成模块在主sdn控制器中生成全局抽象拓扑:子域拓扑抽象器提取数据存储库中的主机信息,将子域的子域id、子域内的主机ip地址、mac地址信息抽象成子域逻辑交换机,并将子域逻辑交换机信息发送至全局抽象拓扑器;全局抽象拓扑生成器根据子域抽象器发送的信息以及链路构造模块发送的跨域链路信息在主sdn控制器中生成全局抽象拓扑。
[0048]
下面结合具体实施例对本发明的技术方案作进一步说明。
[0049]
实施例1:本发明提供的面向分层分域sdn多控制器架构的拓扑发现系统,包括设备信息采集模块、链路发现报文发送模块、链路发现报文处理模块、链路构造模块以及全局抽象拓扑生成模块,其中:所述设备信息采集模块,包括数据接口和数据存储库;所述数据接口,用于提取主机与sdn交换机信息;所述数据存储库,用于存储数据接口提取的主机与sdn交换机信息;
所述链路发现报文发送模块,包括端口分类器、报文构造器和报文发送器;所述端口分类器,用于从数据存储库中读取交换机信息中的端口信息,将端口信息分为主机端口信息与非主机端口信息,并将非主机端口信息发送给报文发送器;所述报文构造器,用于在子sdn控制器与sdn交换机建立连接以后,子sdn控制器构造包括交换机id、交换机端口id、子域id以及虚拟端口id字段的链路发现报文,其中虚拟端口id默认为0;所述报文发送器,用于将链路发现报文发送至sdn交换机,报文出端口设置为sdn交换机的所有非主机端口,报文转发至邻居sdn交换机,并从邻居sdn交换机转发至管辖邻居sdn交换机的子sdn控制器;所述链路发现报文处理模块,包括报文解析器;所述报文解析器,用于解析子sdn控制器收到链路发现报文,得到报文中的交换机id、交换机端口id、子域id以及虚拟端口id;所述链路构造模块,包括域内链路构造器、跨域链路构造器和虚拟端口构造器;所述域内链路构造器,用于子sdn控制器根据报文内容构建域内链路;所述跨域链路构造器,用于子sdn控制器根据报文内容将报文上报至主sdn控制器构建跨域链路;所述虚拟端口构造器,用于子sdn控制器根据报文内容对特定sdn交换机端口分配虚拟端口id;所述全局抽象拓扑生成模块,包括子域拓扑抽象器和全局抽象拓扑生成器;所述子域拓扑抽象器,用于将子sdn控制器和子域内所有sdn交换机、链路抽象成逻辑交换机,子域的虚拟端口为逻辑交换机的端口,子域内所有的主机看作与逻辑交换机相连的主机;所述全局抽象拓扑生成器,用于将逻辑交换机、跨域链路、虚拟端口、子域主机等信息生成抽象拓扑。
[0050]
本发明提供的面向分层分域sdn多控制器架构的拓扑发现方法,包含如下步骤:(1)设备信息采集模块采集主机与sdn交换机信息:(1a)数据接口向sdn交换机发送请求信息;(1b)sdn交换机根据请求信息,向数据接口回复自身信息与相连主机信息;(1c)数据接口接收回复信息,将主机信息与sdn交换机信息发送至数据存储库;(1d)数据存储库存储从数据接口接收的主机信息与sdn交换机信息;(2)链路发现报文发送与处理模块构造链路发现报文并控制报文的转发,并在子sdn控制器中解析报文:(2a)端口分类器提取数据存储库中sdn交换机信息的端口信息,将端口信息分为主机端口信息与非主机端口信息,并将非主机端口信息发送至报文发送器;(2b)报文构造器构造链路发现报文,包括交换机id、交换机端口id、子域的子域id以及虚拟端口id,其中若交换机端口未被设置为虚拟端口,则虚拟端口id设置为0;(2c)报文发送器接收端口分类器发送的端口信息,将链路发现报文发送至sdn交换机,转发端口设置为sdn交换机的非主机端口,sdn交换机收到链路发现报文后从转发端口转发至邻居sdn交换机,邻居sdn交换机将收到的链路发现报文转发至管辖该邻居sdn交换机的子sdn控制器;(3)报文解析器解析转发至子sdn控制器链路发现报文,得到报文中的交换机id、交换机端口id、子域id以及虚拟端口id,并将报文信息发送至链路构造模块;(4)链路构造模块根据不同报文信息构建域内链路、跨域链路或虚拟端口:
(4a)若报文信息中子域id与本子域的子域id相同,则域内链路构造器建立一条域内链路,并将域内链路信息发送至全局抽象拓扑生成模块;(4b)若报文信息中子域id与本子域的子域id不同且报文信息中的虚拟端口id为0,说明sdn交换机与邻居sdn交换机之间存在跨域链路,但报文入端口与报文出端口均未被分配虚拟端口id,则虚拟端口构造器为报文入端口分配虚拟端口id,为使报文出端口可以被分配虚拟端口,需要再构造链路发现报文从入端口发出;(4c)若报文信息中子域id与本子域的子域id不同且报文信息中的虚拟端口id不为0,说明sdn交换机与邻居sdn交换机之间存在跨域链路,且报文出端口已被分配虚拟端口id,则子sdn控制器读取存储在本地的虚拟端口列表,若报文入端口未被分配虚拟端口号,虚拟端口构造器为报文入端口分配虚拟端口id,否则无需再次分配虚拟端口id,而后跨域链路构造器构造跨域链路,并将跨域链路信息发送至全局抽象拓扑生成模块;(5)全局抽象拓扑生成模块在主sdn控制器中生成全局抽象拓扑:(5a)子域拓扑抽象器提取数据存储库中的主机信息,将子域的子域id、子域内的主机ip地址、mac地址信息抽象成子域逻辑交换机,并将子域逻辑交换机信息发送至全局抽象拓扑器;(5b)全局抽象拓扑生成器根据子域抽象器发送的信息以及链路构造模块发送的跨域链路信息在主sdn控制器中生成全局抽象拓扑。
[0051]
实施例2:本发明适用的sdn网络的物理拓扑可以为任意类型的物理拓扑,本实施例选择的物理拓扑由6个sdn交换机与2个主机构成,其中,3个sdn交换机与1个主机构成一个子域,被一个子sdn控制器管辖,两个子域之间有两条通信链路,子域内的sdn交换机两两互联。
[0052]
一种面向分层分域sdn多控制器架构的拓扑发现系统,包括设备信息采集模块、链路发现报文发送模块、链路发现报文处理模块、链路构造模块以及全局抽象拓扑生成模块,其中:所述设备信息采集模块,包括数据接口和数据存储库;所述数据接口,用于提取主机与sdn交换机信息;所述数据存储库,用于存储数据接口提取的主机与sdn交换机信息;所述链路发现报文发送模块,包括端口分类器、报文构造器和报文发送器;所述端口分类器,用于从数据存储库中读取交换机信息中的端口信息,将端口信息分为主机端口信息与非主机端口信息,并将非主机端口信息发送给报文发送器;所述报文构造器,用于在子sdn控制器与sdn交换机建立连接以后,子sdn控制器构造包括交换机id、交换机端口id、子域id以及虚拟端口id字段的链路发现报文,其中虚拟端口id默认为0;所述报文发送器,用于将链路发现报文发送至sdn交换机,报文出端口设置为sdn交换机的所有非主机端口,报文转发至邻居sdn交换机,并从邻居sdn交换机转发至管辖邻居sdn交换机的子sdn控制器;所述链路发现报文处理模块,包括报文解析器;所述报文解析器,用于解析子sdn控制器收到链路发现报文,得到报文中的交换机id、交换机端口id、子域id以及虚拟端口id;所述链路构造模块,包括域内链路构造器、跨域链路构造器和虚拟端口构造器;所述域内链路构造器,用于子sdn控制器根据报文内容构建域内链路;所述跨域链路构造器,用于子sdn控制器根据报文内容将报文上报至主sdn控制器构建跨域链路;所述虚拟端口构造
器,用于子sdn控制器根据报文内容对特定交换机端口分配虚拟端口id;所述全局抽象拓扑生成模块,包括子域拓扑抽象器和全局抽象拓扑生成器;所述子域拓扑抽象器,用于将子sdn控制器和子域内所有交换机、链路抽象成逻辑交换机,子域的虚拟端口为逻辑交换机的端口,子域内所有的主机看作与逻辑交换机相连的主机;所述全局抽象拓扑生成器,用于将逻辑交换机、跨域链路、虚拟端口、子域主机等信息生成抽象拓扑。
[0053]
参照图4、图5和图6,一种面向分层分域sdn多控制器架构的拓扑发现方法,包含如下步骤:步骤1)设备信息采集模块采集主机与sdn交换机信息:步骤1a)数据接口向sdn交换机发送请求信息;步骤1b)sdn交换机根据请求信息,向数据接口回复自身信息与相连主机信息;步骤1c)数据接口接收回复信息,将主机信息与sdn交换机信息发送至数据存储库;步骤1d)数据存储库存储从数据接口接收的主机信息与sdn交换机信息;步骤2)链路发现报文发送与处理模块构造链路发现报文并控制报文的转发,并在子sdn控制器中解析报文:步骤2a)端口分类器提取数据存储库中交换机信息的端口信息,将端口信息分为主机端口信息与非主机端口信息,并将非主机端口信息发送至报文发送器;步骤2b)报文构造器构造链路发现报文,包括交换机id、交换机端口id、子域id以及虚拟端口id,其中若交换机端口未被设置为虚拟端口,则虚拟端口id设置为0;上述步骤的报文构造器,构造不同于lldp报文的链路发现报文,采用子域id标识不同的子域,采用虚拟端口id标识跨域链路两端端口,既可以用于发现域内链路,也可以用于发现跨域链路。
[0054]
步骤2c)报文发送器接收端口分类器发送的端口信息,将链路发现报文发送至sdn交换机,转发端口设置为sdn交换机的非主机端口,sdn交换机收到链路发现报文后从转发端口转发至邻居sdn交换机,邻居sdn交换机将收到的链路发现报文转发至管辖该邻居sdn交换机的子sdn控制器;上述步骤的报文发送器,将报文发送至sdn交换机的非主机端口,无需发送至sdn交换机的主机端口,减少了报文发送数目,降低了子sdn控制器与sdn交换机之间的通信开销。
[0055]
步骤3)报文解析器解析转发至子sdn控制器链路发现报文,得到报文中的交换机id、交换机端口id、子域id以及虚拟端口id,并将报文信息发送至链路构造模块;步骤4)链路构造模块根据不同报文信息构建域内链路、跨域链路或虚拟端口:步骤4a)若报文信息中子域id与本子域的子域id相同,则域内链路构造器建立一条域内链路,并将域内链路信息发送至全局抽象拓扑生成模块;步骤4b)若报文信息中子域id与本子域的子域id不同且报文信息中的虚拟端口id为0,说明sdn交换机与邻居sdn交换机之间存在跨域链路,但报文入端口与报文出端口均未被分配虚拟端口id,则虚拟端口构造器为报文入端口分配虚拟端口id,为使报文出端口可以被分配虚拟端口,需要再构造链路发现报文从入端口发出;
步骤4c)若报文信息中子域id与本子域的子域id不同且报文信息中的虚拟端口id不为0,说明sdn交换机与邻居sdn交换机之间存在跨域链路,且报文出端口已被分配虚拟端口id,则子sdn控制器读取存储在本地的虚拟端口列表,若报文入端口未被分配虚拟端口号,虚拟端口构造器为报文入端口分配虚拟端口id,否则无需再次分配虚拟端口id,而后跨域链路构造器构造跨域链路,并将跨域链路信息发送至全局抽象拓扑生成模块;上述步骤的域内链路构造器与跨域链路构造器,由子sdn控制器根据报文信息进行构造,即没有先后之分,也无需等待主sdn控制器的指示,提高了全局拓扑发现的效率。
[0056]
步骤5)全局抽象拓扑生成模块在主sdn控制器中生成全局抽象拓扑:步骤5a)子域拓扑抽象器提取数据存储库中的主机信息,将子域的子域id、子域内的主机ip地址、mac地址信息抽象成子域逻辑交换机,并将子域逻辑交换机信息发送至全局抽象拓扑器;步骤5b)全局抽象拓扑生成器根据子域抽象器发送的信息以及链路构造模块发送的跨域链路信息在主sdn控制器中生成全局抽象拓扑。
[0057]
上述步骤的全局拓扑抽象结果如图5所示,主sdn控制器掌握抽象拓扑,而子sdn控制器仅需掌握本域拓扑,即减小了每个控制器的存储开销,又无需在多个子sdn控制器中同步网络中的全局事件。
[0058]
实施例3:本发明设计的链路发现报文格式如图8所示,不同于lldp报文,该报文既可以用于发现域内链路,也可以用于发现跨域链路,报文采用ethernet ii格式封装,包括交换机id、交换机端口id、子域id以及虚拟端口id字段,通过子域id标识不同子域,通过虚拟端口id既可以标识跨域链路的链路端口,又可以为全局抽象拓扑提供虚拟端口号。链路发现报文的发送与处理步

骤如下:步骤1)子sdn控制器构建并发送链路发现报文;步骤1a)子sdn控制器构建发向子域内所有sdn交换机的链路发现报文,交换机id和交换机端口id根据不同的sdn交换机设置相应的值,子域id设置为本子网的区域号,虚拟端口id初始值设置为0;步骤1b)子sdn控制器每隔一段时间向子域内所有sdn交换机发送链路发现报文,且出端口为sdn交换机的非主机端口;步骤2)sdn交换机处理链路发送报文;步骤2a)sdn交换机收到来自子sdn控制器的链路发送报文后,将报文从指点端口发出;步骤2b)其他sdn交换机收到来自转发后的链路发现报文后,将报文上传至管辖该sdn交换机的子sdn控制器;步骤3)子sdn控制器解析链路发现报文;步骤3a)子sdn控制器收到来自sdn交换机的链路发现报文后,首先读取报文中的子域id字段,判断是否与本域id相同,相同转向步骤3b,否则转向步骤3c;步骤3b)子sdn控制器根据收到链路发现报文的sdn交换机信息以及报文中的交换机id、交换机端口id建立域内链路;步骤3c)子sdn控制器读取存储在本地的虚拟端口列表,若收到报文的sdn交换机
的端口号未被分配虚拟端口号,则首先为其分配虚拟端口号并存储到虚拟端口列表,而后读取报文中的虚拟端口号,若为0转向步骤3d,否则转向步骤3e;步骤3d)子sdn控制器构造链路发现报文,并将收到报文的sdn交换机id、sdn交换机端口id、本子域id以及分配的虚拟端口id填入报文,发送至sdn交换机;步骤3e)虚拟端口号不为0,则子sdn控制器可将跨域链路信息上报至主sdn控制器,主sdn控制器建立跨域链路并存储到本地;应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd

rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
[0059]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献