控制设备及其拓扑学习的方法与流程

文档序号:12376308阅读:146来源:国知局
控制设备及其拓扑学习的方法与流程

本发明涉及通信领域,具体而言,涉及软件定义网络(Software Defined Network,SDN)与传统网络混合环境中控制设备及其拓扑学习的方法。



背景技术:

软件定义网络是一种新型网络创新架构,其核心技术开放流(Open Flow)通过将网络设备控制面与数据面分离开来,通过SDN控制设备对整个网络中的设备进行管理与调度,包括链路发现、拓扑管理、策略制定以及流表项下发等待,从而实现了网络流量的灵活控制。

目前SDN网络的拓扑学习一般通过LLDP(Link Layer Discovery Protocol,链路层发现协议)结合BDDP(Broadcast Domain Discovery Protocol,)来完成SDN网络拓扑的学习,但此方法要网络环境为纯SDN环境,且其仅适用于局域网内二层网络的学习构建,而无法满足不同网络环境下三层网络的拓扑学习以及构建。而目前网络环境多为SDN网络与传统网络并存的混合网络,因此,如何在此种混合网路下完成网络拓扑学习,是一个值得讨论的问题。



技术实现要素:

有鉴于此,本发明的目的是提供一种控制设备及其在SDN混合网络下拓扑学习的方法,可以实现混合网络下网络拓扑的学习。

本发明实施方式中提供的控制设备应用于软件定义网络和传统网络并存的混合网络中,所述混合网络内有多个第一类交换机,所述控制设备包括:判断模块,用于接收开启拓扑学习功能的触发命令;查询模块,用于向各个所述第一类交换机发送查询信息以侦测不同所述第一类交换机之间的网络路径,建立各个所述第一类交换机的网络信息表,所述网络信息表中记录了从每个所述第一类交换机到其他所述第一类交换机所需经过的节点,所述节点包括所述第一类交换机以及传统交换机;生成模块,用于整合各个所述第一类交换机的网络 信息表得到网络拓扑图。

优选地,所述控制设备还包括监控模块,所述监控模块用于在得到所述网络拓扑图后开始计时,当计时结束时发出所述触发命令,重新开启网络拓扑学习,更新所述网络拓扑图。

优选地,所述判断模块还用于依据所述触发命令判断查询类型,当所述查询类型为无限制路由查询时,所述查询模块发送查询命令查询从每个所述第一类交换机经任意跳数到达其他所述第一类交换机的所述网络路径上的每一个所述节点,并将查询结果记录在所述网络信息表。

优选地,当所述查询类型为限制路由查询时,所述查询模块发送查询命令查询从每个所述第一类交换机经预设跳数到达其他所述第一类交换机的所述网络路径上的每一个所述节点,并将查询结果记录在所述网络信息表。

优选地,所述查询模块侦测不同所述第一类交换机之间的网络路径包括:指示每个所述第一类交换机通过路由跟踪算法探测到其他各个所述第一类交换机之间的所述网络路径,所述网络路径包括传统网络路径和软件定义网络路径。

优选地,所述查询模块侦测不同所述第一类交换机之间的网络路径还包括:循环查询从每个所述第一类交换机到其他所述第一类交换机的所述网络路径,当查询结果出现路径重复时,删除所述重复路径,并停止本次查询。

优选地,所述第一类交换机为软件定义网络交换机。

本发明又一实施方式中提供的拓扑学习的方法,应用于控制设备,所述控制设备位于软件定义网络和传统网络并存的混合网络中,所述混合网络内有多个第一类交换机,所述方法包括以下步骤:接收开启拓扑学习功能的触发命令;向各个所述第一类交换机发送查询信息以侦测不同所述第一类交换机之间的网络路径,建立各个所述第一类交换机的网络信息表,所述网络信息表中记录了从每个所述第一类交换机到其他所述第一类交换机所需经过的节点,所述节点包括所述第一类交换机以及传统交换机;整合各个所述第一类交换机的网络信息表得到网络拓扑图。

优选地,所述方法还包括:在得到所述网络拓扑图后开始计时,当计时结束时发出所述触发命令,重新开启网络拓扑学习,更新所述网络拓扑图。

