一种拓扑发现方法及设备与流程

文档序号:18237760发布日期:2019-07-24 08:48阅读:190来源:国知局
一种拓扑发现方法及设备与流程

本发明涉及通信技术领域,特别涉及一种拓扑发现方法及设备。



背景技术:

为解决网元的部署灵活性和可管理性,业界提出了软件定义网络(SDN,Software-Defined Network)的概念。SDN通过将网元的控制逻辑和转发功能解耦,并将控制逻辑进行集中部署,使得对网络的控制和维护工作能够简单地通过对控制面设备的操作实现。在实际应用中,SDN网络中一般包括作为控制面设备的控制器(Controller)和作为转发面设备的交换机(Switch),控制器通过控制交换机上的流表项实现对数据报文处理流程的控制,交换机基于流表项实现对数据报文的转发。开放流(Openflow)协议是SDN网络中最典型和应用最多的协议,Openflow协议中的网元称为开放流控制器(Openflow Controller)和开放流交换机(Openflow Switch),以下分别简称为OF控制器和OF交换机。

SDN网络在逻辑上一般由多个域(Domain)构成。如图1所示,每个域包括:控制器、交换机以及主机(Host),由域内的控制器对域内的交换机及主机进行管理。一个域内可以包含一个或多个控制器,当包含多个控制器时,多个控制器中的一个控制器为主控制器,当包含一个控制器时,可以认为该控制器为主控制器。SDN网络中还包括全球拓扑代理(Global Topology Broker),其仅与各个域的主控制器通信。各个域的控制器之间不直接通信,所有涉及域间的事件,例如跨域路由、域间拓扑链路发现等都由全球拓扑代理处理。其中,域间拓扑链路是指不同域内的网元之间的连接,而同一个域内的网元之间的连接则称为域内拓扑链路;一般的,在发现一条域间拓扑链路时,需要确定域间拓扑链路的以下信息:链路两端网元所属域ID,链路两端的网元ID以及端口ID,当这些信息被确定时,就表示一条域间拓扑链路被发现。基于图1所示的SDN网络结构,如何实现全球拓扑代理对于域间拓扑链路的发现,进而实现跨域全局拓扑发现,是一个需要解决的问题。

但是,目前SDN网络中使用LLDP实现域内拓扑链路的发现,还没有跨域全局拓扑发现方法公开。



技术实现要素:

本发明实施例中提供了一种拓扑发现方法及设备,能够实现跨域全局拓扑链路的发现。

为了解决上述技术问题,本发明实施例公开了如下技术方案:

第一方面,提供一种拓扑发现方法,包括:

第二主控制器接收第二交换机发送的拓扑发现报文,所述拓扑发现报文包括:所述第二交换机接收到的链路发现数据包、第二交换机ID以及第二端口ID;所述链路发现数据包包括:第一交换机ID、第一端口ID;所述第一交换机ID用于指示向所述第二交换机发送所述链路发现数据包的第一交换机,所述第二交换机ID用于指示接收所述链路发现数据包的所述第二交换机,所述第一端口ID用于指示所述第一交换机发送所述链路发现数据包的端口,所述第二端口ID用于指示所述第二交换机接收到所述链路发现数据包的端口;

所述第二主控制器判断所述链路发现数据包不是本域的链路发现数据包时,根据所述拓扑发现报文生成上报信息,所述上报信息包括:第一交换机ID、第一端口ID、第二交换机ID以及第二端口ID;

所述第二主控制器将所述上报信息发送给全局拓扑代理,以便所述全局拓扑代理根据所述上报信息发现域间拓扑链路。

结合第一方面,在第一方面第一种可能的实现方式中,所述链路发现数据包还包括:第一域ID,所述第一域ID用于指示所述第一交换机所属域;所述第二主控制器判断所述链路发现数据包不是本域的链路发现数据包,包括:

所述第二主控制器判断所述链路发现数据包中包括的第一域ID与所述第二主控制器所管辖域的域ID不同。

结合第一方面,在第一方面第二种可能的实现方式中,所述第二主控制器判断所述链路发现数据包不是本域的链路发现数据包,包括:

所述第二主控制器判断所述第一交换机ID指示的第一交换机不是所述第二主控制器所管辖域的交换机。

结合第一方面,和/或第一方面第一种可能的实现方式,和/或第一方面第二种可能的实现方式,在第一方面第三种可能的实现方式中,所述第二主控制器判断所述链路发现数据包不是本域的链路发现数据包之后,还包括:

所述第二主控制器将所述第二交换机ID以及第二端口ID加入边界交换机管理信息中。

第二方面,提供一种拓扑发现方法,包括:

全局拓扑代理接收第二主控制器发送的上报信息,所述上报信息包括;第一交换机ID、第一端口ID、第二交换机ID以及第二端口ID;所述第一交换机ID用于指示发送所述链路发现数据包的第一交换机,所述第二交换机ID用于指示接收将所述链路发现数据包的第二交换机,所述第一端口ID用于指示所述第一交换机发送所述链路发现数据包的端口,所述第二端口ID用于指示所述第二交换机接收到所述链路发现数据包的端口;

所述全局拓扑代理根据所述上报信息发现域间拓扑链路。

