首页> 中国专利> 网络拓扑确定方法和装置、集中式网络状态信息存储设备

网络拓扑确定方法和装置、集中式网络状态信息存储设备

摘要

本发明公开了一种网络拓扑确定方法和装置、集中式网络状态信息存储设备,属于通信技术领域。所述方法包括:获取第一网络状态信息,第一网络状态信息包括第一交换设备的设备信息和它们之间的链路信息、与第一交换设备连接的非第一集中式网络状态信息存储设备控制的第二交换设备的设备信息、以及第一交换设备与各自相连的所述第二交换设备之间的链路信息;接收第二集中式网络状态信息存储设备发送的第二网络状态信息;根据第一网络状态信息和所述第二网络状态信息,确定第一集中式网络状态信息存储设备所属的管理域或者自治系统的网络拓扑。本发明通过确定同一管理域或者自治系统内的网络拓扑,有利于不同设备间的资源的统一调度。

著录项

  • 公开/公告号CN105637806A

    专利类型发明专利

  • 公开/公告日2016-06-01

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201480038249.X

  • 发明设计人 郑秀丽;

    申请日2014-09-23

  • 分类号H04L12/24(20060101);

  • 代理机构11138 北京三高永信知识产权代理有限责任公司;

  • 代理人张耀光

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-18 15:42:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-05-10

    授权

    授权

  • 2016-06-29

    实质审查的生效 IPC(主分类):H04L12/24 申请日:20140923

    实质审查的生效

  • 2016-06-01

    公开

    公开

说明书

技术领域

本发明涉及通信技术领域,特别涉及一种网络拓扑确定方法和装置、集中式网络状态信息存储设备。

背景技术

随着软件定义网络(Software Defined Network,简称“SDN”)理念的不断发展,开放流(OpenFlow)网络的发展步伐也在不断加快。OpenFlow网络的通信设备主要包括用于数据转发的开放流交换机(OpenFlow Switch,简称“OFS”)和用于对全网进行逻辑集中控制的开放流控制器(OpenFlow Controller,简称“OFC”)。在互联网中,一个自治系统(Autonomous System,AS)是一个有权自主决定在本系统中应采用何种路由协议的小型单位。这个网络单位可以是一个简单的网络也可以是一个由一个或多个普通的网络管理员来控制的网络群体,它是一个单独的可管理的网络单元(如一所大学、一个企业)。一个大的运营商可能拥有多个自治系统,如无线网络自治系统、IP核心网自治系统或IP接入网络自治系统等。在本发明中,同一管理域指一个或多个属于同一运营商或利益共同体的一个或多个自治系统。也即在同一个管理域内,可能存在多个OpenFlow网络共存或OpenFlow网络与非OpenFlow网络(例如,传统IP(Internet Protocol,简称“IP”)网络等)共存的场景。那么,如何实时获取混合网络拓扑,以统一调度管理域内的网络资源,保证服务质量(Quality of Service,简称“QoS”)成为了重要的研究课题。

现有技术中,提供了一种实现对等的(Peer)控制器(例如OFC)之间的网络状态信息的调度的方法,其是通过WE Bridge(West-East Bridge,东西桥)机制,采用发布和订阅(publish/subscribe)系统传递更新消息,以实现每个Peer控制器的同步,且Peer控制器之间可以采用拓扑恢复(VIEW-REFRESH)消息获取其他控制器管理的网络拓扑。

在实现本发明的过程中,发明人发现现有技术至少存在以下问题:

由于该方法是通过新增VIEW-REFRESH消息实现,而该VIEW-REFRESH 消息的相关规定并未标准化,故目前支持边界网关协议标准格式的设备无法识别和利用该消息,且该方法只适用于单一OpenFlow网络内或者只有多个OpenFlow网络的管理域的网络拓扑的确定,无法确定OpenFlow网络与非OpenFlow网络共存的管理域内的网络拓扑。

发明内容

为了解决现有技术中的上述问题,本发明实施例提供了一种网络拓扑确定方法和装置、集中式网络状态信息存储设备。所述技术方案如下:

第一方面,本发明实施例提供了一种网络拓扑确定方法,所述方法包括:

获取第一网络状态信息,所述第一网络状态信息包括第一交换设备的设备信息、所述第一交换设备之间的链路信息、与所述第一交换设备连接的第二交换设备的设备信息、以及所述第一交换设备与各自相连的所述第二交换设备之间的链路信息,所述第一交换设备为第一集中式网络状态信息存储设备控制或关联的交换设备,所述第二交换设备为非所述第一集中式网络状态信息存储设备控制或关联的交换设备;

接收第二集中式网络状态信息存储设备发送的第二网络状态信息,所述第二网络状态信息包括第三交换设备的设备信息、所述第三交换设备之间的链路信息、与所述第三交换设备连接的第四交换设备的设备信息、以及所述第三交换设备与各自相连的所述第四交换设备之间的链路信息,所述第三交换设备为所述第二集中式网络状态信息存储设备控制或关联的交换设备,所述第四交换设备为非所述第二集中式网络状态信息存储设备控制或关联的交换设备,所述第二网络状态信息承载于边界网关协议的更新消息(即BGP Update消息)的网络层可达信息字段中;

根据所述第一网络状态信息和所述第二网络状态信息,确定所述第一集中式网络状态信息存储设备所属的管理域或者自治系统的网络拓扑;

其中,所述第一集中式网络状态信息存储设备和所述第二集中式网络状态信息存储设备中至少一个为开放流OpenFlow控制器,所述第一集中式网络状态信息存储设备和所述第二集中式网络状态信息存储设备分别属于同一管理域内的不同自治系统,或者,所述第一集中式网络状态信息存储设备和所述第二集中式网络状态信息存储设备属于同一管理域的同一自治系统。

结合第一方面,在第一方面的第一种可能的实现方式中,所述第一集中式网络状态信息存储设备和所述第二集中式网络状态存储设备为支持边界网关协议的设备,所述支持边界网关协议的设备包括开放流控制器、路由服务器、路由反射器、流量工程数据库服务器或网络管理系统服务器。

结合第一方面,在第一方面的第二种可能的实现方式中,所述网络层可达信息字段包括链路状态网络层可达信息字段,所述链路状态网络层可达信息字段用于表明所述网络层可达信息的来源,所述来源包括多种版本的OpenFlow协议。

结合第一方面,在第一方面的第三种可能的实现方式中,在所述接收第二集中式网络状态信息存储设备发送的第二网络状态信息之前,所述方法还包括:

接收所述第二集中式网络状态信息存储设备发送的第一打开消息(即BGP Open消息),所述第一打开消息包括第一角色信息字段和第一管理域信息字段,所述第一角色信息字段用于承载所述第二集中式网络状态信息存储设备的设备信息,所述第一管理域信息用于承载所述第二集中式网络状态信息存储设备所属的管理域;

检测所述第一角色信息字段的取值和所述第一管理域信息字段的取值是否合法;

当所述第一角色信息字段的取值和所述第一管理域信息字段的取值均合法时,向所述第二集中式网络状态信息存储设备发送第二打开消息,所述第二打开消息包括第二角色信息字段和第二管理域信息字段,所述第二角色信息字段用于承载所述第一集中式网络状态信息存储设备的设备信息,所述第二管理域信息字段用于承载所述第一集中式网络状态信息存储设备所属的管理域。

结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述方法还包括:

当所述第一角色信息字段的取值或所述第一管理域信息字段的取值不合法时,向所述第二集中式网络状态信息存储设备发送通知消息,所述通告消息用于表明所述第一打开消息错误。

结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述通知消息还携带所述第一打开消息错误的原因,所述第一打开消息错误的原因包括非法角色和非法管理域,所述非法角色用于表明所述第二集 中式网络状态信息存储设备的设备信息不合法,所述非法管理域用于表明所述第二集中式网络状态信息存储设备不在所述第一集中式网络状态信息存储设备所属的管理域内。