优选地,所述方法还包括:依据所述触发命令判断查询类型;当所述查询类型为无限制路由查询时,送查询命令查询从每个所述第一类交换机经任意跳数到达其他所述第一类交换机的所述网络路径上的每一个所述节点,并将查询 结果记录在所述网络信息表。

优选地,当所述查询类型为限制路由查询时,所述方法还包括:发送查询命令查询从每个所述第一类交换机经预设跳数到达其他所述第一类交换机的所述网络路径上的每一个所述节点,并将查询结果记录在所述网络信息表。

优选地,所述侦测不同所述第一类交换机之间的网络路径包括以下步骤:指示每个所述第一类交换机通过路由跟踪算法探测到其他各个所述第一类交换机之间的所述网络路径,所述网络路径包括传统网络路径和软件定义网络路径。

优选地,所述侦测不同所述第一类交换机之间的网络路径还包括以下步骤:循环查询从每个所述第一类交换机到其他所述第一类交换机的所述网络路径,当查询结果出现路径重复时,删除所述重复路径,并停止本次查询

优选地,所述第一类交换机为软件定义网络交换机。

本发明实施方式提供的控制设备及其拓扑学习方法,在接收到触发命令后开启拓扑学习功能,通过路由跟踪算法探测各个SDN交换机之间的网络信息,整合各个SDN交换机的网络信息之后得到网络拓扑图,由此实现了混合网络下网络拓扑的学习。

以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。

附图说明

图1是本发明控制设备各实施方式的应用环境图。

图2是本发明控制设备一实施方式的功能模块图。

图3是本发明控制设备又一实施方式的功能模块图。

图4是本发明一实施方式中一网络信息表的形成示例图。

图5是本发明一实施方式中控制设备记录的多个网络信息表示例图。

图6是本发明一实施方式中控制设备建立的网络路径开销表一示例图。

图7是本发明一实施方式中控制设备网络拓扑学习生成的网络拓扑图。

图8是本发明一实施方式中控制设备记录的多个网络信息表示例图。

图9是本发明另一实施方式中控制设备记录的多个网络信息表示例图。

图10是本发明另一实施方式中控制设备建立的网络路径开销表一示例图

图11是本发明另一实施方式中控制设备网络拓扑学习生成的网络拓扑 图。

图12是本发明一实施方式中控制设备实现拓扑学习方法的流程图。

主要元件符号说明

控制设备 10

SDN交换机 A、B、C、D、E

传统交换机 1、2、3、4、5

处理器 101

存储器 102

判断模块 1021

查询模块 1022

生成模块 1023

监控模块 1024

如下具体实施方式将结合上述附图进一步说明本发明。

具体实施方式

图1是本发明控制设备10一实施方式的应用环境示意图,其中控制设备10为SDN混合网络中的控制设备,所述SDN混合网络是指网络中同时存在SDN网络设备如软件定义网络交换机(SDN交换机)和传统网络设备如常见的传统交换机、传统路由器等。如图1所示,SDN混合网络主要包括控制设备10、SDN交换机A、B、C、D、E,传统交换机1、2、3、4、5,云网络a和主机(图中未示出)等。其中,控制设备10对网络进行集中控制,通过下发控制信息至多个SDN交换机(图中仅示出A、B)控制网络,SDN交换机A等和传统交换机1等负责管理数据层的转发。SDN交换机接收到主机发送的待转发数据包后,首先在本地的流表上查找转发规则(即流表项),如果没有匹配,则将待转发数据包发送至控制设备10,由控制设备10决定数据包的转发路径,再依据转发路径将数据包转发至对应主机。其中,流表位于SDN交换机中,用于存储SDN混合网络中控制设备所分发的转发规则。另外,传统交换机的工作方式较为常见,在此仅在简单说明,在本发明中,传统交换机具备负载均衡功能,当该功能开启时,其进行数据转发时将遵循负载均衡算法按依次选择 不同的端口和路径进行转发以分摊流量,当该功能关闭时,传统交换机的路由方式默认为静态路由,自动选择最短路由进行转发。在本实施方式中,SDN交换机在SDN混合网络中的数量为多个,如图1中的A、B、C、D、E,传统交换机的数量也为多个,如图1中的1、2、3、4、5。在本文后续说明中,SDN交换机与SDN节点均指A、B、C、D、E,传统节点和交换机均指1、2、3、4、5。