结合第二方面,在第二方面第一种可能的实现方式中,所述全局拓扑代理根据所述上报信息发现域间拓扑链路之后,还包括:

所述全局拓扑代理根据所述域间拓扑链路控制所述第一交换机或所述第二交换机进行域间数据报文的转发。

结合第二方面,和/或第二方面第一种可能的实现方式,在第二方面第二种可能的实现方式中,所述全局拓扑代理根据所述上报信息发现域间拓扑链路,包括:

所述全局拓扑代理根据所述第一交换机ID确定所述第一交换机所属域,并且,根据所述第二交换机ID确定所述第二交换机所属域;

所述全局拓扑代理根据所述第一交换机所属域、第一交换机ID以及第一端口ID确定所述域间拓扑链路的第一端,根据所述第二交换机所属域、第二交换机ID以及第二端口ID确定所述域间拓扑链路的第二端。

结合第二方面,和/或第二方面第一种可能的实现方式,在第二方面第三种可能的实现方式中,所述上报信息还包括:第一域ID、第二域ID,所述第一域ID用于指示所述第一交换机所属域,所述第二域ID用于指示所述第二交换机所属域;所述全局拓扑代理根据所述上报信息发现域间拓扑链路,包括:

所述全局拓扑代理根据所述第一域ID、第一交换机ID以及第一端口ID确定所述域间拓扑链路的第一端,根据所述第二域ID、第二交换机ID以及第二端口ID确定所述域间拓扑链路的第二端。

第三方面,提供一种主控制器,包括:

接收单元,用于接收第二交换机发送的拓扑发现报文,所述拓扑发现报文包括:所述第二交换机接收到的链路发现数据包、第二交换机ID以及第二端口ID;所述链路发现数据包包括:第一交换机ID、第一端口ID;所述第一交换机ID用于指示向所述第二交换机发送所述链路发现数据包的第一交换机,所述第二交换机ID用于指示接收所述链路发现数据包的所述第二交换机,所述第一端口ID用于指示所述第一交换机发送所述链路发现数据包的端口,所述第二端口ID用于指示所述第二交换机接收到所述链路发现数据包的端口;

生成单元,用于判断所述接收单元接收到的所述链路发现数据包不是本域的链路发现数据包时,根据所述拓扑发现报文生成上报信息,所述上报信息包括:第一交换机ID、第一端口ID、第二交换机ID以及第二端口ID;

发送单元,用于将所述生成单元生成的所述上报信息发送给全局拓扑代理,以便所述全局拓扑代理根据所述上报信息发现域间拓扑链路。

结合第三方面,在第三方面第一种可能的实现方式中,所述链路发现数据包还包括:第一域ID,所述第一域ID用于指示所述第一交换机所属域;所述生成单元具体用于:

判断所述链路发现数据包中包括的第一域ID与所述第二主控制器所管辖域的域ID不同。

结合第三方面,在第三方面第二种可能的实现方式中,所述生成单元具体用于:

判断所述第一交换机ID指示的第一交换机不是所述第二主控制器所管辖域的交换机。

结合第三方面,和/或第三方面第一种可能的实现方式,和/或第三方面第二种可能的实现方式,在第三方面第三种可能的实现方式中,还包括:

管理单元,用于所述生成单元判断所述链路发现数据包不是本域的链路发现数据包之后,将所述第二交换机ID以及第二端口ID加入边界交换机管理信息中。

第四方面,提供一种全局拓扑代理,包括:

接收单元,用于接收第二主控制器发送的上报信息,所述上报信息包括;第一交换机ID、第一端口ID、第二交换机ID以及第二端口ID;所述第一交换机ID用于指示发送所述链路发现数据包的第一交换机,所述第二交换机ID用于指示接收将所述链路发现数据包的第二交换机,所述第一端口ID用于指示所述第一交换机发送所述链路发现数据包的端口,所述第二端口ID用于指示所述第二交换机接收到所述链路发现数据包的端口;

确定单元,用于根据所述接收单元接收到的所述上报信息发现域间拓扑链路。

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

控制单元,用于根据所述确定单元发现的所述域间拓扑链路控制所述第一交换机或所述第二交换机进行域间数据报文的转发。

结合第四方面,和/或第四方面第一种可能的实现方式,在第四方面第二种可能的实现方式中,所述确定单元具体用于:

根据所述第一交换机ID确定所述第一交换机所属域,并且,根据所述第二交换机ID确定所述第二交换机所属域;

根据所述第一交换机所属域、第一交换机ID以及第一端口ID确定所述域间拓扑链路的第一端,根据所述第二交换机所属域、第二交换机ID以及第二端口ID确定所述域间拓扑链路的第二端。

结合第四方面,和/或第四方面第一种可能的实现方式,在第四方面第三种可能的实现方式中,所述上报信息还包括:第一域ID、第二域ID,所述第一域ID用于指示所述第一交换机所属域,所述第二域ID用于指示所述第二交换机所属域;所述确定单元具体用于:

根据所述第一域ID、第一交换机ID以及第一端口ID确定所述域间拓扑链路的第一端,根据所述第二域ID、第二交换机ID以及第二端口ID确定所述域间拓扑链路的第二端。