结合第一方面的第六种可能的实现方式,所述第一交换设备与所述第二交换设备之间的链路信息是通过链路发现消息确定的,所述第三交换设备与所述第四交换设备之间的链路信息是通过链路发现消息确定的。

结合第一方面的第七种可能的实现方式,所述根据所述第一网络状态信息和所述第二网络状态信息,确定所述第一集中式网络状态信息存储设备所属的管理域或者自治系统的网络拓扑,包括:

根据所述第一网络状态信息和所述第二网络状态信息中各交换设备的设备信息,确定所述第一集中式网络状态信息存储设备所属的管理域或者自治系统中各交换设备间的链路信息,以确定所述第一集中式网络状态信息存储设备所属的管理域或者自治系统的网络拓扑,所述设备信息包括设备标识和端口号。

第二方面,本发明实施例提供了一种网络拓扑确定装置,所述装置包括:

获取模块,用于获取第一网络状态信息,所述第一网络状态信息包括第一交换设备的设备信息、所述第一交换设备之间的链路信息、与所述第一交换设备连接的第二交换设备的设备信息、以及所述第一交换设备与各自相连的所述第二交换设备之间的链路信息,所述第一交换设备为第一集中式网络状态信息存储设备控制或关联的交换设备,所述第二交换设备为非所述第一集中式网络状态信息存储设备控制或关联的交换设备;

接收模块,用于接收第二集中式网络状态信息存储设备发送的第二网络状态信息,所述第二网络状态信息包括第三交换设备的设备信息、所述第三交换设备之间的链路信息、与所述第三交换设备连接的第四交换设备的设备信息、以及所述第三交换设备与各自相连的所述第四交换设备之间的链路信息,所述第三交换设备为所述第二集中式网络状态信息存储设备控制或关联的交换设备,所述第四交换设备为非所述第二集中式网络状态信息存储设备控制或关联的交换设备,所述第二网络状态信息承载于边界网关协议的更新消息的网络层可达信息字段中;

确定模块,用于根据所述第一网络状态信息和所述第二网络状态信息,确 定所述第一集中式网络状态信息存储设备所属的管理域或者自治系统的网络拓扑;

其中,所述第一集中式网络状态信息存储设备和所述第二集中式网络状态信息存储设备中至少一个为开放流OpenFlow控制器,所述第一集中式网络状态信息存储设备和所述第二集中式网络状态信息存储设备分别属于同一管理域内的不同自治系统,或者,所述第一集中式网络状态信息存储设备和所述第二集中式网络状态信息存储设备属于同一管理域的同一自治系统。

结合第二方面的第一种可能的实现方式,所述第一集中式网络状态信息存储设备和所述第二集中式网络状态存储设备为支持边界网关协议的设备,所述支持边界网关协议的设备包括开放流控制器、路由服务器、路由反射器、流量工程数据库服务器或网络管理系统服务器。

结合第二方面的第二种可能的实现方式,所述网络层可达信息字段包括链路状态网络层可达信息字段,所述链路状态网络层可达信息字段用于表明所述网络层可达信息的来源,所述来源包括多种版本的OpenFlow协议。

结合第二方面的第三种可能的实现方式,所述接收模块还用于接收所述第二集中式网络状态信息存储设备发送的第一打开消息,所述第一打开消息包括第一角色信息字段和第一管理域信息字段,所述第一角色信息字段用于承载所述第二集中式网络状态信息存储设备的设备信息,所述第一管理域信息用于承载所述第二集中式网络状态信息存储设备所属的管理域;

所述设备还包括:检测模块,用于检测所述第一角色信息字段的取值和所述第一管理域信息字段的取值是否合法;

所述设备还包括:发送模块,用于当所述第一角色信息字段的取值和所述第一管理域信息字段的取值均合法时,向所述第二集中式网络状态信息存储设备发送第二打开消息,所述第二打开消息包括第二角色信息字段和第二管理域信息字段,所述第二角色信息字段用于承载所述第一集中式网络状态信息存储设备的设备信息,所述第二管理域信息字段用于承载所述第一集中式网络状态信息存储设备所属的管理域。

结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述发送模块还用于当所述第一角色信息字段的取值或所述第一管理域信息字段的取值不合法时,向所述第二集中式网络状态信息存储设备发送通 知消息,所述通知消息用于表明所述第一打开消息错误。

结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述通知消息还携带所述第一打开消息错误的原因,所述第一打开消息错误的原因包括非法角色和非法管理域,所述非法角色用于表明所述第二集中式网络状态信息存储设备的设备信息不合法,所述非法管理域用于表明所述第二集中式网络状态信息存储设备不在所述第一集中式网络状态信息存储设备所属的管理域内。

结合第二方面的第六种可能的实现方式,所述第一交换设备与所述第二交换设备之间的链路信息是通过链路发现消息确定的,所述第三交换设备与所述第四交换设备之间的链路信息是通过链路发现消息确定的。

结合第二方面的第七种可能的实现方式,所述确定模块还用于根据所述第一网络状态信息和所述第二网络状态信息中各交换设备的设备信息,确定所述第一集中式网络状态信息存储设备所属的管理域或者自治系统中各交换设备间的链路信息,以确定所述第一集中式网络状态信息存储设备所属的管理域或者自治系统的网络拓扑,所述设备信息包括设备标识和端口号。

第三方面,本发明实施例提供了一种应用于集中式网络状态信息存储设备,所述设备包括:

处理器、存储器、总线和通信接口;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算机运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述计算机执行如第一方面任意一项所述的方法。

本发明实施例提供的技术方案带来的有益效果是:

通过获取第一集中式网络状态信息存储设备自身的第一网络状态信息和接收第二集中式网络状态信息存储设备发送的第二网络状态信息,来确定第一集中式网络状态信息存储设备所属的管理域或者网络的网络拓扑,有利于同一管理域内或者同一网络内的不同设备间的资源的统一调度,且第二网络状态信息承载于边界网关协议的更新消息的网络层可达信息字段中,所有支持边界网关协议的设备均可以通过更新消息获取第二网络状态信息,以确定其所属的管理域或者网络的网络拓扑,通用性好。

附图说明

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

图1本发明实施例一提供的一种网络拓扑确定方法的流程图;

图2本发明实施例提供的一种网络拓扑确定方法的应用场景图;

图2a是本发明实施例提供的OpenFlow网络与非OpenFlow网络互连的示意图;

图3本发明实施例二提供的一种网络拓扑确定方法的流程图;

图3a是本发明实施例提供的BGP的消息头的格式的示意图;

图3b是图3a中的BGP的消息中的打开Open消息的格式的示意图;

图3c是图3a中的BGP的消息中的通告Notification消息的格式的示意图;

图3d是图3a中的BGP的消息中的更新Update消息的格式的示意图;

图3e是图3d中的更新Update消息中NLRI格式的示意图;

图3f是图3e中的NLRI格式中的节点(Node)NLRI格式的示意图;

图3g是图3e中的NLRI格式中的链路(Link)NLRI格式的示意图;

图3h是图3e中的NLRI格式中的前缀(Prefix)NLRI格式的示意图;

图4本发明实施例提供的另一种网络拓扑确定方法的应用场景图;

图5本发明实施例三提供的一种网络拓扑确定方法的流程图;

图6本发明实施例提供的又一种网络拓扑确定方法的应用场景图;

图7本发明实施例四提供的一种网络拓扑确定方法的流程图;

图8是本发明实施例提供的一种网络拓扑确定装置的结构示意图;

图9是本发明实施例提供的一种网络拓扑确定装置的结构示意图;

图10是本发明实施例提供的一种集中式网络状态信息存储设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明 实施方式作进一步地详细描述。

本发明实施例适用的场景包括但不限于:一个管理域中包括OpenFlow网络和非OpenFlow网络的情景(见实施例二)、一个管理域中包括多个OpenFlow网络的情景(见实施例三)、一个自治系统中包括OpenFlow控制器和除了OpenFlow控制器外的其他集中式网络状态信息存储设备(例如流量工程数据库(Traffic Engineering Database,简称“TED”)等)的情景(见实施例四)。其中,一个OpenFlow网络或一个非OpenFlow网络可以看作一个自治系统。