需要说明的是,在本发明中,云网络a可以是局域网、企业网络或是其他区域网,其具体拓扑本文不做限制,当数据传输经过该云网络时,开销视为99以表示开销较大。

图2所示为本发明控制设备10一实施方式的功能模块图。控制设备10包括处理器101、存储器102、判断模块1021、查询模块1022、生成模块1023和监控模块1024,在本实施方式中,模块1021~1024为可执行程序且分别存在于控制设备10的存储器102中,并由处理器101执行相关程序以实现上述模块的功能。

图3所示为本发明控制设备10又一实施方式的功能模块图。控制设备10包括判断模块1021、查询模块1022、生成模块1023和监控模块1024。

判断模块1021用于接收开启拓扑学习功能的触发命令以及判断查询类型。具体的,首次开启拓扑学习功能的触发命令可由用户手动设置发送,用户还可以同时设置计时时间T以及路由查询种类型,在本发明中,计时时间T主要用于控制网络拓扑的更新频率,计时时间结束则重新开启拓扑学习功能,以保持网络拓扑时刻为最新状态,查询类型用户可以选择无限制路由查询和限制路由查询,对于限制路由查询,还可以进一步设置限制跳数,例如,跳数限制为N的限制路由查询,即表示查询N跳内的路由拓扑。查询类型可以携带在触摸命令中体现,判断模块1021依据触摸命令判断查询类型。在本发明中,缺省状态下默认查询类型为无限制路由查询。本实施例中默认判断结果为无限制路由查询。

查询模块1022通过向各个SDN交换机发送查询信息以侦测不同SDN交换机之间的网络路径,建立各个SDN交换机的网络信息表(包括网络拓扑和网络状态如路径开销),以记录各个SDN交换机到达其他SDN交换机所需经过的所有节点,包括传统节点和SDN节点。以图1中的SDN交换机A为例, 控制设备10建立属于SDN交换机A的网络信息时,由查询模块1022向A发送路由查询信息,指示A通过trace route(路由跟踪算法)探测到其他SDN交换机之间网络路径,包括经过的传统节点和SDN节点。具体的,查询模块1022向A发送一个查询命令,其中携带一个TTL(time to live,生存时间)为1的路由探测封包,A在查询模块1022的指示下将TTL=1的探测封包向外(目的地址可依次为其他SDN交换机,如B、C等)发出,当路径上的第一个交换机接收到这个探测封包时,会将TTL减1,此时,TTL变为0,该交换机就会丢弃这个探测封包并回应一个[ICMP time exceeded]消息,其中携带这个探测封包经过的路由信息包括经过的各个节点的IP地址等,A收到这个[ICMP time exceeded]消息,会将这个回应消息转发给查询模块1020,由此,控制设备10便知道该交换机存在于这条路径上(如A到B)。接着,查询模块1022再发出第二个查询命令,要求A向外发送TTL=2的路由探测封包以发现第二个交换机,如此循环直至发现该路径上的存在的所有交换机(包括传统交换机和SDN交换机)。当查询模块1022得到某一路径组合(例如从A到B)的第一个可达路径时,则查询模块1022完成该路径组合的第一次查询,对于每一个路径组合,查询模块1022会进行重复查询直至出现重复路径,当有重复路径时,删除该路径,并停止该次查询,更换目的地,进行下一路径组合的查询。此处,重复查询是为了确认网络中是否存在开启了负载均衡功能的交换机的存在,当某一传统交换机开启了负载均衡功能时,则包含该交换机的路径组合的重复查询将得到不同结果。

请参考图4,其为图1所示环境下A的网络信息表的建立过程,本实施方式中默认传统交换机4开启负载均衡功能。从图4第一个表可知,从查询A到B之间的网络拓扑时,第一次查询得到路径结果为1,2,B,第二次查询仍旧为1,2,B,与第一次查询为重复路径,由此说明在A到B之间并不存在开启负载均衡功能的交换机,由于路径已开始重复,因此第二次查询结果将删除,并且A到B之间的查询到此停止,更换目的地为C,进行A到C之间网络拓扑的查询。因为A到C中存在传统交换机4开启了负载均衡功能,传统交换机4的下一跳存在多个选择,因此,A到C之间的第一次和第二次查询出现不同的结果,第三次查询结果与第一次查询结果出现重复路径,因此第一次查询结果和第二次查询结果将被保存,第三次查询结果将被删除,A到C之间的查询到 此结束,更换目的地为D,后续A到D和A到E之间网络拓扑的查询与此类似,因此第一个表中仅记录查询结果。图4中第二个表即为经过多次查询后得到的A的网络信息表。