本发明实施例中,第二主控制器接收第二交换机发送的拓扑发现报文,所述拓扑发现报文包括:所述第二交换机接收到的链路发现数据包、第二交换机ID以及第二端口ID;所述链路发现数据包包括:第一交换机ID、第一端口ID;所述第一交换机ID用于指示向所述第二交换机发送所述链路发现数据包的第一交换机,所述第二交换机ID用于指示接收所述链路发现数据包的所述第二交换机,所述第一端口ID用于指示所述第一交换机发送所述链路发现数据包的端口,所述第二端口ID用于指示所述第二交换机接收到所述链路发现数据包的端口;所述第二主控制器判断所述链路发现数据包不是本域的链路发现数据包时,根据所述拓扑发现报文生成上报信息,所述上报信息包括:第一交换机ID、第一端口ID、第二交换机ID以及第二端口ID;所述第二主控制器将所述上报信息发送给全局拓扑代理,以便所述全局拓扑代理根据所述上报信息发现跨域全局拓扑链路,从而第二主控制器为全局拓扑代理发现跨域全局拓扑链路提供了数据支持,使得全局拓扑代理能够发现跨域全局拓扑链路。

附图说明

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

图1为SDN网络结构示例图;

图2为本发明实施例应用场景示例图;

图3为本发明拓扑发现方法的一个实施例流程图;

图4为本发明拓扑发现方法的另一个实施例流程图;

图5A为本发明拓扑发现方法的应用场景实例图;

图5B为本发明拓扑发现方法的另一个实施例流程图;

图5C为本发明拓扑发现方法的另一个实施例流程图;

图6为本发明主控制器的一个实施例框图;

图7为本发明全局拓扑代理的实施例框图;

图8为本发明主控制器另一个实施例框图;

图9为本发明全局拓扑代理的另一个实施例框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。

本发明实施例可以应用于包括至少两个域的SDN网络中。

以下通过图2对图3~图6所示的实施例所应用场景进行举例说明。参见图2所示,包括:全局拓扑代理210、第一域220、第二域230,其中,第一域220包括:第一主控制器2201、若干个第一域的交换机2202,第二域230包括:第二主控制器2301、若干个第二域的交换机2302;第一主控制器2201和第二主控制器2301与全局拓扑代理210连接,第一域的各个交换机2202分别与第一主控制器2201连接,第二域的交换机2302分别于第二主控制器2301连接。另外,第一域的各个交换机2202之间可以相互连接,第二域的各个交换机2302之间可以相互连接,第一域的交换机2202和第二域的交换机2302之间可以连接,同一域内的交换机之间的连接称为域内拓扑链接,不同域内的交换机之间的连接称为域间拓扑链接。

另外,第一域220和第二域230内还可以分别包括若干个主机,由于本发明实施例中不涉及,因此,图2中并未示出和说明。

其中,第一主控制器和第二主控制器中的第一、第二仅用于区别两个域内的主控制器,并无其他实际意义。

在实际应用中,一个SDN网络可能包括两个以上的域,当本发明实施例的拓扑发现方法应用于包括两个以上的域的SDN网络结构下时,由于本发明实施例拓扑发现方法确定的是两个域之间的域间拓扑链路,在处理过程中仅涉及到多个域中的两个域,因此,其实际应用场景最终都可以归结为图2所示的场景。

在以下实施例中,假设第一域220的第一主控制器2201针对第一域220内第一交换机的第一端口发起拓扑链路发现,第一交换机的第一端口与第二域230的第二交换机的第二端口之间存在域间拓扑链路。其中,第一交换机和第二交换机中的第一、第二仅用于区别两个交换机,并无其他实际意义,第一端口和第二端口中的第一、第二仅用于区别两个交换机的端口,无其他实际意义。第一交换机可以是第一域内任意一个与第二域内的交换机存在域间拓扑链路的交换机,第二交换机是第二域内与第一交换机存在域间拓扑链路的交换机。

以下,将在图2所示应用场景下对本发明实施例拓扑发现方法进行说明。

参见图3,为本发明拓扑发现方法的一个实施例流程图,该实施例从第二主控制器侧进行描述,包括:

步骤301:第二主控制器接收第二交换机发送的拓扑发现报文,拓扑发现报文包括:第二交换机接收到的链路发现数据包、第二交换机ID以及第二端口ID;

其中,链路发现数据包包括:第一交换机ID、第一端口ID;

第一交换机ID用于指示发送链路发现数据包的第一交换机;

第二交换机ID用于指示接收链路发现数据包的第二交换机;

第一端口ID用于指示第一交换机发送链路发现数据包的第一端口;

第二端口ID用于指示第二交换机接收到链路发现数据包的第二端口。

步骤302:第二主控制器判断链路发现数据包不是第二主控制器所管辖域的链路发现数据包时,根据拓扑发现报文生成上报信息,上报信息包括:第一交换机ID、第一端口ID、第二交换机ID以及第二端口ID。

在一种可能的实现方式中,所述链路发现数据包还可以包括:第一域ID,所述第一域ID用于指示所述第一交换机所属域;所述第二主控制器判断所述链路发现数据包不是本域的链路发现数据包,可以包括:

所述第二主控制器判断所述链路发现数据包中包括的第一域ID与所述第二主控制器所管辖域的域ID不同。

在另一种可能的实现方式中,所述第二主控制器判断所述链路发现数据包不是本域的链路发现数据包可以包括:

所述第二主控制器判断所述第一交换机ID指示的第一交换机不是所述第二主控制器所管辖域的交换机。

其中,所述第二主控制器判断所述链路发现数据包不是本域的链路发现数据包,表明第二交换机ID指示的第二交换机以及第二端口ID指示的端口所连接的不是本域的网元,而是其他域的网元,因此,所述第二主控制器判断所述链路发现数据包不是本域的链路发现数据包之后,所述第二主控制器可以将所述第二交换机ID以及第二端口ID加入边界交换机管理信息中,从而实现对第二主控制器所管辖域内边界交换机的管理,所述边界交换机是指与其他域的交换机之间存在域间拓扑链路的交换机。

参见下表1所示,各个域的主控制器可以通过如下表所示的方式维护所管辖域内的边界交换机的信息,边界交换机的信息包括:交换机ID、交换机属性、端口ID、端口状态等。下表1中具体的交换机ID、交换机属性、端口ID、端口状态等字段中填写的字段内容均为举例,可以在实际应用中根据实际场景定义,这里不赘述,例如下表1中UP表示端口处于开启状态,lastseetime表示端口的上次发现时间,state表示端口的拥塞程度、收发数据量等其他的状态。

表1

步骤303:第二主控制器将上报信息发送给全局拓扑代理,以便全局拓扑代理根据上报信息发现域间拓扑链路。

其中,所述域间拓扑链路可以用于进行域间数据报文的转发等。其中,可以由全局拓扑代理根据所述域间拓扑链路控制第一交换机或者第二交换机进行域间数据报文的转发,可选地,全局拓扑代理可以通过第二主控制器控制第一交换机或第二交换机进行域间数据报文的转发。

本实施例中,第二主控制器接收第二交换机发送的拓扑发现报文,判断拓扑发现报文中的链路发现数据包不是本域的链路发现数据包时,根据拓扑发现报文生成上报信息,将上报信息发送给全局拓扑代理,以便全局拓扑代理根据上报信息发现跨域全局拓扑链路,从而为全局拓扑代理发现跨域全局拓扑链路提供了数据支持,使得全局拓扑代理能够发现跨域全局拓扑链路。

参见图4,为本发明拓扑发现方法的另一个实施例流程图,该实施例从全局拓扑代理侧进行描述,包括:

步骤401:全局拓扑代理接收第二主控制器发送的上报信息,上报信息包括;第一交换机ID、第一端口ID、第二交换机ID以及第二端口ID;

其中,第一交换机ID用于指示发送链路发现数据包的第一交换机;

第二交换机ID用于指示接收链路发现数据包的第二交换机;

第一端口ID用于指示第一交换机发送链路发现数据包的第一端口;

第二端口ID用于指示第二交换机接收到链路发现数据包的第二端口。

其中,第一交换机ID可以通过第一交换机的名称、MAC地址、或IP地址等实现,这里不限定;第二交换机ID可以通过第二交换机的名称、MAC地址、或IP地址等实现。

交换机的端口ID可以预先为各个端口设置,具体设置方法本发明实施例不限定。

步骤402:全局拓扑代理根据上报信息发现域间拓扑链路。

在一种可能的实现方式中,所述全局拓扑代理根据所述上报信息发现域间拓扑链路可以包括:

所述全局拓扑代理根据所述第一交换机ID确定所述第一交换机所属域,并且,根据所述第二交换机ID确定所述第二交换机所属域;

所述全局拓扑代理根据所述第一交换机所属域、第一交换机ID以及第一端口ID确定所述域间拓扑链路的第一端,根据所述第二交换机所属域、第二交换机ID以及第二端口ID确定所述域间拓扑链路的第二端。

在另一种可能的实现方式中,所述上报信息还可以包括:第一域ID、第二域ID,所述第一域ID用于指示所述第一交换机所属域,所述第二域ID用于指示所述第二交换机所属域;所述全局拓扑代理根据所述上报信息发现域间拓扑链路可以包括:

所述全局拓扑代理根据所述第一域ID、第一交换机ID以及第一端口ID确定所述域间拓扑链路的第一端,根据所述第二域ID、第二交换机ID以及第二端口ID确定所述域间拓扑链路的第二端。

其中,各个域的域ID可以预先为各个域设置,具体设置方法本发明实施例并不限定。

其中,步骤402之后还可以包括:全局拓扑代理根据发现的域间拓扑链路控制所述第一交换机或所述第二交换机进行域间数据报文的转发,可选地,全局拓扑代理可以通过第二主控制器控制第一交换机或第二交换机进行域间数据报文的转发。

本实施例中,全局拓扑代理接收第二主控制器发送的上报信息,上报信息包括;第一交换机ID、第一端口ID、第二交换机ID以及第二端口ID,根据上报信息发现跨域全局拓扑链路,从而实现了跨域全局拓扑链路的发现。

