一种路由器发现方法、SDN控制器、路由器和网络系统与流程

文档序号:13168839阅读:447来源:国知局
一种路由器发现方法、SDN控制器、路由器和网络系统与流程

本发明的实施例涉及通信领域,尤其涉及一种路由器发现方法、sdn(softwaredefinednetworking,软件定义网络)控制器、路由器和网络系统。



背景技术:

sdn(softwaredefinednetwork,软件定义网络)是一种新型网络创新架构,其通过将网络设备控制平面与数据平面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。在sdn网络中,包含实现控制平面的功能的sdn控制器和若干实现数据平面的功能的sdn交换机。sdn交换机负责数据的转发,而所有数据转发的控制行为由sdn控制器来完成。这样一来,sdn控制器就需要特殊协议来控制sdn交换机。现有的sdn网络中采用openflow协议来发现和控制sdn交换机,通过下发openflow流表来控制sdn交换机的数据转发行为,通过lldp(linklayerdiscoveryprotocol,链路层发现协议)协议来探测与发现sdn交换机之间的网络拓扑,通过arp(addressresolutionprotocol,地址解析协议)协议来发现sdn交换机下连接的普通主机。

当普通主机接入sdn交换机后,普通主机会主动发出arp报文至sdn交换机,由于sdn控制器已经下发如何处理arp报文的流表至sdn交换机,sdn交换机匹配该报文,将该报文包装以packet-in形式上送至sdn控制器,sdn控制器收到该报文对其进行解析,获取普通主机的相关信息,例如ip(internetprotocol,网络互联协议)地址、mac(mediaaccesscontrol或者mediumaccesscontrol,媒体访问控制)地址、连接sdn交换机的端口号等等,完成对普通主机的发现和识别过程。当路由器接入sdn网络时,路由器设备像普通主机一样,发出arp报文至与其直连的sdn交换机,由于sdn控制器已经下发如何处理arp的流表至sdn交换机,sdn交换机匹配转发流表,将该路由器的arp报文包装以packet-in形式上送至sdn控制器,sdn控制器解析并获取其相关信息,将路由器发现和识别成普通主机。

这样,通过arp协议方式只能将路由器发现和识别成普通主机,无法进一步获取路由器特征信息,即无法在sdn网络中发现路由器节点,同时sdn控制器也无法主动探测路由器节点。这样一来,sdn控制器的拓扑展示就无法反映真实物理网络拓扑,同时因为路由器节点无法被准确识别和探测,给网络业务部署带来困难。



技术实现要素:

本发明的实施例提供一种路由器发现方法、sdn控制器、路由器和网络系统,能够发现sdn网络中的路由器。

第一方面,提供一种路由器发现方法,包括:

sdn控制器向sdn交换机下发特征流表,其中特征流表用于指示sdn交换机将路由器发送的特征报文发送至sdn控制器;sdn交换机接收路由器发送的特征报文,并根据特征流表将特征报文转发至sdn控制器,特征报文携带路由器特征信息,所述路由器特征信息包括标识路由器的特征码;sdn控制器获取路由器通过sdn交换机发送的arp报文;sdn控制器根据特征报文和arp报文获取路由器的节点信息,路由器的节点信息包括:ip地址、路由器特征信息。

第二方面,提供一种sdn控制器,包括:

发送单元,用于向sdn交换机下发特征流表,其中所述特征流表用于指示所述sdn交换机将路由器发送的特征报文发送至所述sdn控制器;接收单元,用于接收所述sdn交换机根据所述特征流表转发的所述路由器发送的特征报文,所述特征报文携带路由器特征信息,所述路由器特征信息包括标识路由器的特征码;接收单元,还用于获取所述路由器通过sdn交换机发送的arp报文;处理单元,用于根据所述接收单元接收的所述特征报文和所述arp报文获取路由器的节点信息,所述路由器的节点信息包括:ip地址、路由器名称特征信息。

第三方面,提供一种路由器,包括:

发送单元,用于通过sdn交换机向sdn控制器发送特征报文,所述特征报文携带路由器特征信息;所述发送单元,还用于通过sdn交换机向所述sdn控制器发送arp报文。

第四方面,提供一种网络系统,包括上述任一sdn控制器、至少一个sdn交换机以及如上述任一路由器;其中,所述sdn控制器用于控制所述至少一个sdn交换机的数据转发,所述至少一个sdn交换机中的任一sdn交换机连接终端主机,所述至少一个sdn交换机中的任一sdn交换机连接所述路由器。