需要说明的是,在本实施方式中,查询类型默认为无限制查询,故发送路由查询命令时无需考虑跳数问题,任意跳数内可达目的地的路径都会被考虑和记录,也即查询模块1022会查询从每一个SDN交换机经任意跳数到达其他SDN交换机的每个网络路径上的每一节点。如图5为SDN交换机B、C、D、E各自的网络信息表示例图。

在其他实施方式中,当查询类型为限制查询时,则发送路由查询命令时需考虑跳数问题,当超过预设跳数N之后才可达目的地的路径将不被考虑和记录。如图8为限制跳数N为3时SDN交换机B、C、D、E各自的网络信息表示例图,从各个表中可以看出,只有开销为3以内的路径才会被记录。其中,例外的情况为开启负载均衡功功能的传统交换机4所在的路径,对于此类路径,虽然其跳数可能超过3,但一般仍保留该记录。

需要说明的是,上述查询过程主要利用现有路由跟踪算法trace route和网实现,其不同在于此处由控制设备实现路由探测封包的控制,因此,本文对此算法的详细实现过程不再作详细叙述。

生成模块1023整合各个SDN交换机的网络信息表得到网络拓扑图,并记录各个SDN交换机之间路径开销。如图6为生成模块依据图4和图5所示的网络信息表生成的网络拓扑图。在本实施方式中,传统交换机4默认开启负载均衡功能,因此,同一路径组合正向和反向的所经过的节点以及开销出现不同,如图中A到C正向经过的路径有两个路由选择,开销分别为4和99,而反向(C到A)经过的路径则仅有4-D-1-A单一选择,开销为4,并且,生成模块1023依据图5中D的网络信息表分析可以确定,传统交换机4即为开启负载均衡功能的交换机。对比图6与图1其区别仅在与传统交换机5并未被查询到,但在该网络环境中,传统交换机5事实上造成了传输路径的闭合环路,造成网络资源的损耗,因此,忽略传统交换机5并不影响实际网络拓扑。生成模块1023生成网络拓扑图的同时也记录各个SDN交换机之间的路径开销,如图7所示即为本实施方式下(传统交换机4默认开启负载均衡功能)生成模块1023依据查询模块1022无限制路由查询最终得到的网络路径开销表。在图7中, ←→表示双向,→表示单向,例如A←→B对应的开销为3,表示从A到B的网络路径开销为3,从B到A的网络路径开销也是3。而A→C对应的开销为4~99则仅表示从A到C的网络路径开销为4-99(此处99仅表示网络开销较大,并不为具体数值,其具体数值由云网络a决定)。后续类似的表示均与此相同,不再作说明。

需要说明的是,上述实施方式中均默认传统交换机4开启负载均衡功能。在其他实施方式中,当用户或网络管理员确认网络中不存在开启负载均衡功能的交换机时,则查询模块1022在向各个SDN交换机发送查询信息以不断侦测和探查不同SDN交换机之间的网络路径时,对于同一路径组合,无需多次查询,而仅需要完成一次可达路径查询即可。如图9即为该情况下查询模块1022查询得到的各个SDN交换机的网络信息表。依据图9所示的各个网络信息表,生成模块1023可以得到如图10所示的网络拓扑图和如图11所示的网络路径开销表。在如图10所示的网络拓扑图中,云网络a不在出现,因为当不开启负载均衡功能时,本发明的所有传统交换机的路由方式均默认为静态路由,自动选择最短路由进行转发,因此得到的网络拓扑自动剔除了云网络a。

监控模块1024用于在得到网络拓扑图后开始计时,当计时结束时发出触发命令,重新开启网络拓扑学习,更新网络拓扑图。当生成模块1023得到网络拓扑图后,监控模块1024依据用户设定开启计时器,计时T结束后发出触发命令,重新开启拓扑学习功能。由此,能够确保控制设备10实时掌握网络拓扑变化,在网络拓扑发现变化时及时重新进行拓扑学习,更新网络拓扑图。