参见图5A,为本发明拓扑发现方法的一种应用场景实例,该网络包括:全球拓扑代理、域1、域2,在域1内包括:主控制器OFC_1、交换机Sw1_1、交换机Sw1_2以及交换机Sw1_3,在域2内包括:主控制器OFC_2、交换机Sw2_1以及交换机Sw2_2,域1内的交换机Sw1_1的端口1与域2内的交换机Sw2_1的端口1连接,形成了一条域间拓扑链路,其中,域1的域ID为Domain1,域2的域ID为Domain2,交换机Sw1_1的ID为Sw1_1,交换机Sw2_1的ID为Sw2_1,交换机Sw1_1和交换机Sw2_1的端口1的ID均为Port1;本发明实施例拓扑发现方法的执行目的在于全球拓扑代理能够发现这条域间拓扑链路。其中,域1和域2内还可以包括主机,由于本发明实施例并不涉及,因此未举例示出。

参见图5B,为本发明拓扑发现方法另一个实施例流程图,该实施例中将结合图5A所示的实例进行说明。

在本实施例中,预先为各个域设置域ID,所述域ID可以由全局拓扑代理为各个域设置,或者,也可以由各个域的主控制器为主控制器自身所管辖域设置,例如,主控制器可以根据主控制器自身的IP地址或MAC地址和时间通过哈希运算得到一个值作为主控制器所管辖域的域ID,具体确定域ID的方法本发明并不限制,此处不再赘述。

步骤501:各个域的主控制器向全局拓扑代理发送注册信息,以在全局拓扑代理中注册各个域。

其中,所述注册信息可以包括:主控制器的地址、主控制器所管辖域的域ID以及所管辖域的域信息。

其中,主控制器的地址可以为IP地址或者MAC地址等。所管辖域的域信息可以包括:域内各个网元ID、域内网元的IP地址范围等,网元ID可以为网元的名称、网元的IP地址或MAC地址等。

结合图5A,两个域的主控制器上报的注册信息可以如表2所示。其中,主控制器OFC_1所管辖域为域1,域ID为Domain1,主控制器OFC_1的IP地址为192.168.1.11,所管辖域的域信息为:Host1_1,IP地址范围:192.168.1.10~192.168.1.100;主控制器OFC_2所管辖域为域2,域ID为Domain2,主控制器OFC_2的IP地址为192.168.2.11,所管辖域的域信息为:Host2_1,IP地址范围:192.168.2.10~192.168.2.100。

表2

其中,本步骤为可选步骤。

步骤502:第一域的第一主控制器针对第一交换机的第一端口生成链路发现数据包,所述链路发现数据包可以包括:第一交换机ID、第一端口ID以及第一域ID。

结合图5A,假设第一域为域1,第一主控制器为主控制器OFC_1,第一交换机为交换机Sw1_1,第一端口为端口1,则,第一交换机ID为Sw1_1,第一端口ID为Port1,第一域ID为Domain1。

除了上述三种信息,链路发现数据包中还可以包括其他信息,具体包括的信息本发明实施例并不限定。

在一种可能的实现方式中,链路发现数据包可以通过下表3所示的结构实现。

表3

其中,src_mac表示发送链路发现数据包的源网元的MAC地址,在本实施例中源网元为第一交换机;dst_mac表示接收链路发现数据包的目标网元的MAC地址,由于第一主控制器在生成链路发现数据包时并不知道链路发现数据包的目标网元,因此,该字段可以缺省,参见表2,通过FF:FF:FF:FF:FF表示;eth_type表示:以太网类型,用于表示数据包是用于链路发现的数据包;chassis ID三元组(TLV)表示:LLDP数据包中的TLV的一个字段;Port ID TLV表示源网元中发送链路发现数据包的端口ID三元组,其中的Value用于记录源网元中发送链路发现数据包的端口的端口ID,例如表2中所示的Port1;TTL TLV表示:超时时间;Domain TLV表示域三元组,其中的Value用于记录主控制器所管辖域的域ID;Action表示源网元对链路发现数据包所作的动作,例如,可以设置为表2所示的out-to-port1,也即指示源网元将链路发现数据包从端口ID为port1的端口转发出去,当源网元转发该链路发现数据包时,Action这一字段将被源网元清空或设置为缺省;End of TLV表示:数据包中TLV字段的结束标志。

步骤503:第一交换机接收链路发现数据包,从第一端口ID指示的第一端口转发该链路发现数据包。

依照上述实例,图5A中第一端口ID为Port1,所指示的第一端口为端口1,交换机Sw1_1将从自身的端口1转发该链路发现数据包。

步骤504:第二交换机从第二端口接收到该链路发现数据包,生成拓扑发现报文发送至第二主控制器。

拓扑发现报文包括:第二交换机接收到的链路发现数据包、第二交换机ID以及第二端口ID。

第二交换机ID用于指示第二交换机;第二端口ID用于指示第二交换机中接收到链路发现数据包的第二端口。

依照上述实例,由于图5A中交换机Sw1_1的端口1实际与交换机Sw2_1的端口1连接,因此,第二交换机为交换机Sw2_1,第二端口为端口1,相应的,

交换机Sw2_1将从自身的端口1接收到链路发现数据包;交换机Sw2_1生成的拓扑发现报文中第二交换机ID为Sw2_1,第二端口ID为Port1;第二主控制器为第二域的主控制器OFC2_1。