实施例一

本发明实施例提供了一种网络拓扑确定方法,该方法可以由第一集中式网络状态信息存储设备执行,参见图1,该方法包括:

步骤101:获取第一网络状态信息,第一网络状态信息包括第一交换设备的设备信息、第一交换设备之间的链路信息、与第一交换设备连接的第二交换设备的设备信息、以及第一交换设备与各自相连的第二交换设备之间的链路信息,第一交换设备为第一集中式网络状态信息存储设备控制或关联的交换设备,第二交换设备为非第一集中式网络状态信息存储设备控制或关联的交换设备。

步骤102:接收第二集中式网络状态信息存储设备发送的第二网络状态信息,第二网络状态信息包括第三交换设备的设备信息、第三交换设备之间的链路信息、与第三交换设备连接的第四交换设备的设备信息、以及第三交换设备与各自相连的第四交换设备之间的链路信息,第三交换设备为第二集中式网络状态信息存储设备控制或关联的交换设备,第四交换设备为非第二集中式网络状态信息存储设备控制或关联的交换设备,第二网络状态信息承载于边界网关协议的更新消息的网络层可达信息字段中。

步骤103:根据第一网络状态信息和第二网络状态信息,确定第一集中式网络状态信息存储设备所属的管理域或者自治系统的网络拓扑。

其中,第一集中式网络状态信息存储设备和第二集中式网络状态信息存储设备中至少一个为OpenFlow控制器,第一集中式网络状态信息存储设备和第二集中式网络状态信息存储设备分别属于同一管理域内的不同自治系统(例如,前述一个管理域中包括OpenFlow网络和非OpenFlow的情景和前述一个管理域中包括多个OpenFlow网络的情景),或者,第一集中式网络状态信息存储设备 和第二集中式网络状态信息存储设备属于同一管理域的同一自治系统(例如,一个自治系统中包括OFC和除了OFC外的其他集中式网络状态信息存储设备(例如TED服务器)等)的情景)。

实现时,以第一集中式网络状态信息存储设备和第一交换设备为例对控制和关联进行说明,第一集中式网络状态信息存储设备控制的第一交换设备是指第一集中式网络状态信息存储设备可以通过指令等控制第一交换设备的数据转发和路由行为,并能获取第一交换设备的状态信息等,而第一集中式网络状态信息存储设备关联的第一交换设备是指第一集中式网络状态信息存储设备可以读取第一交换设备存储的数据,但是无法对第一交换设备的数据转发和路由行为等进行控制。进一步地,当第一集中式网络状态信息存储设备为OpenFlow控制器时,第一交换设备为OpenFlow控制器控制的所有OpenFlow交换机,当第一集中式网络状态信息存储设备为非OpenFlow控制器时,第一交换设备为非OpenFlow控制器关联的所有的路由器或交换机。第一交换设备之间的链路信息是直接相互连接的第一交换设备之间形成的链路信息,与第一交换设备相连的第二交换设备也是与第一交换设备直接相连的交换设备。

实现时,第一集中式网络状态信息存储设备和第二集中式网络状态存储设备为支持边界网关协议(Border Gateway Protocol,简称“BGP”)的设备,支持边界网关协议的设备包括OpenFlow控制器、路由服务器(Router Server,简称“RS”)、路由反射器(Router Reflector,简称“RR”)、TED服务器或网络管理系统(Network Management System,简称“NMS”)服务器。需要说明的是,第一集中式网络状态信息存储设备和第二集中式网络状态存储设备是指承载路由服务应用、路由反射应用、TED、网络管理系统、OpenFlow控制器应用等的物理设备,即路由服务应用、路由反射应用、TED、网络管理系统、OpenFlow控制器应用等均支持支持边界网关协议。

本发明实施例通过获取第一集中式网络状态信息存储设备自身的第一网络状态信息和接收第二集中式网络状态信息存储设备发送的第二网络状态信息,来确定第一集中式网络状态信息存储设备所属的管理域或者自治系统的网络拓扑,有利于同一管理域内或者同一自治系统内的不同设备间的资源的统一调度,且第二网络状态信息承载于边界网关协议的更新消息的网络层可达信息字段中,所有支持边界网关协议的集中式网络状态信息存储设备均可以通过更新消 息获取第二网络状态信息,以确定其所属的管理域或者网络的网络拓扑,通用性好。

实施例二

为了更好的理解本发明实施例二提供的技术方案,下面先结合图2对实施例二的应用场景(即一个管理域中包括OpenFlow网络和非OpenFlow网络)作简单的介绍。图2显示了一个管理域的网络架构,参见图2,该管理域包括使能(Enabled)了路径计算单元通信协议(Path Computation Element communication Protocol,简称“PCEP”)的网络1、传统IP网络2和OpenFlow网络3三个网络,使能了PCEP的网络1和IP网络2即为前述非OpenFlow网络。使能PCEP的网络1中的TED 11、IP网络2中的网络管理系统(Network Management System,简称“NMS”)21以及OpenFlow网络3中的OpenFlow控制器31之间可以相互通信,其中,TED 11、NMS 21和OpenFlow控制器31均用于对各自所属网络的资源进行集中控制。在实际应用中,图2所示的场景以图2a所示的场景(即一个管理域中包括一个非OpenFlow网络和两个OpenFlow网络,该非OpenFlow网络分别与OpenFlow网络互联,且两个OpenFlow网络之间也互联)出现,参见图2,该管理域内包括第一OpenFlow网络1、IP网络2和第二OpenFlow网络3,第一OpenFlow网络1包括OpenFlow控制器11和位于第一OpenFlow网络1的一侧的边缘的OpenFlow交换机12、13,OpenFlow控制器11用于OpenFlow交换机12、13。IP网络2包括TED21和位于IP网络2的两侧的边缘的路由器22、23、24、25,TED21用于控制路由器22、23、24、25。第二OpenFlow网络3包括OpenFlow控制器31、OpenFlow交换机32、33,OpenFlow控制器31用于控制OpenFlow交换机32、33,并且,OpenFlow交换机12、13与路由器22、23两两相互连接形成四条链路,路由器24、25与OpenFlow交换机32、33两两相互连接形成四条链路。

实现时,第一集中式网络状态信息存储设备可以为OpenFlow控制器,第二集中式网络状态信息为非OpenFlow网络中的TED或NMS;或者第一集中式网络状态信息存储设备为非OpenFlow网络中的TED或NMS,第二集中式网络状态信息为OpenFlow控制器。为了方便描述,本实施例中,均以第一集中式网络状态信息存储设备为OpenFlow控制器,第二集中式网络状态信息存储设备为非 OpenFlow网络中的TED为例,进行相关的说明。

基于图2和图2a所示架构,本发明实施例提供了一种网络拓扑确定方法,参见图3,该方法包括:

步骤301:第一集中式网络状态信息存储设备控制的边缘第一交换设备与第二集中式网络状态信息存储设备关联的边缘第三交换设备之间通过链路发现消息,以确定两者之间的链路信息。

其中,第一集中式网络状态信息存储设备与第二集中式网络状态信息存储设备可以通过链路层发现协议(Link Layer Discovery Protocol,简称“LLDP”)消息的传送获取两者之间的链路信息。具体地,第一交换设备是指OpenFlow网络的边缘的OpenFlow交换机(例如OpenFlow交换机12),第三交换设备是指IP网络的边缘的路由器(例如路由器22)。第三交换设备可以解析第一交换设备发送的反向链路信息,以获取第一交换设备与第三交换设备之间的链路信息,并且进行保存,第二集中式网络状态信息存储设备可以直接读取第三交换设备存储的链路信息。