请参阅图12,所示是本发明一实施方式中控制设备实现拓扑学习方法的流程图。控制设备10通过图2或图3中的各功能模块实现拓扑学习方法。

步骤121中,判断模块1021接收到开启拓扑学习功能的触发命令,所述触发命令中包含查询类型等参数。判断模块1021依据所述触发命令进一步判定所需的查询类型。

具体的,首次开启拓扑学习功能的触发命令可由用户手动设置发送,用户还可以同时设置计时时间T以及路由查询种类型,在本发明中,计时时间T主要用于控制网络拓扑的更新频率,计时时间结束则重新开启拓扑学习功能,以保持网络拓扑时刻为最新状态。查询类型包括选择无限制路由查询和限制路由查询,对于限制路由查询,还可以进一步设置限制跳数,例如,跳数限制为 N的限制路由查询,即表示查询N跳内的路由拓扑。查询类型可以携带在触发命令中以参数体现。在本发明中,缺省状态下默认查询类型为无限制路由查询。本实施例中默认判断结果为无限制路由查询。

步骤S122中,查询模块1022通过向各个SDN交换机发送查询信息以侦测不同SDN交换机之间的网络信息(包括网络拓扑和网络状态如路径开销),建立各个SDN交换机点的网络信息表。

以图1中的SDN交换机A为例,为了建立属于SDN交换机A的网络信息时,查询模块1022向A发送路由查询信息,指示A通过trace route(路由跟踪算法)探测到其他SDN交换机之间网络路径,包括经过的传统节点和SDN节点。具体的,查询模块1022向A发送一个查询命令,其中携带一个TTL(time to live,生存时间)为1的路由探测封包,A在查询模块1022的指示下将TTL=1的探测封包向外(目的地址可依次为其他SDN交换机,如B、C等)发出,当路径上的第一个交换机接收到这个探测封包时,会将TTL减1,此时,TTL变为0,该交换机就会丢弃这个探测封包并回应一个[ICMP time exceeded]消息,其中携带这个探测封包经过的路由信息包括经过的各个节点的IP地址等,A收到这个[ICMP time exceeded]消息,会将这个回应消息转发给查询模块1020,由此,控制设备10便知道该交换机存在于这条路径上(如A到B)。接着,查询模块1022再发出第二个查询命令,要求A向外发送TTL=2的路由探测封包以发现第二个交换机,如此循环直至发现该路径上的存在的所有交换机(包括传统交换机和SDN交换机)。当查询模块1022得到某一路径组合(例如从A到B)的第一个可达路径时,则查询模块1022完成该路径组合的第一次查询,对于每一个路径组合,查询模块1022会进行重复查询直至出现重复路径,当有重复路径时,删除该路径,并停止该次查询,更换目的地,进行下一路径组合的查询。此处,重复查询是为了确认网络中是否存在开启了负载均衡功能的交换机的存在,当某一传统交换机开启了负载均衡功能时,则包含该交换机的路径组合的重复查询将得到不同结果。

请参考图4,其为图1所示环境下A的网络信息表的建立过程,本实施方式中默认传统交换机4开启负载均衡功能。从图4第一个表可知,从查询A到B之间的网络拓扑时,第一次查询得到路径结果为1,2,B,第二次查询仍旧为1,2,B,与第一次查询为重复路径,由此说明在A到B之间并不存在开启负载 均衡功能的交换机,由于路径已开始重复,因此第二次查询结果将删除,并且A到B之间的查询到此停止,更换目的地为C,进行A到C之间网络拓扑的查询。因为A到C中存在传统交换机4开启了负载均衡功能,传统交换机4的下一跳存在多个选择,因此,A到C之间的第一次和第二次查询出现不同的结果,第三次查询结果与第一次查询结果出现重复路径,因此第一次查询结果和第二次查询结果将被保存,第三次查询结果将被删除,A到C之间的查询到此结束,更换目的地为D,后续A到D和A到E之间网络拓扑的查询与此类似,因此第一个表中仅记录查询结果。图4中第二个表即为经过多次查询后得到的A的网络信息表。