步骤505:第二主控制器接收拓扑发现报文,判断链路发现数据包中的第一域ID与第二主控制器所管辖域的域ID不同时,根据拓扑发现报文生成上报信息,将上报信息发送给全局拓扑代理。

上报信息可以包括:第一交换机ID、第一端口ID、第一域ID、第二交换机ID、第二端口ID以及第二域ID。

本实施例中,如果第二主控制器判断链路发现数据包中的第一域ID与第二主控制器所管辖域的域ID相同,那么第二主控制器将执行域内拓扑链路发现过程,这里不再赘述。

依照上述实例并结合图5A,第二主控制器为主控制器OFC2_1,其所管辖的域2的域ID为Domain 2,而第一域ID为Domain 1,主控制器OFC2_1判断两者不相同,将生成上报信息,上报信息中的第一交换机ID为Sw1_1、第一端口ID为Port1、第一域ID为Domain 1、第二交换机ID为Sw2_1、第二端口ID为Port1、第二域ID为Domain 2。

步骤506:全局拓扑代理接收上报信息,根据上报信息发现域间拓扑链路。

其中,全局拓扑代理根据上报信息发现域间拓扑链路可以包括:

全局拓扑代理根据第一域ID、第一交换机ID以及第一端口ID确定域间拓扑链路的第一端,根据第二域ID、第二交换机ID以及第二端口ID发现域间拓扑链路的第二端。

依照上述实例并结合图5A,全局拓扑代理将确定出域间拓扑链路的第一端为:域1的交换机Sw1_1的端口1,域间拓扑链路的第二端为:域2的交换机Sw2_1的端口1。

本实施例中,第一主控制器在生成链路发现数据包时,在链路发现数据包中携带自身所管辖的第一域的第一域ID,从而链路发现数据包经过域间拓扑链路传输至另一个域的第二主控制器时,第二主控制器可以根据第一域ID判断该链路发现数据包不是第二主控制器所管辖域的链路发现数据包,进而上报全局拓扑代理,使得全局拓扑代理能够实现跨域全局拓扑链路的发现。

参见图5C,为本发明拓扑发现方法另一个实施例流程图,该实施例中也将结合图5A所示的实例进行说明。

在本实施例中,预先为各个域设置域ID,所述域ID可以由全局拓扑代理为各个域设置,或者,也可以由各个域的主控制器为主控制器自身所管辖域设置,例如,主控制器可以根据主控制器自身的IP地址或MAC地址和时间通过哈希运算得到一个值作为主控制器所管辖域的域ID。

步骤511:各个域的主控制器向全局拓扑代理发送注册信息,以在全局拓扑代理中注册各个域。

本步骤的实现请参见步骤501中的相关描述,这里不赘述。

步骤512:第一域的第一主控制器针对第一交换机的第一端口生成链路发现数据包,所述链路发现数据包可以包括:第一交换机ID、第一端口ID。

结合图5A,假设第一域为域1,第一主控制器为主控制器OFC_1,第一交换机为交换机Sw1_1,第一端口为端口1,则,第一交换机ID为Sw1_1,第一端口ID为port1。

其中,链路发现数据包的实现结构可以参见步骤502的相关描述,其中,表2中的Domain TLV字段可以省略。

步骤513:第一交换机接收链路发现数据包,从第一端口ID指示的第一端口转发该链路发现数据包。

依照上述实例,图5A中第一端口ID为Port1,所指示的第一端口为端口1,交换机Sw1_1将从自身的端口1转发该链路发现数据包。

步骤514:第二交换机从第二端口接收到该链路发现数据包,生成拓扑发现报文发送至第二主控制器。

拓扑发现报文包括:第二交换机接收到的链路发现数据包、第二交换机ID以及第二端口ID。

第二交换机ID用于指示第二交换机;第二端口ID用于指示第二交换机中接收到链路发现数据包的第二端口。

依照上述实例,由于图5A中交换机Sw1_1的端口1实际与交换机Sw2_1的端口1连接,因此,第二交换机为交换机Sw2_1,第二端口为端口1,相应的,

交换机Sw2_1将从自身的端口1接收到链路发现数据包;交换机Sw2_1生成的拓扑发现报文中第二交换机ID为Sw2_1,第二端口ID为Port1;第二主控制器为第二域的主控制器OFC2_1。

步骤515:第二主控制器接收拓扑发现报文,判断链路发现数据包中的第一交换机ID指示的第一交换机不是第二主控制器所管辖域的交换机时,根据拓扑发现报文生成上报信息,将上报信息发送给全局拓扑代理。

上报信息可以包括:第一交换机ID、第一端口ID、第二交换机ID、第二端口ID。

一般的,第二主控制器中存储有所管辖域内各个网元的信息,因此,本步骤中第二主控制器可以根据预先存储的信息判断链路发现数据包中的第一交换机ID指示的第一交换机是否是第二主控制器所管辖域的交换机,具体实现这里不再赘述。

本实施例中,如果第二主控制器判断链路发现数据包中的第一交换机ID指示的第一交换机是第二主控制器所管辖域的交换机,那么第二主控制器将执行域内拓扑链路发现过程,这里不再赘述。