具体地,结合图2a,以TED(即流量工程数据库)21和OpenFlow控制器11之间发送链路发现消息为例,TED 21所属的IP网络2的边缘的路由器22会定时向与其直接相连的设备(例如OpenFlow交换机12和OpenFlow交换机13)广播LLDP消息,OpenFlow交换机12和OpenFlow交换机13将该LLDP消息发送给OpenFlow控制器11,OpenFlow控制器11构造反向链路发现消息后,通过OpenFlow交换机12或OpenFlow交换机13再发送至路由器22,路由器22解析该反向链路发现消息后,得到IP网络与OpenFlow网络边缘的链路信息,并进行存储(例如存储在边缘OpenFlow(Edge_OF)管理信息库(Management Information Base,简称“MIB”)即Edge_OF MIB中),TED 21可以在MIB中直接读取IP网络与OpenFlow网络边缘的链路信息。

步骤302:第一集中式网络状态信息存储设备获取第一网络状态信息。

其中,第一网络状态信息包括第一集中式网络状态信息存储设备控制的第一交换设备的设备信息、第一交换设备之间的链路信息、与第一交换设备连接的第二交换设备的设备信息、以及第一交换设备与各自相连的第二交换设备之间的链路信息,第二交换设备为非第一集中式网络状态信息存储设备控制的交换设备。

在本实施例中,第一交换设备为OpenFlow网络内部的OFS(例如,图2a中的OpenFlow交换机13),第一交换设备之间的链路信息为OpenFlow网络内部的OFS(即第一交换设备)之间的链路信息,第二交换设备为非OpenFlow网络中与OpenFlow网络中的第一交换设备直连的交换设备(例如,图2a中的路由器22、23)。具体地,OpenFlow控制器可以根据自身内部所采用的具体协议的相关规则来获取OFS的设备信息和OFS之间的链路信息,即本实施中的OpenFlow网络自身的内部网络状态信息,并且OpenFlow控制器可以构造反向链路发现消息,确定与第一交换设备连接的第二交换设备的设备信息、以及第一交换设备与各自相连的第二交换设备之间的链路信息。

实现时,OpenFlow控制器可以将第一交换设备的设备信息、第一交换设备之间的链路信息、与第一交换设备连接的第二交换设备的设备信息、以及第一交换设备与各自相连的第二交换设备之间的链路信息存储在本地OpenFlow管理信息库(Local_OF MIB)中。

步骤303:第二集中式网络状态信息存储设备获取第二网络状态信息。

该第二网络状态信息包括第二集中式网络状态信息存储设备控制的第三交换设备的设备信息、第三交换设备之间的链路信息、与第三交换设备连接的第四交换设备的设备信息、以及第三交换设备与各自相连的第四交换设备之间的链路信息,第四交换设备为非第二集中式网络状态信息存储设备控制的交换设备。

同样地,TED也可以根据自身内部所采用的具体协议的相关规则来获取第三交换设备的设备信息和第三交换设备之间的链路信息,确定与第三交换设备连接的第四交换设备的设备信息、以及第三交换设备与各自相连的第四交换设备之间的链路信息。

步骤304:第一集中式网络状态信息存储设备接收第二集中式网络状态信息存储设备发送的第一打开(Open)消息。

该第一打开消息中可以包括第一角色信息和第一管理域信息,第一角色信息用于表明第二集中式网络状态信息存储设备的设备信息,第一管理域信息用于表明第二集中式网络状态信息存储设备所属的管理域。实现时,第一角色信息和第一管理域信息可以存储在第一打开消息的可选参数字段中。

其中,第三交换设备由第二集中式网络状态信息存储设备控制,可以是路 由器等。具体地,该第一打开消息的格式与BGP中的打开Open消息的格式相同,即第一打开消息通过扩展现有的BGP Open消息实现。

下面结合图3a和图3b说明BGP消息的结构与类型。参见图3a,BGP消息头包括标识、长度和类型三个字段,标识(Mark)字段用于探测对等端与本端是否同步;长度(Length)字段用于表示BGP消息头的字节长度;类型(Type)字段用于表明消息头中的消息类型,例如,Type=1表示打开(open)消息,Type=2表示更新(Update)消息,Type=3表示通告(Notification)消息等。

当Type=1时,表明该BGP消息为Open消息,参见图3b,打开(open)消息包括版本(Version)、拥有的自制系统(My Autonomous System)、保留时间(Hold Time)、BGP身份(Identifier)、可选最大长度(Opt Parm Len)和可选参数(Optional Parameters)五个字段。其中,版本字段用于承载运行的BGP协议的版本,可选参数字段可以对BGP协议进行扩展,其长度是可变的。

在本实施例中,可以通过在打开(Open)消息中的可选参数字段中增加角色信息字段和管理域信息字段,以承载第一集中式网络状态信息存储设备或第二集中式网络状态信息存储设备的设备信息和管理域。

具体地,角色信息字段和管理域信息字段均遵守BGP Open消息参数格式,包括能力编码(Capability Code)、能力长度(Capability Length)和能力值(Capability Value)三个字段。通常角色信息字段中的能力长度字段可以设有4个字节,管理信息字段中的能力长度字段可以设有8个字节。角色信息字段中的能力值字段可以只选用部分,其余部分保留,其中的能力值字段取不同的值可以对应不同的设备,而管理域信息中的能力值字段的值通常采用全球唯一标识表示,该全球唯一标识可以人为进行设定。实现时,角色信息和管理域信息可以采用任意两个未被使用的可选参数的值,例如,可以用数值10表示角色信息,数值11表示管理域信息。作为一种举例,角色信息字段中的能力值字段取不同的值对应不同的设备信息可以是:角色信息字段中的能力值字段的值为1时,表示OFC,角色信息字段中的能力值字段的值为2时,表示路由服务器,角色信息字段中的能力值字段的值为3时,表示路由反射器,角色信息字段中的能力值字段的值为4时,表示流量工程数据库服务器等等。

容易理解地,在实际应用中,可以根据实际需要为设备设置不同的值,以对应不同的设备信息。所有支持边界网关协议的设备都应当别视为可以在角色 信息中增加相应的角色信息字段的取值以记录该设备的信息。具体地,第一集中式网络状态信息存储设备和第二集中式网络状态存储设备为支持边界网关协议的设备,支持边界网关协议的设备包括但不限于开放流控制器、路由服务器、路由反射器、流量工程数据库服务器或网络管理系统服务器。

需要说明的是,步骤302、步骤303和步骤304的执行没有先后顺序。

步骤305:第一集中式网络状态信息存储设备检测第一打开消息中的第一角色信息字段的值和第一管理域信息字段的值是否合法。如果是,执行步骤306,否则,执行步骤307。

在本实施例中,检测第一角色信息字段的值和第一管理域信息字段的值是否合法,可以包括:

判断第一角色信息字段中的能力值字段的值是否与预设值匹配;

当第一角色信息字段中的能力值字段的值与预设值匹配时,判定第一角色信息字段的值合法。

当第一角色信息字段中的能力值字段的值与预设值不匹配时,判定第一角色信息字段的值不合法。

例如,OpenFlow控制器接收到一条第一打开消息(其中能力值字段的值为4)后,检测后发现其为BGP协议中的预设值,就认为该第一角色信息字段的值合法。如果,OpenFlow控制器接收到另一条第一打开消息(其中能力值字段的值为8)后,检测后发现8在BGP协议中不是预设值,此时就认为该第一角色信息字段的值不合法。

检测第一管理域信息字段的值是否合法,可以包括:

判断第二集中式网络状态信息存储设备所属的管理域与第一集中式网络状态信息存储设备所属的管理域是否相同;

当第二集中式网络状态信息存储设备所属的管理域与第一集中式网络状态信息存储设备所属的管理域相同时,判定第一管理域信息合法。

在本实施例中,当第一打开消息中的管理域信息字段中的能力值字段的值(即全球唯一标识)与第一集中式网络状态信息存储设备所属的管理域的全球唯一标识一致时,判定第一管理域信息字段的值是合法,否则,判定其不合法。

步骤306:第一集中式网络状态信息存储设备向第二集中式网络状态信息存储设备发送第二打开消息。