需要说明的是,在本实施方式中,查询类型默认为无限制查询,故发送路由查询命令时无需考虑跳数问题,任意跳数内可达目的地的路径都会被考虑和记录,也即查询模块1022会查询从每一个SDN交换机经任意跳数到达其他SDN交换机的每个网络路径上的每一节点。如图5为SDN交换机B、C、D、E各自的网络信息表示例图。

在其他实施方式中,当查询类型为限制查询时,则发送路由查询命令时需考虑跳数问题,当超过预设跳数N之后才可达目的地的路径将不被考虑和记录。如图8为限制跳数N为3时SDN交换机B、C、D、E各自的网络信息表示例图,从各个表中可以看出,只有开销为3以内的路径才会被记录。其中,例外的情况为开启负载均衡功功能的传统交换机4所在的路径,对于此类路径,虽然其跳数可能超过3,但一般仍保留该记录。

步骤S123中,生成模块1023整合各个SDN交换机的网络信息表得到网络拓扑图,并记录各个SDN交换机之间路径开销。

如图6为生成模块依据图4和图5所示的网络信息表生成的网络拓扑图。在本实施方式中,传统交换机4默认开启负载均衡功能,因此,同一路径组合正向和反向的所经过的节点以及开销出现不同,如图中A到C正向经过的路径有两个路由选择,开销分别为4和99,而反向(C到A)经过的路径则仅有4-D-1-A单一选择,开销为4,并且,生成模块1023依据图5中D的网络信息表分析可以确定,传统交换机4即为开启负载均衡功能的交换机。对比图6与图1其区别仅在与传统交换机5并未被查询到,但在该网络环境中,传统交换机5事实上造成了传输路径的闭合环路,造成网络资源的损耗,因此,忽略 传统交换机5并不影响实际网络拓扑。生成模块1023生成网络拓扑图的同时也记录各个SDN交换机之间的路径开销,如图7所示即为本实施方式下(传统交换机4默认开启负载均衡功能)生成模块1023依据查询模块1022无限制路由查询最终得到的网络路径开销表。在图7中,←→表示双向,→表示单向,例如A←→B对应的开销为3,表示从A到B的网络路径开销为3,从B到A的网络路径开销也是3。而A→C对应的开销为4~99则仅表示从A到C的网络路径开销为4-99(此处99仅表示网络开销较大,并不为具体数值,其具体数值由云网络a决定)。后续类似的表示均与此相同,不再作说明。

需要说明的是,上述实施方式中均默认传统交换机4开启负载均衡功能。在其他实施方式中,当用户或网络管理员确认网络中不存在开启负载均衡功能的交换机时,则查询模块1022在向各个SDN交换机发送查询信息以不断侦测和探查不同SDN交换机之间的网络信息,对于同一路径组合,无需多次查询,而仅需要完成一次完整路径查询即可。如图9即为该情况下查询模块1022查询得到的各个SDN交换机的网络信息表。依据图9所示的各个网络信息表,生成模块1023可以得到如图10所示的网络拓扑图和如图11所示的网络路径开销表。在如图10所示的网络拓扑图中,云网络a不在出现,因为当不开启负载均衡功能时,本发明的所有传统交换机的路由方式均默认为静态路由,自动选择最短路由进行转发,因此得到的网络拓扑自动剔除了云网络a。

进一步的,在步骤123之后,作为进一步扩展,为保证控制设备10实时掌握网络拓扑变化,在网络拓扑发现变化时及时重新进行拓扑学习,更新网络拓扑图,所述方法还可包括:

在得到网络拓扑图后监控模块1024开始计时,当计时T结束时发出触发命令,重新开启拓扑学习功能,更新网络拓扑图。

具体的,当生成模块1023得到网络拓扑图后,监控模块1024依据用户设定开启计时器,计时T结束后发出触发命令,重新开启拓扑学习功能。

综上所述,控制设备10在接收到触发命令后开启拓扑学习功能,通过路由跟踪算法探测各个SDN交换机之间的网络信息,整合各个SDN交换机的网络信息之后得到网络拓扑图,由此实现了混合网络下网络拓扑的学习。

需要说明的是,上文所述实施方式,并不构成对发明保护范围的限定。任何在本发明的精神和原则内所作的修改,等同替换和改进等,均应包含在本发 明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1