依照上述实例并结合图5A,第二主控制器为主控制器OFC2_1,第一交换机ID为Sw1_1,第二主控制器可以判断ID为Sw1_1的第一交换机不是自身所管辖的域2中的交换机。

步骤516:全局拓扑代理接收上报信息,根据上报信息发现域间拓扑链路。

其中,全局拓扑代理根据上报信息发现域间拓扑链路可以包括:

所述全局拓扑代理根据所述第一交换机ID确定所述第一交换机所属域,并且,根据所述第二交换机ID确定所述第二交换机所属域;

所述全局拓扑代理根据所述第一交换机所属域、第一交换机ID以及第一端口ID确定所述域间拓扑链路的第一端,根据所述第二交换机所属域、第二交换机ID以及第二端口标识确定所述域间拓扑链路的第二端。

其中,由于步骤511中各个域的主控制器已经向全局拓扑代理发送了各个域的注册信息,因此,本步骤中全局拓扑代理可以根据接收到的各个域的注册信息确定所述第一交换机所属域以及第二交换机所属域。

依照上述实例并结合图5A,全局拓扑代理根据步骤511中各个主控制器发送的注册信息可以确定ID为Sw1_1的第一交换机属于域1,ID为Sw2_1的第二交换机属于域2;进而,将确定出域间拓扑链路的第一端为:域1的交换机Sw1_1的端口1,第二端为域2的交换机Sw2_1的端口1。

本实施例中,第一主控制器生成的链路发现数据包经过域间拓扑链路传输至另一个域的第二主控制器时,第二主控制器判断该链路发现数据包不是第二主控制器所管辖域的链路发现数据包,进而上报全局拓扑代理,使得全局拓扑代理能够实现跨域全局拓扑链路的发现。

与本发明拓扑发现方法的实施例相对应,本发明还提供了主控制器、全局拓扑代理的实施例。

参见图6,为本发明主控制器的一个实施例框图。主控制器600包括:接收单元610、生成单元620以及发送单元630,其中,

接收单元610,用于接收第二交换机发送的拓扑发现报文,所述拓扑发现报文包括:所述第二交换机接收到的链路发现数据包、第二交换机ID以及第二端口ID;所述链路发现数据包包括:第一交换机ID、第一端口ID;所述第一交换机ID用于指示向所述第二交换机发送所述链路发现数据包的第一交换机,所述第二交换机ID用于指示接收所述链路发现数据包的所述第二交换机,所述第一端口ID用于指示所述第一交换机发送所述链路发现数据包的端口,所述第二端口ID用于指示所述第二交换机接收到所述链路发现数据包的端口;

生成单元620,用于判断所述接收单元接收到的所述链路发现数据包不是本域的链路发现数据包时,根据所述拓扑发现报文生成上报信息,所述上报信息包括:第一交换机ID、第一端口ID、第二交换机ID以及第二端口ID;

发送单元630,用于将所述生成单元生成的所述上报信息发送给全局拓扑代理,以便所述全局拓扑代理根据所述上报信息发现域间拓扑链路。

可选地,所述链路发现数据包还可以包括:第一域ID,所述第一域ID用于指示所述第一交换机所属域;所述生成单元620具体可以用于:

判断所述链路发现数据包中包括的第一域ID与所述第二主控制器所管辖域的域ID不同。

可选地,所述生成单元620具体可以用于:

判断所述第一交换机ID指示的第一交换机不是所述第二主控制器所管辖域的交换机。

可选地,主控制器600还可以包括:

管理单元,用于所述生成单元判断所述链路发现数据包不是本域的链路发现数据包之后,将所述第二交换机ID以及第二端口ID加入边界交换机管理信息中。

本实施例中,第二主控制器接收第二交换机发送的拓扑发现报文,判断拓扑发现报文中的链路发现数据包不是本域的链路发现数据包时,根据拓扑发现报文生成上报信息,将上报信息发送给全局拓扑代理,以便全局拓扑代理根据上报信息发现跨域全局拓扑链路,从而为全局拓扑代理发现跨域全局拓扑链路提供了数据支持,使得全局拓扑代理能够发现跨域全局拓扑链路。

参见图7,为本发明全局拓扑代理的一个实施例框图。全局拓扑代理700包括:接收单元710以及确定单元720,其中,

接收单元710,用于接收第二主控制器发送的上报信息,所述上报信息包括;第一交换机ID、第一端口ID、第二交换机ID以及第二端口ID;所述第一交换机ID用于指示发送所述链路发现数据包的第一交换机,所述第二交换机ID用于指示接收将所述链路发现数据包的第二交换机,所述第一端口ID用于指示所述第一交换机发送所述链路发现数据包的端口,所述第二端口ID用于指示所述第二交换机接收到所述链路发现数据包的端口;

确定单元720,用于根据所述接收单元710接收到的所述上报信息发现域间拓扑链路。

可选地,所述确定单元720具体可以用于:

根据所述第一交换机ID确定所述第一交换机所属域,并且,根据所述第二交换机ID确定所述第二交换机所属域;