该第二打开消息中的可选参数字段可以包括第二角色信息字段和第二管理域信息字段,第二角色信息字段用于承载第一集中式网络状态信息存储设备的设备信息,第二管理域信息字段用于承载第一集中式网络状态信息存储设备的管理域。

容易理解地,第二集中式网络状态信息存储设备收到第二打开消息后,同样会对第二角色信息和第二管理域信息字段的值是否合法进行检测。

步骤307:第一集中式网络状态信息存储设备向第二集中式网络状态信息存储设备发送通知消息。

该通知消息用于表明第一打开消息错误。

进一步地,该通告消息可以携带第一打开消息错误的原因。该通知消息可以包括非法角色字段和非法管理域字段,非法角色字段用于表明第二集中式网络状态信息存储设备的设备信息不合法,非法管理域字段用于表明第二集中式网络状态信息存储设备不在第一集中式网络状态信息存储设备所属的管理域内。

该通知消息的格式与BGP中的通告(Notification)消息的格式相同。参见图3c,即图3a中的Type=3时表示通知(Notification)消息,其包括错误编码(Error Code)、错误子编码(Error Subcode)和数据(Data)三个字段,其中,错误编码字段的不同取值可以对应不同类型的错误,具体地,错误编码字段的值为1表示消息头错误、错误编码字段的值为2表示打开消息错误、错误编码字段的值为3表示更新消息错误、错误编码字段的值为4表示保留时间超时、错误编码字段的值为5表示FSM(Finite State Machine,有限状态机)错误、错误编码字段的值为6表示结束。

具体地,错误子编码字段也可以取不同值对各种类型的错误发生的原因进行进一步说明。具体地,错误子编编码字段的值为1表示不支持的版本号、错误子码字段的值为2表示不支持的AS、错误子编码字段的值为3表示不支持的BGP标识、错误子编码字段的值为4表示不支持的可选参数、错误子编码字段的值为5保留不使用、错误子编码字段的值为6表示不支持的保留时间。

在本实施例中,可以扩展错误子编码字段的值即增加错误子编码字段的值对应非法角色和非法管理域,以表明打开消息发生错误的原因。例如,错误子编码字段的值为7表示非法角色、错误子编码字段的值为8表示非法管理域。 需要说明的是,如果角色不被接收方支持,错误子编码字段的值必须被设置为7,如果第一集中式网络状态信息存储设备和第二集中式网络状态信息存储设备属于不同的管理域,错误子编码字段的值必须被设置为8。

步骤308:第二集中式网络状态信息存储设备接收第一集中式网络状态信息存储设备发送的第二打开消息,并检测其中的第二角色信息和第二管理域信息的是否合法。

这里第二集中式网络状态信息存储设备对第二角色信息和第二管理域信息的检测及处理方法分别与前述步骤305~307相同,只是执行主体为第二集中式网络状态信息存储设备,这里不再赘述。

步骤309:第二集中式网络状态信息存储设备向第一集中式网络状态信息存储设备发送第二网络状态信息。

步骤310:第一集中式网络状态信息存储设备接收第二集中式网络状态信息存储设备发送的第二网络状态信息。

实现时,第二网络状态信息承载于边界网关协议的更新消息的网络层可达信息字段中。该网络层可达信息字段中的链路状态网络层可达信息字段中的协议标识字段用于表明网络层可达信息的来源,该来源包括多种版本的OpenFlow协议。

参见图3d,即图3a中的Type=2时表示更新(Update)消息,其包括不可达路由长度(Withdrawn Routes Length)、不可达路由(Withdrawn Routes)、总路径属性长度(Total Path Attribute Length)、路径属性(Path Attribute)和网络层可达信息(Network Layer Reachability Information,简称“NLRI”)五个字段,其中,NLRI字段的长度是可变的。

具体地,参见图3e,NLRI字段可以包括NLRI类型(NLRI Type)、总长度(Total NLRI Length)和链路状态网络层可达信息(Link-State NLRI)(即链路状态NLRI)三个字段,链路状态NLRI字段可以用于表明NLRI信息的来源,NLRI类型字段表明了更新(Update)消息中的NLRI的类型,通常包括四种类型,并且具体地,当NLRI类型字段的值为1时,表示其为NLRI节点(Node NLRI),当NLRI类型字段的值为2时,表示其为NLRI链路(Link NLRI),当NLRI类型字段的值为3时,表示其为IPv4拓扑前缀的NLRI,当NLRI类型字段的值为4时,表示其为IPv6拓扑前缀的NLRI。

以NLRI节点(Node NLRI)的格式为例说明链路状态NLRI,参见图3f,NLRI节点包括协议标识(Protocol-ID)、身份(Identifier)和本地节点描述符(Local Node Descriptors)三个字段,其中,协议标识字段的值表明NLRI遵循的协议版本,身份字段的值是发送NLRI的设备的标识(例如可以是IP地址等)。参见图3g,Link NLRI包括协议标识(Protocol-ID)、身份(Identifier)、本地节点描述符(Local Node Descriptors)、远程节点描述符(Remote Node Descriptors)和链路描述符(Link Descriptors)五个字段。参见图3h,Prefix NLRI包括协议标识(Protocol-ID)、身份(Identifier)、本地节点描述符(Local Node Descriptors)和前缀描述符(Prefix Descriptors)四个字段。

在本实施例中,可以通过扩展更新(Update)消息中NLRI中的协议标识(Protocol-ID)字段的值,以使原有的BGP支持通过不同版本的OpenFlow协议收集的NLRI信息,进而获得各种网络状态信息。实现时,可以将NLRI中的协议标识设为不同的值以对应不用的NLRI的来源,例如,Protocol-ID=0,表示NLRI信息的来源无法确定;Protocol-ID=1,表示NLRI信息来源于IS-IS(Intermediate System to Intermediate System,中间系统到中间系统)协议1级;Protocol-ID=2,表示NLRI信息来源于IS-IS(Intermediate System to Intermediate System,中间系统到中间系统)协议2级;Protocol-ID=3,表示NLRI信息来源于OSPF(Open Shortest Path First,开放式最短路径优先)协议;Protocol-ID=4,表示NLRI信息来自本地接口状态;Protocol-ID=5,表示NLRI信息源于静态配置;Protocol-ID=6,表示NLRI信息通过OF协议1.0收集而来;Protocol-ID=7,表示NLRI信息通过OF协议2.0收集而来;Protocol-ID=7,表示NLRI信息通过OF协议3.0收集而来。实现时,OpenFlow控制器可以将第二网络状态信息存储在远程IP管理信息库(Remote_IP MIB)中。

具体地,OpenFlow控制器接收到第二网络状态信息后,解析出非OpenFlow网络的边缘的路由器到OpenFlow网络的边缘的OFS的链路信息,并将其存储在远程IP管理信息库中。并构造反向链路发现消息,将其和第一网络状态信息发往边缘的OFS;边缘OFS接收到反向链路发现消息后,将其转化为标准的LLDP消息,然后发往与其直连的非OpenFlow网络的边缘的路由器;该边缘路由器将接收到的LLDP消息进行解析,得到OpenFlow网络与非OpenFlow网络的反向链路信息,并将该反向链路信息存储边界OpenFlow管理信息库(Edge_OF  MIB)中,以供TED读取,同时将第一网络状态信息发送给TED。

同时,非OpenFlow网络中的TED还将其控制的第三交换设备的设备信息和第三交换设备之间的链路信息存储本地IP管理信息库(Local_IP MIB)中。

步骤311:第一集中式网络状态信息存储设备根据第一网络状态信息和第二网络状态信息,确定第一集中式网络状态信息存储设备所属的管理域的网络拓扑。