在上述方案中,sdn控制器向sdn交换机下发特征流表,其中特征流表用于指示sdn交换机将路由器发送的特征报文发送至sdn控制器;sdn交换机接收路由器发送的特征报文,并根据特征流表将特征报文转发至sdn控制器,特征报文携带路由器特征信息,所述路由器特征信息包括标识路由器的特征码;sdn控制器获取路由器通过sdn交换机发送的arp报文;sdn控制器根据特征报文和arp报文获取路由器的节点信息,路由器的节点信息包括:ip地址、路由器特征信息。通过上述方法,sdn控制器最终可以获取路由器的节点信息,因此sdn控制器能够发现sdn网络中的路由器,sdn控制器的拓扑展示能够准确反映真实物理网络拓扑,为网络业务部署提供方便。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的实施例提供的一种网络系统的结构图;

图2为本发明的实施例提供的一种路由器发现方法的流程图;

图3为本发明的实施例提供的一种路由器探测方法的流程图;

图4为本发明的实施例提供的一种sdn控制器的结构图;

图5为本发明的实施例提供的一种路由器的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例描述的系统架构以及业务场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。

下面结合具体实施例对上述方法进行详细描述。参照图1所示,本发明的实施例应用于如下网络系统,该网络系统包括:sdn控制器以及至少一个sdn交换机以及路由器;其中sdn控制器用于控制至少一个sdn交换机的数据转发,至少一个sdn交换机中的任一sdn交换机连接终端主机(例如个人电脑pc),至少一个sdn交换机中的任一sdn交换机连接路由器。其中图1中仅示出了两个sdn交换机,可以理解的是,sdn控制器也可以控制多个sdn交换机之间的数据转发,因此该网络系统也可以包含多个sdn交换机,在具体应用场景中终端主机和路由器可以连接同一个sdn交换机或者不同的sdn交换机。

基于上述的网络系统,本申请的基本原理为:接入sdn网络的路由器配置一个真实ip地址,并且打开路由器的邻居发现功能,例如:ndsp(neighbordevicesearchprotocol,邻居设备搜索协议)或者cdp(ciscodiscoveryprotocol,思科发现协议),通过在路由器特征信息中携带约定标识路由器的特征码,用以标识当前设备为路由器。在sdn控制器向sdn交换机下发特征流表,以获取路由器发出来的ndsp或者cdp特征报文,对特征报文进行识别并解析,获取该特征报文所携带的路由器特征信息,将该路由器特征信息与此路由器发出的arp报文进行整合,最终形成路由器的节点,并将此信息写入sdn控制器后台数据库,从而完成路由器的发现与识别。此外,sdn控制器能够向目标路由器发送探测报文,以发现目标路由器所在链路异常,或者发现目标路由器为异常网络节点,以对其进行老化处理。该方案中采用路由器的邻居发现功能(ndsp或者cdp),无需在路由器上额外新增功能或者协议,即可完成对路由器的精准发现。

参照图2所示,本发明的实施例提供一种路由器发现方法,参照图2所示,包括如下步骤:

s101、sdn控制器向sdn交换机下发特征流表,其中特征流表用于指示sdn交换机将路由器发送的特征报文发送至sdn控制器。

s102、路由器设置自身ip地址并开启邻居发现功能,生成特征报文,特征报文为ndsp报文或者cdp报文。

其中,特征报文携带路由器特征信息,例如,路由器特征信息包括包括标识路由器的特征码,例如以“router”为特征码,sdn控制器可以通过该标识码识别该路由器。路由器的特征信息还可以包括路由器名称、mac地址、路由器接入端口号,关于路由器特征信息在本发明中不作限定,只要能够实现sdn控制器识别出路由器并对路由器的拓扑发现和控制管理即可。

s103、sdn交换机接收路由器发送的特征报文,并根据特征流表将特征报文转发至sdn控制器。

s104、sdn控制器获取路由器通过sdn交换机发送的arp报文。

s105、sdn控制器根据特征报文和arp报文获取路由器的节点信息。

sdn控制器可以根据特征报文获取路由器的特征信息,并根据arp报文获取路由器的ip地址。所以sdn控制器根据特征报文和arp报文获取路由器的节点信息。路由器的节点信息包括路由器的ip地址和路由器的特征信息。

在步骤s105之后,sdn控制器存储路由器的节点信息至数据库,从而完成对路由器的发现功能。此外,由于sdn交换机可能存在路由器的注销或重新发布或者信息变更(例如:路由器ip地址的更换、路由器名称的变更以及路由器接入端口的变更等等),因此,在步骤s105之后还包括:sdn控制器间隔预定时长后更新路由器的节点信息。这里sdn控制器更新路由器的节点信息指重新执行上述步骤s101-s105的过程,完成对新接入的路由器的节点信息。