根据所述第一交换机所属域、第一交换机ID以及第一端口ID确定所述域间拓扑链路的第一端,根据所述第二交换机所属域、第二交换机ID以及第二端口ID确定所述域间拓扑链路的第二端。

可选地,所述上报信息还可以包括:第一域ID、第二域ID,所述第一域ID用于指示所述第一交换机所属域,所述第二域ID用于指示所述第二交换机所属域;所述确定单元720具体可以用于:

根据所述第一域ID、第一交换机ID以及第一端口ID确定所述域间拓扑链路的第一端,根据所述第二域ID、第二交换机ID以及第二端口ID确定所述域间拓扑链路的第二端。

本实施例中,全局拓扑代理接收第二主控制器发送的上报信息,上报信息包括;第一交换机ID、第一端口ID、第二交换机ID以及第二端口ID,根据上报信息发现域间拓扑链路,从而实现了跨域全局拓扑链路的发现。

参见图8,为本发明实施例主控制器结构示意图,该主控制器800包括:处理器810、存储器820、收发器830和总线840;

处理器810、存储器820、收发器830通过总线840相互连接;总线840可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器820,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器820可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

收发器830用于连接其他设备,并与其他设备进行通信。收发器830用于:接收第二交换机发送的拓扑发现报文,所述拓扑发现报文包括:所述第二交换机接收到的链路发现数据包、第二交换机ID以及第二端口ID;所述链路发现数据包包括:第一交换机ID、第一端口ID;所述第一交换机ID用于指示向所述第二交换机发送所述链路发现数据包的第一交换机,所述第二交换机ID用于指示接收所述链路发现数据包的所述第二交换机,所述第一端口ID用于指示所述第一交换机发送所述链路发现数据包的端口,所述第二端口ID用于指示所述第二交换机接收到所述链路发现数据包的端口;还用于将处理器810生成的所述上报信息发送给全局拓扑代理,以便所述全局拓扑代理根据所述上报信息发现域间拓扑链路。

所述处理器810执行所述程序代码,用于判断所述链路发现数据包不是本域的链路发现数据包时,根据所述拓扑发现报文生成上报信息,所述上报信息包括:第一交换机ID、第一端口ID、第二交换机ID以及第二端口ID。

可选地,所述链路发现数据包还可以包括:第一域ID,所述第一域ID用于指示所述第一交换机所属域;所述处理器810具体可以用于:判断所述链路发现数据包中包括的第一域ID与所述第二主控制器所管辖域的域ID不同。

可选地,所述处理器810具体可以用于:判断所述第一交换机ID指示的第一交换机不是所述第二主控制器所管辖域的交换机。

可选地,所述处理器810还可以用于:判断所述链路发现数据包不是本域的链路发现数据包之后,将所述第二交换机ID以及第二端口ID加入边界交换机管理信息中。

本实施例中,第二主控制器接收第二交换机发送的拓扑发现报文,判断拓扑发现报文中的链路发现数据包不是本域的链路发现数据包时,根据拓扑发现报文生成上报信息,将上报信息发送给全局拓扑代理,以便全局拓扑代理根据上报信息发现域间拓扑链路,从而为全局拓扑代理发现跨域全局拓扑链路提供了数据支持,使得全局拓扑代理能够发现跨域全局拓扑链路。

参见图9,为本发明实施例基站结构示意图,该基站900包括:处理器910、存储器920、收发器930和总线940;

处理器910、存储器920、收发器930通过总线940相互连接;总线940可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器920,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器920可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

收发器930用于连接其他设备,并与其他设备进行通信。收发器930用于:接收第二主控制器发送的上报信息,所述上报信息包括;第一交换机ID、第一端口ID、第二交换机ID以及第二端口ID;所述第一交换机ID用于指示发送所述链路发现数据包的第一交换机,所述第二交换机ID用于指示接收将所述链路发现数据包的第二交换机,所述第一端口ID用于指示所述第一交换机发送所述链路发现数据包的端口,所述第二端口ID用于指示所述第二交换机接收到所述链路发现数据包的端口。

所述处理器910执行所述程序代码,用于根据所述上报信息发现域间拓扑链路。

可选地,所述处理器910具体可以用于:

根据所述第一交换机ID确定所述第一交换机所属域,并且,根据所述第二交换机ID确定所述第二交换机所属域;

根据所述第一交换机所属域、第一交换机ID以及第一端口ID确定所述域间拓扑链路的第一端,根据所述第二交换机所属域、第二交换机ID以及第二端口ID确定所述域间拓扑链路的第二端。

可选地,所述上报信息还可以包括:第一域ID、第二域ID,所述第一域ID用于指示所述第一交换机所属域,所述第二域ID用于指示所述第二交换机所属域;所述处理器910具体可以用于:根据所述第一域ID、第一交换机ID以及第一端口ID确定所述域间拓扑链路的第一端,根据所述第二域ID、第二交换机ID以及第二端口ID确定所述域间拓扑链路的第二端。

本实施例中,全局拓扑代理接收第二主控制器发送的上报信息,上报信息包括;第一交换机ID、第一端口ID、第二交换机ID以及第二端口ID,根据上报信息发现域间拓扑链路,从而实现了跨域全局拓扑链路的发现。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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

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