实现时,同一设备的设备信息在OpenFlow网络和IP网络中,采用不同的标识进行存储,例如,在OpenFlow网络中可采用64位的标识,而在IP网络中采用48位的硬件地址。具体地,OpenFlow控制器可以分别解析同一设备的不同标识,并对它们进行匹配。如果匹配成功,再进行端口号的匹配,以确定OpenFlow控制器所属管理域的网络拓扑。例如,结合图2a,OpenFlow控制器1中的Local_OF MIB中保存有第一网络状态信息:DPID_AR_11,端口号1,DPID_eOFS_11,端口号2;OpenFlow控制器1中的远程IP管理信息库中保存有第二网络状态信息:MAC_eOFS_11,端口号3,MAC_AR_11,端口号4。其中,DPID_AR_11和DPID_eOFS_11为OpenFlow网络中的设备标识,MAC_eOFS_11和MAC_AR_11为IP网络中的设备标识。OpenFlow控制器1会先解析DPID_AR_11与MAC_AR_11中的标识,并检测它们是否一致。如果一致,再匹配端口号1和端口4是否一致,如果一致,就继续解析DPID_eOFS_11和MAC_eOFS_11中的标识,并检测它们是否一致。如果一致,再匹配端口号2和端口3是否一致,如果一致,则eOFS_11(OpenFlow交换机12)和AR_11(即路由器22)之间的链路就被确定。

需要说明的是,步骤310和步骤311的执行没有先后顺序。

步骤312:第一集中式网络状态信息存储设备向第二集中式网络状态信息存储设备发送第一网络状态信息。

步骤313:第二集中式网络状态信息存储设备接收第一网络状态信息后,根据第一网络状态信息和第二网络状态信息,确定第二集中式网络状态信息存储设备所属的管理域的网络拓扑。

该步骤313实现方式与步骤310和311的相同,只是执行主体为第二集中式网络状态信息存储设备,在此不再赘述。

本发明实施例通过根据位于OpenFlow网络内的第一集中式网络状态信息 存储设备获取的第一网络状态信息和接受的位于非OpenFlow网络内的第二集中式网络状态信息存储设备发送的第二网络状态信息,来确定OpenFlow网络与非OpenFlow网络共存的管理域内的网络拓扑,同时,第二集中式网络状态信息存储设备也可以根据自身获取的第二网络状态信息和接收的第一集中式网络状态信息存储设备发送的第一网络状态信息,来确定OpenFlow网络与非OpenFlow网络共存的管理域内的网络拓扑,有利于同一管理域内的不同设备间的资源的统一调度,且第二网络状态信息承载于边界网关协议的更新消息的网络层可达信息字段中,所有支持边界网关协议的设备均可以通过更新消息获取第二网络状态信息,以确定其所属的管理域或者网络的网络拓扑,通用性好。

实施例三

为了更好的理解本发明实施例三提供的技术方案,下面先结合图4对实施例二的应用场景(即一个管理域中包括多个OpenFlow网络的情景)。图4显示了一个管理域的网络架构,参见图4,在该管理域内,设有三个OpenFlow网络1、2、3,每个OpenFlow网络均设有OpenFlow控制器11、21、31,且每个OpenFlow网络通过各自的OpenFlow控制器实现与其他网络的OpenFlow控制器之间的通信。

在本实施例中,第一集中式网络状态信息存储设备与第二集中式网络状态信息存储设备为同一管理域的不同网络中的OpenFlow控制器,即,第一集中式网络状态信息存储设备为第一OpenFlow控制器,第二集中式网络状态信息存储设备为第二OpenFlow控制器。

基于图4所示架构,本发明实施例提供了一种网络拓扑确定方法,参见图5,该方法包括:

步骤501:第一OpenFlow控制器控制的边缘OpenFlow交换机与第二OpenFlow控制器控制的边缘OpenFlow交换机之间通过链路发现消息,以确定两者之间的链路信息。

具体地,第一OpenFlow控制器与第二OpenFlow控制器通过控制链路发现消息在所辖两个子网(即OpenFlow网络)各边缘的OpenFlow交换机之间传送链路发现消息,以确定两者所辖子网之间的链路信息。

在本实施例中,第一OpenFlow控制器和第二OpenFlow控制器分属于不同 的OpenFlow网络,例如,分别属于OpenFlow网络1和OpenFlow网络2。

步骤502:第一OpenFlow控制器获取第一网络状态信息。

步骤503:第二OpenFlow控制器获取第二网络状态信息。

步骤504:第一OpenFlow控制器接收第二OpenFlow控制器发送的第一打开消息。

步骤505:第一OpenFlow控制器检测第一角色信息和第一管理域信息是否合法。如果是,执行步骤506,否则,执行步骤507。

步骤506:第一OpenFlow控制器向第二OpenFlow控制器发送第二打开消息。

步骤507:第一OpenFlow控制器向第二OpenFlow控制器发送通知消息。

步骤508:第二OpenFlow控制器接收第一OpenFlow控制器发送的第二打开消息,并检测其中的第二角色信息和第二管理域信息的是否合法。

步骤509:第二OpenFlow控制器向第一OpenFlow控制器发送第二网络状态信息。

步骤510:第一OpenFlow控制器接收第二OpenFlow控制器发送的第二网络状态信息。

步骤511:第一OpenFlow控制器根据第一网络状态信息和第二网络状态信息,确定第一OpenFlow控制器所属的管理域的网络拓扑。

步骤512:第一OpenFlow控制器向第二OpenFlow控制器发送第一网络状态信息。

步骤513:第二OpenFlow控制器接收第一网络状态信息后,根据第一网络状态信息和第二网络状态信息,确定第二OpenFlow控制器所属的管理域的网络拓扑。

其中,步骤501~513的实现方法分别与前述步骤301~313相同,这里不再赘述。

本发明实施例通过第一OpenFlow控制器获取自身的OpenFlow网络的内部网络状态信息和边界网络状态信息(即第一网络状态信息),并接收第二OpenFlow控制器发送的第二网络状态信息,来确定第一OpenFlow控制器所属管理域内的网络拓扑,同时,第二OpenFlow控制器也可以根据自身的第二网络状态信息和接收的第一OpenFlow控制器发送的第一网络状态信息来确定第二 OpenFlow控制器所属管理域内的网络拓扑,有利于同一管理域内多个OpenFlow网络的不同设备间的资源的统一调度,且第二网络状态信息承载于边界网关协议的更新消息的网络层可达信息字段中,所有支持边界网关协议的集中式网络状态信息存储设备均可以通过更新消息获取第二网络状态信息,以确定其所属的管理域或者网络的网络拓扑,通用性好。

实施例四

为了更好的理解本发明实施例四提供的技术方案,下面结合图6对实施例二的应用场景(一个自治系统中包括OpenFlow控制器和除了OpenFlow控制器外的其他集中式网络状态信息存储设备(例如,流量工程数据库)的情景)。图6显示了一个管理域的网络架构,参见图6,在该网络内设有流量工程数据库1、OpenFlow控制器2、OpenFlow交换机21和交换机11,流量工程数据库1与OpenFlow控制器2之间相互通信,一个OpenFlow控制器2可以控制多个OpenFlow交换机21、一个流量工程数据库1可以控制多个交换机11,且OpenFlow交换机21与交换机11之间物理连接。

在本实施例中,第一集中式网络状态信息存储设备和第二集中式网络状态信息存储设备位于同一自治系统中,即第一集中式网络状态信息存储设备为OpenFlow控制器,第二集中式网络状态信息存储设备为除了OpenFlow控制器外的其他集中式网络状态信息存储设备(例如图6中的TED)。

实现时,第一集中式网络状态信息存储设备为OpenFlow控制器,第二集中式网络状态信息存储设备为除了OpenFlow控制器外的其他集中式网络状态信息存储设备;或者,第一集中式网络状态信息存储设备除了OpenFlow控制器外的其他集中式网络状态信息存储设备,第二集中式网络状态信息存储设备为OpenFlow控制器。在本实施例中,以第一集中式网络状态信息存储设备为OpenFlow控制器,第二集中式网络状态信息存储设备为除了OpenFlow控制器外的其他集中式网络状态信息存储设备为例进行说明。

基于图6所示架构,本发明实施例提供了一种网络拓扑确定方法,参见图7,该方法包括:

步骤701:第一集中式网络状态信息存储设备控制的边缘第一交换设备与第二集中式网络状态信息存储设备关联的边缘第三交换设备之间通过链路发现消 息,以确定两者之间的链路信息。

该步骤与步骤301相同,这里不再赘述。

步骤702:第一集中式网络状态信息存储设备获取第一网络状态信息。

步骤703:第二集中式网络状态信息存储设备获取第二网络状态信息。

步骤704:第一集中式网络状态信息存储设备接收第二集中式网络状态信息存储设备发送的第一打开消息。

步骤705:第一集中式网络状态信息存储设备检测第一角色信息和第一管理域信息是否合法。如果是,执行步骤706,否则,执行步骤707。

步骤706:第一集中式网络状态信息存储设备向第二集中式网络状态信息存储设备发送第二打开消息。

步骤707:第一集中式网络状态信息存储设备向第二集中式网络状态信息存储设备发送通知消息。

步骤708:第二集中式网络状态信息存储设备接收第一集中式网络状态信息存储设备发送。

步骤709:第二集中式网络状态信息存储设备向第一集中式网络状态信息存储设备发送第二网络状态信息。

步骤710:第一集中式网络状态信息存储设备接收第二集中式网络状态信息存储设备发送的第二网络状态信息。

步骤711:第一集中式网络状态信息存储设备根据第一网络状态信息和第二网络状态信息,确定第一集中式网络状态信息存储设备所属的自治系统的网络拓扑。

步骤712:第一集中式网络状态信息存储设备向第二集中式网络状态信息存储设备发送第一网络状态信息。

步骤713:第二集中式网络状态信息存储设备接收第一网络状态信息后,根据第一网络状态信息和第二网络状态信息,确定第二集中式网络状态信息存储设备所属的自治系统的网络拓扑。

步骤701~步骤713的实现方法分别与步骤301~313相同,这里不再赘述。

本发明实施例通过位于同一自治系统内第一集中式网络状态信息存储设备获取的第一网络状态信息和接受的同一自治系统内的第二集中式网络状态信息存储设备发送的第二网络状态信息,来确定OpenFlow控制器控制的设备与非 OpenFlow控制器相关的设备共存的网络的网络拓扑,来确定网络的网络拓扑,有利于同一自治系统内的OpenFlow控制器控制的设备与非OpenFlow控制器相关的设备间的资源的统一调度,且第二网络状态信息承载于边界网关协议的更新消息的网络层可达信息字段中,所有支持边界网关协议的集中式网络状态信息存储设备均可以通过更新消息获取第二网络状态信息,以确定其所属的管理域或者网络的网络拓扑,通用性好。

实施例五

本发明实施例提供一种网络拓扑确定装置,参见图8,该装置包括:获取模块801、接收模块802和确定模块803。

获取模块801用于获取第一网络状态信息,第一网络状态信息包括第一交换设备的设备信息、第一交换设备之间的链路信息、与第一交换设备连接的第二交换设备的设备信息、以及第一交换设备与各自相连的第二交换设备之间的链路信息,第一交换设备为第一集中式网络状态信息存储设备控制或关联的交换设备,第二交换设备为非第一集中式网络状态信息存储设备控制或关联的交换设备。

接收模块802用于接收第二集中式网络状态信息存储设备发送的第二网络状态信息,第二网络状态信息包括第三交换设备的设备信息、第三交换设备之间的链路信息、与第三交换设备连接的第四交换设备的设备信息、以及第三交换设备与各自相连的第四交换设备之间的链路信息,第三交换设备为第二集中式网络状态信息存储设备控制或关联的交换设备,第四交换设备为非第二集中式网络状态信息存储设备控制或关联的交换设备,第二网络状态信息承载于边界网关协议的更新消息的网络层可达信息字段中。

确定模块803用于根据第一网络状态信息和第二网络状态信息,确定第一集中式网络状态信息存储设备所属的管理域或者自治系统的网络拓扑。

其中,第一集中式网络状态信息存储设备和第二集中式网络状态信息存储设备中的至少一个为开放流OpenFlow控制器,第一集中式网络状态信息存储设备和第二集中式网络状态信息存储设备分别属于同一管理域内的不同自治系统,或者,第一集中式网络状态信息存储设备和第二集中式网络状态信息存储设备属于同一管理域的同一自治系统。

本发明实施例通过获取第一集中式网络状态信息存储设备自身的第一网络状态信息和接收第二集中式网络状态信息存储设备发送的第二网络状态信息,来确定第一集中式网络状态信息存储设备所属的管理域或者网络的网络拓扑,有利于同一管理域内或者同一网络内的不同设备间的资源的统一调度,且第二网络状态信息承载于边界网关协议的更新消息的网络层可达信息字段中,所有支持边界网关协议的集中式网络状态信息存储设备均可以通过更新消息获取第二网络状态信息,以确定其所属的管理域或者网络的网络拓扑,通用性好。

实施例六

本发明实施例提供一种网络拓扑确定装置,参见图9,该装置包括:获取模块901、接收模块902、确定模块903、检测模块904和发送模块905。

获取模块901用于获取第一网络状态信息,第一网络状态信息包括第一交换设备的设备信息、第一交换设备之间的链路信息、与第一交换设备连接的第二交换设备的设备信息、以及第一交换设备与各自相连的第二交换设备之间的链路信息,第一交换设备为第一集中式网络状态信息存储设备控制或关联的交换设备,第二交换设备为非第一集中式网络状态信息存储设备控制或关联的交换设备。

接收模块902用于接收第二集中式网络状态信息存储设备发送的第二网络状态信息,第二网络状态信息包括第三交换设备的设备信息、第三交换设备之间的链路信息、与第三交换设备连接的第四交换设备的设备信息、以及第三交换设备与各自相连的第四交换设备之间的链路信息,第三交换设备为第二集中式网络状态信息存储设备控制或关联的交换设备,第四交换设备为非第二集中式网络状态信息存储设备控制或关联的交换设备,第二网络状态信息承载于边界网关协议的更新消息的网络层可达信息字段中。

确定模块903用于根据第一网络状态信息和第二网络状态信息,确定第一集中式网络状态信息存储设备所属的管理域或者自治系统的网络拓扑。

其中,第一集中式网络状态信息存储设备和第二集中式网络状态信息存储设备中至少一个为开放流OpenFlow控制器,第一集中式网络状态信息存储设备和第二集中式网络状态信息存储设备分别属于同一管理域内的不同自治系统,或者,第一集中式网络状态信息存储设备和第二集中式网络状态信息存储设备 属于同一管理域的同一自治系统。

实现时,第一集中式网络状态信息存储设备和第二集中式网络状态存储设备为支持边界网关协议的设备,支持边界网关协议的设备包括开放流控制器、路由服务器、路由反射器、流量工程数据库服务器或网络管理系统服务器。

进一步地,网络层可达信息字段包括链路状态网络层可达信息字段,链路状态网络层可达信息字段用于表明网络层可达信息的来源,来源包括多种版本的OpenFlow协议。

接收模块902还用于接收第二集中式网络状态信息存储设备发送的第一打开消息,第一打开消息包括第一角色信息字段和第一管理域信息字段,第一角色信息字段用于承载第二集中式网络状态信息存储设备的设备信息,第一管理域信息用于承载第二集中式网络状态信息存储设备所属的管理域。

检测模块904用于检测第一角色信息字段的取值和第一管理域信息字段的取值是否合法。

发送模块905用于当第一角色信息字段的取值和第一管理域信息字段的取值均合法时,向第二集中式网络状态信息存储设备发送第二打开消息,第二打开消息包括第二角色信息字段和第二管理域信息字段,第二角色信息字段用于承载第一集中式网络状态信息存储设备的设备信息,第二管理域信息字段用于承载第一集中式网络状态信息存储设备所属的管理域。

发送模块905还用于当第一角色信息字段的取值或第一管理域信息字段的取值不合法时,向第二集中式网络状态信息存储设备发送通知消息,通知消息用于表明第一打开消息错误。