在上述方案中,sdn控制器向sdn交换机下发特征流表,其中特征流表用于指示sdn交换机将路由器发送的特征报文发送至sdn控制器;sdn交换机接收路由器发送的特征报文,并根据特征流表将特征报文转发至sdn控制器,特征报文携带路由器特征信息;sdn控制器获取路由器通过sdn交换机发送的arp报文;sdn控制器根据特征报文和arp报文获取路由器的节点信息。通过上述方法,sdn控制器最终可以获取路由器的节点信息,由于路由器特征信息包含标识路由器的特征码,因此sdn控制器能够发现sdn网络中的路由器,sdn控制器的拓扑展示能够准确反映真实物理网络拓扑,为网络业务部署提供方便。

此外,参照图3所示,在完成路由器的发现过程后,本发明的实施例还提供对路由器的探测方法,包括如下步骤:

s201、sdn控制器在数据库获取目标路由器的目标ip地址。

s202、sdn控制器根据目标ip地址向目标路由器发送探测报文。

其中,sdn控制器可以周期性的从数据库获取目标路由器的目标ip地址,并且周期性的按照目标ip地址向目标路由器通过packet-out形式发出探测报文。

s203、若sdn控制器接收到目标路由器对探测报文的应答,则根据应答获取目标路由器的时间戳信息。

s204、若sdn控制器确定时间戳信息与当前时间之间的时间间隔超过时间阈值,则确定目标路由器为异常网络节点。

这样,当确定目标路由器为异常网络节点时,sdn控制器可以进一步判断该目标路由器是否满足老化处理条件,例如:该路由器延时超过预定值时,删除该路由器或者更新该路由器的相关信息。否则,sdn控制器确定时间戳信息与当前时间之间的时间间隔未超过时间阈值,则确定目标路由器正常。

s205、若sdn控制器未接收到目标路由器对探测报文的应答,则确定目标路由器的链路异常。

经过上述步骤s201-205实现了路由器的探测为网络业务部署提供了便利。

参照图4所示,本发明的实施例提供一种sdn控制器,用于实施上述的方法实施例,该sdn控制器包括:

发送单元41,用于向sdn交换机下发特征流表,其中所述特征流表用于指示所述sdn交换机将路由器发送的特征报文发送至所述sdn控制器;

接收单元42,用于接收所述sdn交换机根据所述特征流表转发的所述路由器发送的特征报文,所述特征报文携带路由器特征信息,所述路由器特征信息包括标识路由器的特征码;

接收单元42,还用于获取路由器通过sdn交换机发送的arp报文;

处理单元43,用于根据所述接收单元42接收的特征报文和arp报文获取路由器的节点信息,路由器的节点信息包括:ip地址、路由器特征信息。

处理单元43可以根据特征报文获取路由器的特征信息,并根据arp报文获取路由器的ip地址。

可选的,处理单元43还用于间隔预定时长后更新路由器的节点信息。

其中,路由器的节点信息存储于数据库;所述sdn控制器还包括:获取单元44,用于在数据库获取目标路由器的目标ip地址;发送单元41,还用于根据获取单元44获取的目标ip地址向所述目标路由器发送探测报文;处理单元43,还用于若接收单元42接收到目标路由器对所述探测报文的应答,则根据应答获取目标路由器的时间戳信息;处理单元43,还用于若确定时间戳信息与当前时间之间的时间间隔超过时间阈值,则确定目标路由器为异常网络节点。

可选的,处理单元43,还用于若所述接收单元42未接收到所述目标路由器对所述探测报文的应答,则确定所述目标路由器的链路异常。

参照图5所示,本发明的实施例提供一种路由器,用于实施上述的方法实施例,该路由器包括:

发送单元51,用于通过sdn交换机向sdn控制器发送特征报文,特征报文携带路由器特征信息,其中路由器名称包含标识路由器的特征码;

发送单元51,还用于通过sdn交换机向sdn控制器发送arp报文。

可选的,还包括,处理单元52,用于设置自身ip地址并开启邻居发现功能,生成特征报文,特征报文为:ndsp报文或者cdp报文。

在上述方案中,sdn控制器向sdn交换机下发特征流表,其中特征流表用于指示sdn交换机将路由器发送的特征报文发送至sdn控制器;sdn交换机接收路由器发送的特征报文,并根据特征流表将特征报文转发至sdn控制器,特征报文携带路由器特征信息;sdn控制器获取路由器通过sdn交换机发送的arp报文;sdn控制器根据特征报文和arp报文获取路由器的节点信息。通过上述方法,sdn控制器最终可以获取路由器的节点信息,由于路由器特征信息中包含标识路由器的标识码,因此sdn控制器能够发现sdn网络中的路由器,sdn控制器的拓扑展示能够准确反映真实物理网络拓扑,为网络业务部署提供方便。

此外,还提供一种计算可读媒体(或介质),包括在被执行时进行上述实施例中的方法的操作的计算机可读指令。

另外,还提供一种计算机程序产品,包括上述计算机可读媒体(或介质)。

应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文全称:read-onlymemory,英文简称:rom)、随机存取存储器(英文全称:randomaccessmemory,英文简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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