具体地,通知消息还携带所述第一打开消息错误的原因,第一打开消息错误的原因包括非法角色和非法管理域,非法角色用于表明第二集中式网络状态信息存储设备的设备信息不合法,非法管理域用于表明第二集中式网络状态信息存储设备不在第一集中式网络状态信息存储设备所属的管理域内。

实现时,第一交换设备与第二交换设备之间的链路信息是通过链路发现消息确定的,第三交换设备与第四交换设备之间的链路信息是通过链路发现消息确定的。

实现时,确定模块903还可以用于根据第一网络状态信息和第二网络状态信息中各交换设备的设备信息,确定第一集中式网络状态信息存储设备所属的 管理域或者自治系统中各交换设备间的链路信息,以确定第一集中式网络状态信息存储设备所属的管理域或者自治系统的网络拓扑,设备信息包括设备标识和端口号。

本发明实施例通过获取第一集中式网络状态信息存储设备自身的第一网络状态信息和接收第二集中式网络状态信息存储设备发送的第二网络状态信息,来确定第一集中式网络状态信息存储设备所属的管理域或者网络的网络拓扑,有利于同一管理域内或者同一网络内的不同设备间的资源的统一调度,且第二网络状态信息承载于边界网关协议的更新消息的网络层可达信息字段中,所有支持边界网关协议的集中式网络状态信息存储设备均可以通过更新消息获取第二网络状态信息,以确定其所属的管理域或者网络的网络拓扑,通用性好。

实施例七

本发明实施例提供了一种集中式网络状态信息存储设备。参见图10,该设备可以是一种服务器。其一般包括至少一个处理器1001(例如CPU)、至少一个通信接口1002、存储器1003和至少一个通信总线1004。其中,存储器1003用于存储计算机执行指令,处理器1001与存储器1003通过总线1004连接,当所述计算机运行时,处理器1001执行存储器1003存储的所述计算机执行指令,以使所述计算机执行实施例一、或实施例二或实施例三、或实例四中网络拓扑确定方法。

本领域技术人员可以理解,图10中示出的服务器的结构并不构成对交换设备的限定,其可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合图10对交换设备的各个构成部件进行具体的介绍:

通信总线1004用于实现处理器1001、存储器1003及通信接口1002之间的连接通信。

至少一个通信接口1002(可以是有线或者无线)实现交换设备分别与至少两个其他计算机(例如主机)和一个服务器(例如控制器)之间的通信连接(计算机与服务器可以共享一个通信接口1002分别与交换设备连接),可以使用互联网,广域网,本地网,城域网等。

存储器1003可用于存储软件程序以及应用模块,处理器1001通过运行存 储在存储器1003的软件程序以及应用模块,从而执行交换设备的各种功能应用以及数据处理。存储器1003可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能(例如流表表项的匹配功能和执行指令功能)所需的应用程序等;存储数据区可存储根据交换设备的使用所创建的数据(例如存储的流表和数据库)等。此外,存储器1003可以包括高速RAM(Random Access Memory,随机存取存储器),还可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

处理器1001是交换设备的控制中心,利用各种接口和线路连接整个交换设备的各个部分,通过运行或执行存储在存储器1003内的软件程序和/或应用模块,以及调用存储在存储器1003内的数据,执行交换设备的各种功能和处理数据,从而对交换设备进行整体监控。

具体地,通过运行或执行存储在存储器1003内的软件程序和/或应用模块,以及调用存储在存储器1003内的数据,处理器1001可以实现,获取第一网络状态信息,第一网络状态信息包括第一交换设备的设备信息、第一交换设备之间的链路信息、与第一交换设备连接的第二交换设备的设备信息、以及第一交换设备与各自相连的第二交换设备之间的链路信息,第一交换设备为第一集中式网络状态信息存储设备控制或关联的交换设备,第二交换设备为非第一集中式网络状态信息存储设备控制的交换设备。

通信接口1002可以实现接收第二集中式网络状态信息存储设备发送的第二网络状态信息,第二网络状态信息包括第三交换设备的设备信息、第三交换设备之间的链路信息、与第三交换设备连接的第四交换设备的设备信息、以及第三交换设备与各自相连的第四交换设备之间的链路信息,第三交换设备为第二集中式网络状态信息存储设备控制或关联的交换设备,第四交换设备为非第二集中式网络状态信息存储设备控制或关联的交换设备,第二网络状态信息承载于边界网关协议的更新消息的网络层可达信息字段中。

处理器1001还可以实现,根据第一网络状态信息和第二网络状态信息,确定第一集中式网络状态信息存储设备所属的管理域或者自治系统的网络拓扑。

其中,第一集中式网络状态信息存储设备和第二集中式网络状态信息存储设备中的至少一个为开放流OpenFlow控制器,第一集中式网络状态信息存储设 备和第二集中式网络状态信息存储设备分别属于同一管理域内的不同自治系统,或者,第一集中式网络状态信息存储设备和第二集中式网络状态信息存储设备属于同一管理域的同一自治系统。

优选地,第一集中式网络状态信息存储设备和第二集中式网络状态存储设备为支持边界网关协议的设备,支持边界网关协议的设备包括开放流控制器、路由服务器、路由反射器、流量工程数据库服务器或网络管理系统服务器。

优选地,第二网络状态信息承载于边界网关协议的更新消息的网络层可达信息字段中。进一步地,网络层可达信息字段包括链路状态网络层可达信息字段,链路状态网络层可达信息字段用于表明网络层可达信息的来源,来源包括多种版本的OpenFlow协议。

优选地,通信接口1002还可以实现接收第二集中式网络状态信息存储设备发送的第一打开消息,第一打开消息包括第一角色信息字段和第一管理域信息字段,第一角色信息字段用于承载第二集中式网络状态信息存储设备的设备信息,第一管理域信息用于承载第二集中式网络状态信息存储设备所属的管理域。

处理器1001还可以实现,检测第一角色信息字段的取值和第一管理域信息字段的取值是否合法。

当第一角色信息字段的取值和第一管理域信息字段的取值均合法时,通信接口1002还可以实现向第二集中式网络状态信息存储设备发送第二打开消息,第二打开消息包括第二角色信息字段和第二管理域信息字段,第二角色信息字段用于承载第一集中式网络状态信息存储设备的设备信息,第二管理域信息字段用于承载第一集中式网络状态信息存储设备所属的管理域。

当第一角色信息字段的取值或第一管理域信息字段的取值不合法时,通信接口1002还可以实现向第二集中式网络状态信息存储设备发送通知消息,通知消息用于表明第一打开消息错误。

实现时,通知消息还携带第一打开消息错误的原因,第一打开消息错误的原因包括非法角色和非法管理域,非法角色用于表明第二集中式网络状态信息存储设备的设备信息不合法,非法管理域用于表明第二集中式网络状态信息存储设备不在第一集中式网络状态信息存储设备所属的管理域内。

实现时,第一交换设备与第二交换设备之间的链路信息是通过链路发现消息确定的,第三交换设备与第四交换设备之间的链路信息是通过链路发现消息 确定的。

实现时,处理器1001还用于根据第一网络状态信息和第二网络状态信息中各交换设备的设备信息,确定第一集中式网络状态信息存储设备所属的管理域或者自治系统中各交换设备间的链路信息,以确定第一集中式网络状态信息存储设备所属的管理域或者自治系统的网络拓扑,设备信息包括设备标识和端口号。

本发明实施例通过获取第一集中式网络状态信息存储设备自身的第一网络状态信息和接收第二集中式网络状态信息存储设备发送的第二网络状态信息,来确定第一集中式网络状态信息存储设备所属的管理域或者网络的网络拓扑,有利于同一管理域内或者同一网络内的不同设备间的资源的统一调度,且第二网络状态信息承载于边界网关协议的更新消息的网络层可达信息字段中,所有支持边界网关协议的集中式网络状态信息存储设备均可以通过更新消息获取第二网络状态信息,以确定其所属的管理域或者网络的网络拓扑,通用性好。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号