路由更新方法及装置转让专利

申请号 : CN201810939606.X

文献号 : CN109088767A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄李伟王伟

申请人 : 新华三技术有限公司

摘要 :

本公开实施例提出一种路由更新方法及装置,涉及虚拟化技术领域。第一VTEP设备、第二VTEP设备和第三VTEP设备归属于同一核心网络,并为同一VXLAN提供数据处理服务,所述第三VTEP设备与所述第一VTEP设备归属于同一多归属组,所述方法应用于所述第一VTEP设备中,包括:接收所述第二VTEP设备在检测到主机发生迁徙事件后生成并发送的第一路由同步信息,基于所述第一路由同步信息,生成第二路由同步信息,向所述第三VTEP设备发送所述第二路由同步信息,并基于所述第一路由同步信息对迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道。本公开能够提高路由更新的效率和可靠性,提高通信的可靠性。

权利要求 :

1.一种路由更新方法,其特征在于,应用于第一VTEP设备中,所述第一VTEP设备、第二VTEP设备和第三VTEP设备归属于同一核心网络,并为同一VXLAN提供数据处理服务,所述第三VTEP设备与所述第一VTEP设备归属于同一多归属组,所述方法包括:接收所述第二VTEP设备在检测到主机发生迁徙事件后生成并发送的第一路由同步信息;

基于所述第一路由同步信息,生成第二路由同步信息;

向所述第三VTEP设备发送所述第二路由同步信息,并基于所述第一路由同步信息对迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道;

其中,所述第二路由同步信息用于指示所述第三VTEP设备对所述迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道。

2.如权利要求1所述的路由更新方法,其特征在于,所述第二路由同步信息包括第一迁徙标识、多归属标识、所述迁徙主机的主机标识和所述第二VTEP设备的VTEP设备地址。

3.如权利要求2所述的路由更新方法,其特征在于,所述第一迁徙标识和所述多归属标识携带在所述第二路由同步信息所包括的扩展团体属性字段中。

4.一种路由更新方法,其特征在于,应用于第三VTEP设备中,第一VTEP设备、第二VTEP设备和所述第三VTEP设备归属于同一核心网络,并为同一VXLAN提供数据处理服务,所述第三VTEP设备与所述第一VTEP设备归属于同一多归属组,所述方法包括:接收来自所述第一VTEP设备的第二路由同步信息,所述第二路由同步信息由所述第一VTEP设备在接收来自所述第二VTEP设备的第一路由同步信息之后,基于所述第一路由同步信息生成,所述第二路由同步信息用于指示所述第三VTEP设备对迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道,所述第一路由同步信息由所述第二VTEP设备在检测到所述迁徙主机发生迁徙事件后生成;

基于所述第二路由同步信息,对所述迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道。

5.如权利要求4所述的路由更新方法,其特征在于,所述第一路由同步信息包括第二迁徙标识,所述第二路由同步信息包括第一迁徙标识,迁徙标识包括数值,在所述基于所述第二路由同步信息,对所述迁徙主机对应的路由进行更新之前,所述方法还包括:若接收到所述第一路由同步信息,则从第一路由同步信息获取所述第二迁徙标识;

从所述第二路由同步信息获取所述第一迁徙标识;

若所述第一迁徙标识大于所述第二迁徙标识,则执行所述基于所述第二路由同步信息,对所述迁徙主机对应的路由进行更新的步骤。

6.一种路由更新装置,其特征在于,应用于第一VTEP设备中,所述第一VTEP设备、第二VTEP设备和第三VTEP设备归属于同一核心网络,并为同一VXLAN提供数据处理服务,所述第三VTEP设备与所述第一VTEP设备归属于同一多归属组,所述装置包括:接收模块,用于接收所述第二VTEP设备在检测到主机发生迁徙事件后生成并发送的第一路由同步信息;

生成模块,用于基于所述第一路由同步信息,生成第二路由同步信息;

更新模块,用于向所述第三VTEP设备发送所述第二路由同步信息,并基于所述第一路由同步信息对迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道;

其中,所述第二路由同步信息用于指示所述第三VTEP设备对所述迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口,更新为与所述第二VTEP设备之间的VXLAN隧道。

7.如权利要求6所述的路由更新装置,其特征在于,所述第二路由同步信息包括第一迁徙标识、多归属标识、所述迁徙主机的主机标识和所述第二VTEP设备的VTEP设备地址。

8.如权利要求7所述的路由更新装置,其特征在于,所述第一迁徙标识和所述多归属标识携带在所述第二路由同步信息所包括的扩展团体属性字段中。

9.一种路由更新装置,其特征在于,应用于第三VTEP设备中,第一VTEP设备、第二VTEP设备和所述第三VTEP设备归属于同一核心网络,并为同一VXLAN提供数据处理服务,所述第三VTEP设备与所述第一VTEP设备归属于同一多归属组,所述装置包括:接收模块,用于接收来自所述第一VTEP设备的第二路由同步信息,所述第二路由同步信息由所述第一VTEP设备在接收来自所述第二VTEP设备的第一路由同步信息之后,基于所述第一路由同步信息生成,所述第二路由同步信息用于指示所述第三VTEP设备对迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道,所述第一路由同步信息由所述第二VTEP设备在检测到所述迁徙主机发生迁徙事件后生成;

更新模块,用于基于所述第二路由同步信息,对所述迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道。

10.如权利要求9所述的路由更新装置,其特征在于,所述第一路由同步信息包括第二迁徙标识,所述第二路由同步信息包括第一迁徙标识,迁徙标识包括数值,所述装置还包括:第一获取模块,用于若接收到所述第一路由同步信息,则从第一路由同步信息获取所述第二迁徙标识;

第二获取模块,用于从所述第二路由同步信息获取所述第一迁徙标识;

触发模块,用于若所述第一迁徙标识大于所述第二迁徙标识,则触发所述更新模块执行所述基于所述第二路由同步信息,对所述迁徙主机对应的路由进行更新的步骤。

说明书 :

路由更新方法及装置

技术领域

[0001] 本公开涉及虚拟化技术领域,具体而言,涉及一种路由更新方法及装置。

背景技术

[0002] 目前,EVPN(Ethernet Virtual Private Network,以太网虚拟专用网络)和VXLAN(Virtual eXtensible LAN,可扩展虚拟局域网络)等二层VPN技术,以其支持用户量大、配置简单、易于管理和维护等原因,得到了广泛的应用。
[0003] VXLAN(或称为二层网络)中可以包括主机,主机可以包括部署在服务器上的VM(Virtual Machine,虚拟机),其中,主机之间即可通过VTEP(VXLAN Tunnel End Point,VXLAN隧道端点)设备和核心设备进行通信。VTEP设备为虚拟网络中的边缘设备,与本地的主机之间存在AC(Attachment Circuit,接入电路)连接,并与该虚拟网络中其它的VTEP设备之间存在点到点的VXLAN隧道,VTEP设备能够为VXLAN中的主机提供数据处理服务,包括识别数据帧并对数据帧进行二层转发、封装/解封报文等。核心设备能够根据封装后的报文进行三层转发。为了使该主机能够与VXLAN中的任一主机进行通信,与该主机对应的VTEP设备存储有路由表,该路由表中可以包括该主机与该VXLAN中任一主机之间的路由。而在实际应用中,该VXLAN中的主机可能会发生迁徙,从而导致VTEP设备存储的路由与实际的路由不一致,进而可能使发送至已迁徙的主机的数据丢失,因此为了提高该VXLAN中通信的可靠性,需要一种路由更新方法。
[0004] 现有技术中,当主机迁徙至新的VTEP设备时,该新的VTEP设备可以对存储的路由表进行更新,并发送路由同步信息给同一核心网络中的其它的VTEP设备。但由于主机可能与多个VTEP设备之间存在AC链路,即对应多个VTEP设备,多个对应于该主机的AC链路处于同一ES(Ethernet Segment,以太网段),且属于同一多归属组。所以在主机迁徙后,该多归属组的VTEP设备必须先接受针对与该迁徙主机对应的路由的撤销请求,将该路由进行撤销之后,才能够根据该新的VTEP设备的路由同步信息对路由表进行更新。也即是,在主机迁徙之后,多归属组中的VTEP设备难以及时对路由表进行更新,从而难以有效确保VXLAN中通信的可靠性。

发明内容

[0005] 本公开实施例的目的在于提供一种路由更新方法及装置,以在VXLAN中的主机发生迁徙事件时,确保VTEP设备能够及时对迁徙主机对应的路由进行更新,从而提高更新路由的效率。
[0006] 为了实现上述目的,本公开实施例采用的技术方案如下:
[0007] 第一方面,本公开实施例提出一种路由更新方法,应用于第一VTEP设备中,所述第一VTEP设备、第二VTEP设备和第三VTEP设备归属于同一核心网络,并为同一VXLAN提供数据处理服务,所述第三VTEP设备与所述第一VTEP设备归同一多归属组,所述方法包括:
[0008] 接收所述第二VTEP设备在检测到主机发生迁徙事件后生成并发送的第一路由同步信息;
[0009] 基于所述第一路由同步信息,生成第二路由同步信息;
[0010] 向所述第三VTEP设备发送所述第二路由同步信息,并基于所述第一路由同步信息对迁徙主机对应的路由进行更新,包括迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道;
[0011] 其中,所述第二路由同步信息用于指示所述第三VTEP设备对所述迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口,更新为与所述第二VTEP设备之间的VXLAN隧道。
[0012] 第二方面,本公开实施例还提出一种路由更新方法,应用于第三VTEP设备中,第一VTEP设备、第二VTEP设备和所述第三VTEP设备归属于同一核心网络,并为同一VXLAN提供数据处理服务,所述第三VTEP设备与所述第一VTEP设备归同一多归属组,所述方法包括:
[0013] 接收来自所述第一VTEP设备的第二路由同步信息,所述第二路由同步信息由所述第一VTEP设备在接收来自所述第二VTEP设备的第一路由同步信息之后,基于所述第一路由同步信息生成,所述第二路由同步信息用于指示所述第三VTEP设备对迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道,所述第一路由同步信息由所述第二VTEP设备在检测到所述迁徙主机发生迁徙事件后生成;
[0014] 基于所述第二路由同步信息,对所述迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道。
[0015] 第三方面,本公开实施例还提出一种路由更新装置,应用于第一VTEP设备中,所述第一VTEP设备、第二VTEP设备和第三VTEP设备归属于同一核心网络,并为同一VXLAN提供数据处理服务,所述第三VTEP设备与所述第一VTEP设备归属于同一多归属组,所述装置包括:
[0016] 接收模块,用于接收所述第二VTEP设备在检测到主机发生迁徙事件后生成并发送的第一路由同步信息;
[0017] 生成模块,用于基于所述第一路由同步信息,生成第二路由同步信息;
[0018] 更新模块,用于向所述第三VTEP设备发送所述第二路由同步信息,并基于所述第一路由同步信息对迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道;
[0019] 其中,所述第二路由同步信息用于指示所述第三VTEP设备对所述迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口,更新为与所述第二VTEP设备之间的VXLAN隧道。
[0020] 第四方面,本公开实施例还提出一种路由更新装置,应用于第三VTEP设备中,第一VTEP设备、第二VTEP设备和所述第三VTEP设备归属于同一核心网络,并为同一VXLAN提供数据处理服务,所述第三VTEP设备与所述第一VTEP设备归属于同一多归属组,所述装置包括:
[0021] 接收模块,用于接收来自所述第一VTEP设备的第二路由同步信息,所述第二路由同步信息由所述第一VTEP设备在接收来自所述第二VTEP设备的第一路由同步信息之后,基于所述第一路由同步信息生成,所述第二路由同步信息用于指示所述第三VTEP设备对迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道,所述第一路由同步信息由所述第二VTEP设备在检测到所述迁徙主机发生迁徙事件后生成;
[0022] 更新模块,用于基于所述第二路由同步信息,对所述迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道。
[0023] 第五方面,本公开实施例还提出一种网络设备,包括存储有计算机程序的计算机可读存储介质和处理器,所述计算机程序被所述处理器读取并运行时,实现上述第一方面或第二方面所述的方法。
[0024] 第六方面,本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器读取并运行时,实现上述第一方面或第二方面所述的方法。
[0025] 相对现有技术,本公开实施例具有以下有益效果:
[0026] 在本公开实施例中,对于归属于同一核心网络,并为VXLAN提供数据处理服务的VTEP设备,第一VTEP设备若接收到检测到迁徙主机发生迁徙事件的第二VTEP设备发送的第一路由同步信息,可以基于第一路由同步信息,将迁徙主机对应的路由中的出接口更新为与第二VTEP设备之间的VXLAN隧道,从而完成本端对迁徙主机对应的路由进行更新。且第一VTEP设备还可以基于第一路由同步信息,生成第二路由同步信息,并向同一多归属组第三VTEP设备发送第二路由同步信息,从而使指示第三VTEP设备,将迁徙主机对应的路由中的出接口更新为与第二VTEP设备之间的VXLAN隧道,完成对迁徙主机对应的路由进行更新。因此,当主机发生迁徙事件时,对于该多归属组的任一VTEP设备,能够在接收到第一路由同步信息时,及时将本端与迁徙主机对应的路由进行更新,还能够向同一多归属组中的其它VTEP设备发送第二路由同步信息,指示同一多归属组中其它的VTEP设备及时对与迁徙主机对应的路由进行更新,而不需要对已有的对应该迁徙主机的路由进行撤销,提高了更新路由的效率和可靠性,减少了发送该迁徙主机的数据丢失的可能,提高了通信的可靠性。
[0027] 本公开的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开实施例了解。本公开的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

[0028] 为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0029] 图1示出了本公开实施例所提供的一种网络模型的结构示意图;
[0030] 图2示出了本公开实施例所提供的一种VXLAN的结构示意图;
[0031] 图3示出了本公开实施例所提供的另一种VXLAN的结构示意图;
[0032] 图4示出了本公开实施例所提供的一种路由更新方法的流程示意图;
[0033] 图5示出了本公开实施例所提供的另一种路由更新方法的流程示意图;
[0034] 图6示出了本公开实施例所提供的另一种路由更新方法的流程示意图;
[0035] 图7示出了本公开实施例所提供的一种路由更新装置的结构框图;
[0036] 图8示出了本公开实施例所提供的另一种路由更新装置的结构框图。

具体实施方式

[0037] 下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0038] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本公开的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0039] 请参照图1,为本公开实施例所提供的一种网络模型的结构示意图。基础网络层为三层物理网络,可以作为核心网络,包括分布在站点1的服务器1、分布在站点2的服务器2、VTEP设备1、VTEP设备2和核心设备。服务器1与VTEP设备1、服务器2与VTEP设备2、VTEP设备1与核心设备以及VTEP设备2与核心设备之间,可以通过网络连接。其中,站点1和站点2可以为不同的地理位置。在基础网络上建立的虚拟网络层包括VXLAN1和VXLAN2,且VXLAN1包括分布在站点1的主机11和分布在站点2的主机21,VXLAN2包括分布在站点1的主机12和分布站点2的主机22。其中,VTEP设备1和VTEP设备2即归属于同一核心网络,并为同一VXLAN提供数据处理服务。由于对于用户来说,基础网络层是透明的,因此,分布在不同站点的主机即可看作处于同一局域网络中。
[0040] 主机可以包括服务器上创建的虚拟机。一个服务器上可以创建多个虚拟机以作为主机,不同的主机可以属于不同的VXLAN。同一VXLAN中的主机可以互相进行通信,不同VXLAN中的主机可以互相隔离。
[0041] VTEP设备能够进行VXLAN中的数据处理,比如识别以太网的数据所归属的VXLAN、对于VXLAN中的数据进行二层转发、封装/解封报文等。VTEP设备可以包括一台独立的物理设备,也可以部署在主机所在的服务器中。两个VTEP设备之间可以存在点到点的逻辑通道,即VXLAN隧道。当进行数据传输时,其中一个VTEP设备可以对数据帧封装VXLAN头、UDP(User Datagram Protocol,用户数据报协议)头和IP(Internet Protocol,网络协议)头,通过VXLAN隧道将封装后的报文发送给远端的VTEP设备,远端的VTEP设备对接收的报文进行解封,得到数据帧。
[0042] 其中,VTEP设备上设置有VSI(Virtual Switch Instance,虚拟交换实例)。该VSI可以看作是一台基于VXLAN进行二层转发的虚拟交换机,并具有以太网交换机的所有功能,包括MAC地址学习、MAC地址老化、泛洪等。VSI可以与VXLAN一一对应。
[0043] 另外,VTEP设备连接本地站点的物理电路或虚拟电路为AC链路,比如,与VSI关联的三层接口或以太网服务实例即可称为AC链路。其中,以太网服务器实例在二层以太网接口上创建,包括多个匹配规则,用于匹配二层以太网接口上接口的数据帧。
[0044] 例如,1个二层物理口下面配置了服务实例,即一个AC链路,包括Interface ten1/0/1,service-instance 10,encapsulation s-vid 10,xconnect vsi vpnb。该AC链路含义为:从物理接口ten1/0/1进入的数据报文,如果携带私网标识10,则将该数据报文进行转发至VXLAN标识为10的VXLAN网络中。其中,私网标识用于标识主机所处站点的本地网络,VXLAN标识用于对VXLAN进行标识,私网标识或VXLAN标识可以为一个字符或字符串。
[0045] 核心设备,为核心网络中的设备。核心设备可以根据封装后的报文的目标IP地址,对该报文进行三层转发。
[0046] 请参照图2,为本公开实施例所提供的一种VXLAN的结构示意图。该VXLAN包括主机1、主机2、VTEP设备1、VTEP设备2、VTEP设备3、反射路由器1、反射路由器2和交换机。主机1和主机2可以分别分布在不同的站点,且VTEP设备1和VTEP设备3与主机1分布在同一站点,VTEP设备2和主机2分布在同一站点。主机1通过交换机分别接入VTEP设备1和VTEP设备3,主机2接入VTEP设备2。VTEP设备1的IP地址为1.1.1.1,VTEP设备2的IP地址为2.2.2.2,VTEP设备3的IP地址为3.3.3.3。反射路由器1和反射路由器2分别与VTEP设备1、VTEP设备2和VTEP设备3通信连接。其中,VTEP设备1、VTEP设备2、VTEP设备3即归属于同一核心网络,并为同一VXLAN提供数据处理服务。
[0047] 其中,VTEP设备的IP地址可以作为VTEP设备地址。当然,在实际应用中,VTEP设备地址还可以包括其它类型的地址。
[0048] 为了提高接入侧的可靠性,保证虚拟局域网中数据的可靠性,可以将一个主机接入多个(两个或以上)VTEP设备,该多个VTEP设备即属于针对该主机的多归属组。若主机通过多条AC链路,分别接入多个VTEP设备,则该多个AC链路可以称为一个ES,ES可以通过ESI(Ethernet Segment Identifier,以太网段标识)进行标识。且为了避免ES可能导致VXLAN中的BUM(Broadcast&Unknown-unicast&Multicast,广播&未知单播&组播)报文出现环路等问题,该ES中可以包括一个DF(Designated Forwarder,指定转发器)设备和BDF(Backup Designated Forwarder,备份指定转发器)设备。该DF设备可以从该ES包括的多个VTEP设备中选举得到。比如图2中,主机1接入VTEP设备1和VTEP设备2,则主机1和VTEP设备1之间的AC链路1以及主机1和VTEP设备2之间的AC链路2即为一个ES,该ES可以通过ESI1进行标识。且其中,VTEP设备1可以为DF设备,VTEP3可以为BDF设备。
[0049] ESI用于标识一个ES,该ESI可以包括字符或字符串。
[0050] 反射路由器用于将VTEP设备学习到的路由发送给其它VTEP设备,从而使其它的VTEP设备也能够学习得到新的路由。
[0051] 路由用于说明VTEP设备向主机发送数据的路径。该路由可以包括目的主机的主机标识和出接口,其中,出接口为VTEP设备向主机发送数据的接口,该出接口可以包括VXLAN隧道,或者,该出接口可以包括AC链路。VXLAN隧道包括源地址和目的地址,源地址为发出数据的VTEP设备的IP地址,目的地址为接收数据的VTEP设备的IP地址。比如图2中,VTEP设备2中与主机1对应的路由即可包括IP:10.1.1.2/32MAC1-1-1,出接口为VTEP设备2与VTEP设备1之间的VXLAN隧道1,以及,VTEP设备2与VTEP设备3之间的VXLAN隧道2,VXLAN隧道1的源地址:2.2.2.2,VXLAN隧道1的目的地址1.1.1.1,VXLAN隧道2的源地址:2.2.2.2,VXLAN隧道1的目的地址3.3.3.3。当然,在实际应用中,该路由还可以包括其它信息。
[0052] 主机标识用于对主机进行标识,该主机标识可以包括主机的IP地址和/或MAC地址。当然,在实际应用中,主机标识也可以包括能够对主机进行标识的信息,比如可以包括主机编号。
[0053] VTEP设备可以事先获取VXLAN中其它VTEP设备的IP地址,将获取到的IP地址作为目的地址,将本端VTEP设备的IP地址作为源地址,构建得到与其它VTEP设备之间的VXLAN隧道。
[0054] 在如图2所示的VXLAN中,主机1上线,通过ARP(Address Resolution Protocol,地址解析协议)报文,将主机1的主机标识发送给VTEP设备1或VTEP设备3,VTEP设备1或VTEP设备3发现主机1,并向该VXLAN中的其它VTEP设备发送路由同步信息,以通知其它VTEP设备主机1上线。相应的,VTEP设备1、VTEP设备2和VTEP设备3通过相似的方式获取得到其它主机的主机标识,分别建立针对各主机的路由。VTEP设备1、VTEP设备2和VTEP设备3可以分别基于建立的路由,实现VXLAN中主机之间的数据转发,进而实现VXLAN中主机之间的通信。
[0055] 路由同步信息用于指示VTEP设备对主机对应的路由进行更新。
[0056] 其中,由于VTEP设备1和VTEP设备3属于同一多归属组,所以VTEP设备1和VTEP设备3中针对主机1的出接口,即主机1与VTEP设备1之间的AC链路1以及主机1与VTEP设备3之间的AC链路2,具有相同的ESI、私网标识和VXLAN标识。
[0057] 请参照图3,为本公开实施例所提供的另一种VXLAN的结构示意图。对比图2可知,在图2所示的VXLAN的基础上,图3所示的VXLAN还包括VTEP设备4,VTEP设备4的IP地址为4.4.4.4。另外,VTEP设备1为BDF设备,VTEP设备3为DF设备,反射路由器1分别与VTEP设备2、VTEP设备3和VTEP设备4通信连接,反射路由器2分别与VTEP设备1、VTEP设备2、VTEP设备3和VTEP设备4通信连接。
[0058] 由于主机1发生迁徙,VTEP设备1、VTEP设备2、VTEP设备3和VTEP设备4中所存储的与主机1的路由所包括的出接口与主机1实际的出接口不相符,因此,发送给主机1的数据可能难以发送至主机1,导致数据丢失。现有技术中,VTEP设备4可以在检测到主机1发生迁徙事件,即感知到主机1迁徙时,向VTEP设备1、VTEP设备2和VTEP设备3发送路由同步信息,但由于VTEP设备1和VTEP设备3属于同一ES,且当主机1迁徙前在针对主机的多归属组上线时,若是由VTEP设备1向VTEP设备3发送路由同步信息,则当主机1迁徙后,VTEP设备1需要向VTEP设备3发送路由撤销请求,VTEP设备3接收到该路由撤销请求,将由VTEP设备1同步的针对主机1的路由进行撤销,之后,VTEP设备3才能根据VTEP设备4发送的路由同步信息,对主机1对应的路由进行更新。相应的,当主机1迁徙前在针对主机的多归属组上线时,若由VTEP设备3向VTEP设备1发送路由同步信息,VTEP设备1也需要先将由VTEP设备3同步的针对主机1的路由进行撤销之后,才能够根据VTEP设备4发送的路由同步信息,对主机1对应的路由进行更新。
[0059] 其中,迁徙事件为主机从所接入的VTEP设备迁徙接入另一VTEP设备的事件。
[0060] 因此,在现有技术中,主机迁徙之后,针对迁徙主机的多归属组中可能会有部分VTEP设备难以及时对该迁徙主机所对应的路由进行更新,导致发送给迁徙主机的数据丢失的可能性依然较大,通信的可靠性较低。
[0061] 为解决上述问题,本公开提供了一种路由更新方法。对于归属于同一核心网络,并为VXLAN提供数据处理服务的VTEP设备,第一VTEP设备若接收到第二VTEP设备发送的第一路由同步信息,基于第一路由同步信息,将迁徙主机对应的路由中的出接口更新为与第二VTEP设备之间的VXLAN隧道,从而完成本端对迁徙主机对应的路由进行更新。其中,第二VTEP设备为检测到迁徙主机发生迁徙事件的设备。且第一VTEP设备还可以基于第一路由同步信息,生成第二路由同步信息,并向第三VTEP设备发送第二路由同步信息,从而使指示第三VTEP设备,将迁徙主机对应的路由中的出接口更新为与第二VTEP设备之间的VXLAN隧道,完成对迁徙主机对应的路由进行更新。其中,第三VTEP设备与第一迁徙主机归属于同一多归属组。因此,当主机发生迁徙事件时,对于该多归属组的任一VTEP设备,能够在接收到第一路由同步信息时,及时将本端与迁徙主机对应的路由进行更新,还能够向同一多归属组中的其它VTEP设备发送第二路由同步信息,指示同一多归属组中其它的VTEP设备及时对与迁徙主机对应的路由进行更新,而不需要对已有的对应该迁徙主机的路由进行撤销,提高了更新路由的效率和可靠性,减少了发送该迁徙主机的数据丢失的可能,提高了通信的可靠性。
[0062] 迁徙主机为发生迁徙事件的主机。
[0063] 第一VTEP设备和第三VTEP设备可以同一多归属组的VTEP设备。
[0064] 第二VTEP设备为检测到迁徙主机发生迁徙事件的VTEP设备,即为迁徙主机完成迁徙之后所接入的VTEP设备。
[0065] 请参照图4,为本公开实施例所提供的一种路由更新方法的流程示意图。该方法应用于第一VTEP设备中,第一VTEP设备、第二VTEP设备和第三VTEP设备归属于同一核心网络,并为同一VXLAN提供数据处理服务,第三VTEP设备与第一VTEP设备归属于同一多归属组。其中,第一VTEP设备可以为图2、图3所示的VTEP设备1或VTEP设备3。需要说明的是,本公开实施例所述的路由更新方法并不以图4以及以下所述的具体顺序为限制,应当理解,在其它实施例中,本公开实施例所述的路由更新方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。下面将对图4所示的流程进行详细阐述。
[0066] 步骤401,接收第二VTEP设备在检测到主机发生迁徙事件后生成并发送的第一路由同步信息。
[0067] 为了便于在VXLAN中的主机发生迁徙事件时,使为该VXLAN提供数据处理服务的其它VTEP设备也能够对迁徙主机对应的路由进行更新,提高通信的可靠性,可以接收来自第二VTEP设备的第一路由同步信息。
[0068] 第一路由同步信息用于指示接收到第一路由同步信息的VTEP设备(比如第一VTEP设备),对迁徙主机对应的路由进行更新,包括将与迁徙主机对应的路由中的出接口,更新为与迁徙主机当前所接入的VTEP设备(比如第二VTEP设备)之间的VXLAN隧道。第一路由同步信息可以由第二VTEP设备在检测到主机发生迁徙事件后生成,其中可以携带主机标识、第二迁徙标识以及第二VTEP设备的VTEP设备地址。
[0069] 迁徙标识用于说明由主机迁徙引起的路由的状态变更信息,可以包括一个字符或字符串,比如,迁徙标识可以包括数值,当数字的值越大,可能主机迁徙的次数越多,相应的,迁徙主机对应的路由的状态也就越新。当VTEP设备从本地获取得到主机1的迁徙标识为0,且接收到路由同步信息中携带的迁徙标识为1,由于1大于0,则可以确定需要对本地主机
1所对应的路由进行更新。当然,在实际应用中,该迁徙标识还可以通过其它字符或字符串来表示,比如,该迁徙标识可以包括检测到主机发生迁徙事件时的时刻。
[0070] 需要说明的是,第二VTEP设备可以在检测到主机接入,且确定本地已存储有与该主机对应的路由时,确定该主机发生迁徙事件,该主机即为迁徙主机。且对于第二迁徙标识,根据迁徙标识的形式,选择相对应的方式进行获取。比如,当迁徙标识表示迁徙主机进行迁徙的次数时,可以基于当前迁徙主机进行迁徙的次数,确定第二迁徙标识。
[0071] 其中,可以接收用户针对当前发生迁徙事件的迁徙主机提交的数值,以作为该主机当前进行迁徙的次数;或者,基于本地存储的该主机进行迁徙的次数,在该次数的基础上递增预设数值,将递增之后的数值作为主机当前进行迁徙的次数。
[0072] 预设数值可以通过事先确定得到,比如通过接收用户提交的数值得到等。例如,预设数值可以为1。
[0073] 需要说明的是,第一路由同步信息还可以携带其它信息,比如当迁徙主机迁徙后接入多个VTEP设备时,第一路由同步信息还可以包括除第二VTEP设备之外其它VTEP设备的VTEP设备地址。
[0074] 步骤402,基于所述第一路由同步信息,生成第二路由同步信息。
[0075] 由于处于同一多归属组的VTEP设备可能位于同一站点,彼此之间进行通信的效率也较高,所以为了确保在主机发生迁徙事件时,处于同一多归属组的VTEP设备能够及时对与迁徙主机对应的路由进行更新,提高对路由进行更新的效率和可靠性,进而提高通信的可靠性,第一VTEP设备可以基于第一路由同步信息,生成第二路由同步信息,以通过第二路由同步信息,指示与第一VTEP设备归属于同一多归属组的第三VTEP设备,对与该迁徙主机对应的路由进行更新。
[0076] 其中,第二路由同步信息用于指示所述第三VTEP设备对迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口,更新为与所述第二VTEP设备之间的VXLAN隧道。
[0077] 在本公开实施例中,由于迁徙标识用于说明由主机迁徙引起的路由的状态变更信息,因此,为了提高指示第三VTEP设备对路由进行更新的可靠性,第二路由同步信息中的可以包括第一迁徙标识,且为了使第三VTEP设备确定第二路由同步信息是来同一多归属组的VTEP设备,进而及时对路由进行更新,提高第三VTEP设备对路由进行更新的效率和可靠性,第二路由同步信息中可以包括多归属标识,也即是,所述第二路由同步信息包括第一迁徙标识和多归属标识。另外,为了使第三VTEP设备确定当前发生迁徙事件的主机以及迁徙主机迁徙之后所接入的VTEP设备,第二路由同步信息中还可以包括迁徙主机的主机标识和第二VTEP设备的VTEP设备地址。
[0078] 多归属标识用于说明接收到路由同步信息的VTEP设备,与发送该路由同步信息的VTEP设备处于同一多归属组。该多归属标识可以通过事先确定。该多归属标识可以通过一个字符或字符串来表示。
[0079] 需要说明的是,在实际应用中,第二路由同步信息中还可以携带其它信息,比如与更新路由相关的配置信息等。
[0080] 第一VTEP设备可以从第一路由同步信息中获取得到第二迁徙标识、迁徙主机的主机标识和第二VTEP设备的VTEP设备地址;并基于第二迁徙标识生成第一迁徙标识;生成多归属标识;然后将第一迁徙标识、多归属标识、迁徙主机的主机标识和第二VTEP设备的VTEP设备地址,携带在第二路由同步信息中。
[0081] 在本公开实施例中,为了通过数值准确直观地说明路由的状态变更信息,迁徙标识包括数值,相应的,由于第二路由同步信息是在第一路由同步信息之后生成,因此,为了确保接收到第二路由同步信息的VTEP设备,能够可靠地基于第二路由同步信息,即基于最新生成的路由同步信息,对与迁徙主机对应的路由进行更新,提高对路由进行更新的可靠性,第一VTEP设备可以获取所述第一路由同步信息携带的第二迁徙标识,将所述第二迁徙标识递增之后的数值确定为第一迁徙标识,将所述第一迁徙标识添加至所述第一路由同步信息。
[0082] 其中,可以将第二迁徙标识递增预设数值,将递增之后的数值确定为第一迁徙标识。
[0083] 步骤403,向第三VTEP设备发送所述第二路由同步信息,并基于所述第一路由同步信息对迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道。
[0084] 为了确保在主机发生迁徙事件之后,对于该多归属组的任一VTEP设备,都能够及时对与迁徙主机对应的路由进行更新,第一VTEP设备可以基于第一路由同步信息,将迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道,并向第三VTEP设备发送第二路由同步信息,以指示同一多归属组中其它的VTEP设备及时对与迁徙主机对应的路由进行更新。由于不需要对已有的对应该迁徙的路由进行撤销,提高了更新路由的效率和可靠性,减少了发送该迁徙主机的数据丢失的可能,进而提高了通信的可靠性。
[0085] 其中,第三VTEP设备即为前述中与第一VTEP设备归属于同一多归属组的VTEP设备。
[0086] 第一VTEP设备可以基于第一VTEP设备,获取与第一VTEP设备处于同一多归属组的VTEP设备作为第三VTEP设备。
[0087] 当第一VTEP设备基于第一路由同步信息,将迁徙主机对应的路由进行更新时,可以基于第一路由同步信息中携带的主机标识,在本地查找与迁徙主机对应的路由。
[0088] 若存在与迁徙主机对应的路由,则可以获取第一路由同步信息中携带的第二迁徙标识,将第二迁徙标识与该本地的路由中的迁徙标识进行比较。如果第二迁徙标识大于本地的路由中的迁徙标识,则基于第一路由同步信息中携带的第二VTEP设备的VTEP设备地址,确定迁徙主机当前接入的VTEP设备为第二VTEP设备,将该路由中的出接口修改为即为第一VTEP设备与第二VTEP设备之间的VXLAN隧道,该VXLAN隧道的源地址为第一VTEP设备的VTEP设备地址,目的地址为第二VTEP设备的VTEP设备地址,并将该路由中的迁徙标识替换为第二迁徙标识。如果第二迁徙标识小于或等于本地的路由中的迁徙标识,则可以不对迁徙主机对应的路由进行更新。
[0089] 需要说明的是,由上述可知,在对迁徙主机对应的路由进行更新时,包括将迁徙主机对应的路由中的出接口,更新为与当前该迁徙主机所接入的VTEP设备之间的VXLAN隧道,当然,在实际应用中,对迁徙主机对应的路由进行更新还可以包括其它操作,比如对该路由中的迁徙标识进行更新等。
[0090] 若不存在与迁徙主机对应的路由,则可以基于第一路由同步信息中携带的第二VTEP设备的VTEP设备地址,确定迁徙主机当前接入的VTEP设备为第二VTEP设备,生成与迁徙主机对应的路由,该路由中的出接口即为第一VTEP设备与第二VTEP设备之间的VXLAN隧道,且第一VTEP设备还可以将第一路由同步信息中携带的第二迁徙标识存储至所生成的路由中。
[0091] 当第三VTEP设备接收到第二路由同步信息时,确定第二路由同步信息中携带有多归属标识,即确定第二路由同步信息来自同一多归属组中的VTEP设备,则可以基于第二路由同步信息,将迁徙主机对应的路由进行更新。
[0092] 第三VTEP设备可以基于第二路由同步信息中携带的主机标识,在本地查找与迁徙主机对应的路由。
[0093] 若存在与迁徙主机对应的路由,则可以获取第二路由同步信息中携带的第一迁徙标识,将第一迁徙标识与该本地的路由中的迁徙标识进行比较。如果第一迁徙标识大于本地的路由中的迁徙标识,则基于第二路由同步信息中携带的第二VTEP设备的VTEP设备地址,确定迁徙主机当前接入的VTEP设备为第二VTEP设备,将该路由中的出接口修改为即为第三VTEP设备与第二VTEP设备之间的VXLAN隧道,该VXLAN隧道的源地址为第三VTEP设备的VTEP设备地址,目的地址为第二VTEP设备的VTEP设备地址,并将该路由中的迁徙标识替换为第一迁徙标识。如果第一迁徙标识小于或等于本地的路由中的迁徙标识,则可以不对迁徙主机对应的路由进行更新。
[0094] 若不存在与迁徙主机对应的路由,则可以基于第二路由同步信息中携带的第二VTEP设备的VTEP设备地址,确定迁徙主机当前接入的VTEP设备为第二VTEP设备,生成与迁徙主机对应的路由,该路由中的出接口即为第三VTEP设备与第二VTEP设备之间的VXLAN隧道,且第三VTEP设备还可以将第二路由同步信息中携带的第一迁徙标识存储至所生成的路由中。
[0095] 需要说明的是,在实际应用中,第一VTEP设备可以先向第三VTEP设备发送第二路由同步信息,当然也可以先基于第一路由同步信息将迁徙主机对应的路由中的出接口更新为与第二VTEP设备之间的VXLAN隧道,本公开实施例对向第三VTEP设备发送第二路由同步信息,以及基于第一路由同步信息将迁徙主机对应的路由中的出接口更新为与第二VTEP设备之间的VXLAN隧道的次序不做限制。
[0096] 在本公开实施例中,对于归属于同一核心网络,并为VXLAN提供数据处理服务的VTEP设备,第一VTEP设备若接收到检测到迁徙主机发生迁徙事件的第二VTEP设备发送的第一路由同步信息,可以基于第一路由同步信息,将迁徙主机对应的路由中的出接口更新为与第二VTEP设备之间的VXLAN隧道,从而完成本端对迁徙主机对应的路由进行更新。且第一VTEP设备还可以基于第一路由同步信息,生成第二路由同步信息,并向与第一迁徙主机归属于同一多归属组第三VTEP设备,发送第二路由同步信息,从而使指示第三VTEP设备,将迁徙主机对应的路由中的出接口更新为与第二VTEP设备之间的VXLAN隧道,完成对迁徙主机对应的路由进行更新。因此,当主机发生迁徙事件时,对于该多归属组的任一VTEP设备,能够在接收到第一路由同步信息时,及时将本端与迁徙主机对应的路由进行更新,还能够向同一多归属组中的其它VTEP设备发送第二路由同步信息,指示同一多归属组中其它的VTEP设备及时对与迁徙主机对应的路由进行更新,而不需要对已有的对应该迁徙主机的路由进行撤销,提高了更新路由的效率和可靠性,减少了发送该迁徙主机的数据丢失的可能,提高了通信的可靠性。
[0097] 请参照图5,为本公开实施例所提供的一种路由更新方法的流程示意图。该方法应用于第三VTEP设备中,第一VTEP设备、第二VTEP设备和第三VTEP设备归属于同一核心网络,并为同一VXLAN提供数据处理服务,第三VTEP设备与第一VTEP设备归属于同一多归属组。第三VTEP设备中可以为图2、图3所示的VTEP设备1或VTEP设备3。需要说明的是,本公开实施例所述的路由更新方法并不以图5以及以下所述的具体顺序为限制,应当理解,在其它实施例中,本公开实施例所述的路由更新方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。下面将对图5所示的流程进行详细阐述。
[0098] 步骤501,接收来自第一VTEP设备的第二路由同步信息,所述第二路由同步信息由所述第一VTEP设备在接收来自所述第二VTEP设备的第一路由同步信息之后,基于所述第一路由同步信息生成,所述第二路由同步信息用于指示所述第三VTEP设备对迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道,所述第一路由同步信息由所述第二VTEP设备在检测到所述迁徙主机发生迁徙事件后生成。
[0099] 为了确保在主机发生迁徙事件之后,对于该多归属组的任一VTEP设备,能够在接收到第二路由同步信息时,及时对与迁徙主机对应的路由进行更新,而不需要对已有的对应该迁徙的路由进行撤销,提高更新路由的效率和可靠性,减少发送该迁徙主机的数据丢失的可能,进而提高通信的可靠性,第三VTEP设备可以接收来自第二VTEP设备的第二路由同步信息,以基于第二路由同步信息,对与该迁徙主机对应的路由进行更新。
[0100] 步骤502,基于所述第二路由同步信息,对所述迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道。
[0101] 其中,第三VTEP设备基于第二路由,对迁徙主机对应的路由进行更新,包括将迁徙主机对应的路由中的出接口更新为与第二VTEP设备之间的VXLAN隧道,从而完成对迁徙主机对应的路由进行更新的方式,可以参见前述中的相关描述,此处不再一一赘述。
[0102] 在本公开实施例中,在本公开实施例中,对于归属于同一核心网络,并为VXLAN提供数据处理服务的VTEP设备,第一VTEP设备若接收到检测到迁徙主机发生迁徙事件的第二VTEP设备发送的第一路由同步信息,可以基于第一路由同步信息,生成第二路由同步信息,并向与第一迁徙主机归属于同一多归属组第三VTEP设备,发送第二路由同步信息,从而使指示第三VTEP设备,将迁徙主机对应的路由中的出接口更新为与第二VTEP设备之间的VXLAN隧道,完成对迁徙主机对应的路由进行更新。因此,当主机发生迁徙事件时,对于该多归属组的任一VTEP设备,能够在接收到第一路由同步信息时,向同一多归属组中的其它VTEP设备发送第二路由同步信息,指示同一多归属组中其它的VTEP设备及时对与迁徙主机对应的路由进行更新,提高了VTEP设备更新的效率和可靠性,进而也提高了该VXLAN中通信的可靠性。
[0103] 请参照图6,为本公开实施例所提供的一种路由更新方法的流程示意图。该方法应用于图1、图2、图3所示的VTEP设备之间的交互中,其中,第一VTEP设备、第二VTEP设备和第三VTEP设备归属于同一核心网络,并为同一VXLAN提供数据处理服务,第三VTEP设备与第一VTEP设备归属于同一多归属组。需要说明的是,本公开实施例所述的路由更新方法并不以图6以及以下所述的具体顺序为限制,应当理解,在其它实施例中,本公开实施例所述的路由更新方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。下面将对图6所示的流程进行详细阐述。
[0104] 步骤601,主机上线,接入VXLAN。
[0105] 当主机上线时,可以通过ARP报文通知本地所接入的VTEP设备,该VTEP设备生成与该主机对应的路由,并向VXLAN中其它的VTEP设备发送路由同步信息,以通知其它VTEP设备该主机上线,从而使其它VTEP设备也分别学习得到该主机对应的路由。
[0106] 例如,在如图3所示的VXLAN中,主机1上线,接入ES1,通过ARP报文将该主机1上线通知给VTEP设备1,VTEP设备1生成对应主机1的路由:主机1 IP:10.1.1.2/32MAC 1-1-1出接口为AC链路1,AC链路1被配置为service-instance 10,encapsulation s-vid 10,xconnect vsi vpnb,ESI 1,表示若接收的数据所携带的私网标识为10,则将该数据转发至VXLAN标识为10的VXLAN中。其中,“主机1”为主机编号。VTEP设备1还向VTEP设备2、VTEP设备3和VTEP设备4发送路由同步信息,该路由同步信息可以包括主机1的主机标识、主机1所接入的VTEP设备的VTEP设备地址以及初始迁徙标识。比如,该路由同步信息即可包括VTEP设备1生成的对应于主机1的路由。主机2接收到该路由同步信息,生成与主机1对应的路由:主机1 IP:10.1.1.2/32MAC 1-1-1,出接口为VTEP设备2与VTEP设备1之间的VXLAN隧道1,以及,VTEP设备2与VTEP设备3之间的VXLAN隧道2;VXLAN隧道1的源地址:2.2.2.2;目的地址:
1.1.1.1;VXLAN隧道2的源地址:2.2.2.2;目的地址:3.3.3.3。VTEP设备3生成主机1对应的路由:主机1 IP:10.1.1.2/32MAC 1-1-1出接口为AC链路2,其中,AC链路2与AC链路1的配置相同。VTEP设备4生成主机1对应的路由:主机1 IP:10.1.1.2/32MAC 1-1-1出接口为VTEP设备4与VTEP设备1之间的VXLAN隧道3,以及VTEP设备4与VTEP设备3之间的VXLAN隧道4;VXLAN隧道3的源地址:4.4.4.4;目的地址:1.1.1.1;VXLAN隧道4的源地址:4.4.4.4;目的地址:
3.3.3.3。另外,在上述生成的与主机1对应的路由时,为了便于后续VTEP设备确定主机是否发生迁徙,以及是否需要对该主机对应的路由进行更新,以提高通信的可靠性,可以将初始迁徙标识添加至该路由中。
[0107] 其中,当迁徙标识包括数值时,该初始迁徙标识可以为0。
[0108] 在本公开实施例中,路由或路由同步信息可以携带针对该路由的团体属性字段,包括标准团体属性字段和扩展团体属性字段,该团体属性字段用于对该路由进行标记,以说明该路由的相关属性,比如来源等,在后续中VTEP设备可以根据该团体属性字段确定对路由的处理策略,比如过滤或转发等,因此,为了传递或存储与迁徙主机对应的迁徙标识的准确性和可靠性,确保VTEP设备能够根据迁徙主机的迁徙标识,对与该迁徙主机对应的路由进行更新,提高VTEP设备对路由进行更新的准确性和可靠性,可以将迁徙标识添加至扩展团体属性字段中,也即是,迁徙标识可以携带在扩展团体属性字段汇中。当然,在实际应用中,将迁徙标识添加至标准团体属性字段中。
[0109] 扩展团体属性字段共包括64bit(位),其中,type(类型)字段占用16bit,Reserved(保留)字段占用16bit,迁徙标识(比如第二迁徙标识)即可以携带在Reserved字段或剩余的字段中。
[0110] 步骤602,第二VTEP设备检测到所述主机发生迁徙事件。
[0111] 其中,第二VTEP设备检测主机发生迁徙事件的方式,可以参见前述中相关描述,此处不再一一赘述。
[0112] 例如,在如图3所示的VXLAN中,主机1迁徙至VTEP设备4,VTEP设备4检测到本地接入主机1,且确定本地已存储有主机1对应的路由,则确定主机1发生迁徙事件。
[0113] 步骤603,所述第二VTEP设备生成第一路由同步信息。
[0114] 第二VTEP设备可以将第二VTEP设备的VTEP设备地址、迁徙主机的主机标识和第二迁徙标识携带在第一路由同步信息中。
[0115] 在本公开实施例中,由前述可知,为了传递或存储与主机对应的迁徙标识的准确性和可靠性,可以将迁徙标识存储至路由所携带的团体属性字段中,因此,第二VTEP设备可以根据迁徙主机的主机标识,获取与该迁徙主机对应的路由,从该路由中获取本地迁徙标识,根据本地迁徙标识确定第一迁徙标识,比如若迁徙标识包括数值,则将该本地迁徙标识递增预设数值,将递增后的数值作为第一迁徙标识。
[0116] 可以从路由中获取所携带的扩展团体属性字段,从该扩展团体属性字段中获取本地迁徙标识。当然,若迁徙标识携带在标准团体属性字段,则也可以通过相似的方式,从标准团体属性字段中获取本地迁徙标识。
[0117] 需要说明的是,在实际应用中,若迁徙标识未携带在团体属性字段中,而是与主机对应存储在VTEP设备本地的其它位置,也可以根据主机标识,从与迁徙主机对应的存储位置,获取本地迁徙标识。或者,若迁徙标识携带在团体属性字段中,但团体属性字段存储在与主机对应的其它位置,也可以根据主机标识,从与该迁徙主机对应的存储位置,获取团体属性字段,进而获取得到本地迁徙标识。
[0118] 在本公开实施例中,为了确保检测到主机发生迁徙事件的VTEP设备能够对迁徙主机对应的路由进行更新,提高对路由进行更新的可靠性,第二VTEP设备可以对迁徙主机对应的路由进行更新。
[0119] 第二VTEP设备可以将迁徙主机对应的路由中的出接口修改为该迁徙主机与第二VTEP设备之间的AC链路。且为了便于后续迁徙主机再次发生迁徙事件时,也能够准确地对该迁徙主机对应的路由进行更新,进一步提高更新路由的可靠性,可以将本地迁徙标识替换为第二迁徙标识。当然,如果未存储本地迁徙标识,则直接将第二迁徙标识作为本地迁徙标识进行存储。
[0120] 例如,在如图3所示的VXLAN中,VTEP设备4可以将主机1对应的路由中的出接口,修改为主机1与VTEP设备4之间的AC链路,更新后的路由包括:主机1 IP:10.1.1.2/32MAC 1-1-1出接口为主机1与VTEP4设备之间的AC链路。
[0121] 需要说明的是,第二VTEP设备可以先对迁徙主机对应的路由进行更新,当然也可以先生成第一路由同步信息,本公开实施例对对迁徙主机对应的路由进行更新以及生成第一路由同步信息的次序不做限制。
[0122] 步骤604,所述第二VTEP设备向第一VTEP设备发送所述第一路由同步信息。
[0123] 为了便于在发生主机迁徙事件时,为VXLAN提供数据处理服务的VTEP设备都能够及时对与该主机对应的路由进行更新,以提高该VXLAN中通信的可靠性,检测到主机发生迁徙事件的第二VTEP设备,可以将第一路由同步信息发送给第一VTEP设备。
[0124] 需要说明的是,第二VTEP设备可以先对迁徙主机对应的路由进行更新,当然也可以先向第一VTEP设备发送第一路由同步信息,本公开实施例对迁徙主机对应的路由进行更新以及向第一VTEP设备发送第一路由同步信息的次序不做限制。
[0125] 步骤605,所述第一VTEP设备接收所述第二VTEP设备在检测到主机发生迁徙事件后生成并发送的第一路由同步信息。
[0126] 其中,第一VTEP设备接收来第一路由同步信息的方式,可以参见前述中的相关描述,此处不再一一赘述。
[0127] 步骤606,所述第一VTEP设备基于所述第一路由同步信息,对迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道。
[0128] 为了便于在发生主机迁徙事件时,为VXLAN提供数据处理服务的VTEP设备都能够及时对与该主机对应的路由进行更新,以提高该VXLAN中通信的可靠性,接收到第一路由同步信息的VTEP设备,可以基于第一路由同步信息,对与迁徙主机对应的路由进行更新。
[0129] 第一VTEP设备可以基于第一路由同步信息,对与迁徙主机对应的路由进行更新,包括将迁徙主机对应的路由中的出接口更新为与第二VTEP设备之间的VXLAN隧道。
[0130] 其中,第一VTEP设备基于第一路由同步信息,对与迁徙主机对应的路由进行更新的方式,可以参见前述中的相关描述,此处不再一一赘述。
[0131] 例如,在如图3所示的VXLAN中,VTEP设备3接收到VTEP设备4的路由同步信息,基于主机1的主机标识,从本地获取主机1对应的路由,该路由中携带的本地迁徙标识为0,路由同步信息中携带的第二迁徙标识为1。由于1大于0,则确定对主机1对应的路由进行更新。VTEP设备3基于主机1的主机标识,从本地获取得到主机1对应的路由:主机1 IP:10.1.1.2/
32MAC 1-1-1出接口为AC2口,将该路由的出接口修改为VTEP设备3与VTEP设备4之间的VXLAN隧道5,VXLAN隧道5的源地址3.3.3.3,目的地址4.4.4.4。更新之后,主机1对应的路由为:主机1 IP:10.1.1.2/32MAC 1-1-1出接口为VTEP设备3与VTEP设备4之间的VXLAN隧道5,VXLAN隧道5的源地址3.3.3.3,目的地址4.4.4.4。另外,VTEP设备3可以将路由中的本地迁徙标识替换为第二迁徙标识为1。
[0132] 需要说明的是,在实际应用中,第一VTEP设备也可以在步骤605接收到第一路由同步信息之后的任意时机,对针对迁徙主机对应的路由进行更新。
[0133] 步骤607,所述第一VTEP设备基于所述第一路由同步信息,生成第二路由同步信息。
[0134] 其中,第一VTEP设备基于第一路由同步信息,生成第二路由同步信息的方式,可以参见前述中的相关描述,此处不再一一赘述。
[0135] 在本公开实施例中,为了传递或存储多归属标识的准确性和可靠性,确保VTEP设备能够根据多归属标识,确定第二路由同步信息是来源于与同一归属组的VTEP设备,进而对与该迁徙主机对应的路由进行更新,提高VTEP设备对路由进行更新的准确性和可靠性,可以将多归属标识添加至扩展团体属性字段中,也即是,多归属标识可以携带在扩展团体属性字段中。当然,在实际应用中,也可以将多归属标识添加至标准团体属性字段。
[0136] 例如,可以将扩展团体属性中的Reserved字段的最高位设置为1,以作为多归属标识。
[0137] 例如,在如图3所示的VXLAN中,VTEP设备3接收到VTEP设备4发送的第一路由同步信息,第一路由同步信息包括的第二迁徙标识为1,则VTEP设备3将第二迁徙标识递增1,将递增之后的数值2作为第一迁徙标识。
[0138] 需要说明的是,由前述可知,迁徙标识可以携带在扩展团体属性中,因此,在生成第二路由同步信息时,可以将第一迁徙标识和多归属标识均添加至扩展团体属性字段中,也即是,第一迁徙标识和多归属标识均可携带在扩展团体属性字段中。
[0139] 步骤608,所述第一VTEP设备向所述第三VTEP设备发送所述第二路由同步信息。
[0140] 为了确保在主机发生迁徙事件时,处于同一多归属组的VTEP设备都能够及时对与迁徙主机对应的路由进行更新,提高对路由进行更新的效率和可靠性,进而提高通信的可靠性,第一VTEP设备可以将第二路由同步信息发送给第三VTEP设备。
[0141] 例如,在如图3所示的VXLAN中,VTEP设备3向同一多归属组中的VTEP设备1发送第二路由同步信息,在该路由所携带的扩展团体属性中,Reserved字段的最高位为1,第一迁徙标识为2。
[0142] 步骤609,所述第三VTEP设备接收来自所述第一VTEP设备的第二路由同步信息。
[0143] 其中,第三VTEP设备接收第二路由同步信息的方式,可以参见前述中的相关描述,此处不再一一赘述。
[0144] 步骤610,所述第三VTEP设备基于所述第二路由同步信息,对所述迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道。
[0145] 其中,第三VTEP设备基于第二路由同步信息,对所述迁徙主机对应的路由进行更新的方式,可以参见前述中的相关描述,此处不再一一赘述。
[0146] 例如,在如图3所示的VXLAN中,VTEP设备1接收到第二路由同步信息,且确定Reserved字段的最高位为1,第一迁徙标识为2,则直接将主机1对应的路由中的出接口进行更新,得到更新的路由为:主机1IP:10.1.1.2/32MAC 1-1-1出接口为VTEP设备1与VTEP设备4之间的VXLAN隧道6,VXLAN隧道6的源地址:1.1.1.1;目的地址:4.4.4.4。另外,VTEP设备1可以将路由中的迁徙标识修改为第一迁徙标识2。
[0147] 在本公开实施例中,由前述可知,第一迁徙标识和多归属标识可以携带在扩展团体属性字段中,因此,为了提高获取到第一迁徙标识和多归属标识准确性和可靠性,进而提高对路由更新的可靠性,第三VTEP设备可以从所述第二路由同步信息中,获取扩展团体属性字段,从所述扩展团体属性字段中,获取所述第一迁徙标识和所述多归属标识。
[0148] 需要说明的是,在实际应用中,若第一迁徙标识和多归属标识携带在标准团体属性字段中,也可以从标准团体属性字段获取第一迁徙标识和多归属标识。
[0149] 在本公开实施例中,由于第三VTEP设备也可能接收得到来自第二VTEP设备的第一路由同步信息,因此,为了确保第三VTEP设备能够根据所表示路由的状态变更信息较新的路由同步信息,对迁徙主机对应路由进行更新,提高对路由表型进行更新的可靠性,若迁徙标识包括数值,则第三VTEP设备若接收到所述第一路由同步信息,则从第一路由同步信息获取所述第二迁徙标识,从所述第二路由同步信息获取所述第一迁徙标识,若所述第一迁徙标识大于所述第二迁徙标识,则执行所述基于所述第二路由同步信息,将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道的步骤。
[0150] 需要说明的是,若第三VTEP设备仅接收到第一路由同步信息,则可以参见前述中第一VTEP设备接收到第一路由同步信息之后的相关操作,以对与迁徙主机对应的路由进行更新,并使与第三VTEP设备归属同一多归属组中的VTEP设备对与该迁徙主机对应的路由进行更新。也即是,对于同一多归属组中的任一VTEP设备,既可以根据来自检测到该迁徙主机进行迁徙的VTEP设备的第一路由同步信息,对路由进行更新,也可以根据来自同一归属组中的其它VTEP设备的第二路由同步信息,对路由进行更新。因此,对于同一多归属组中的任一VTEP设备,无论最先接收到的是第一路由同步信息或第二路由同步信息,都能够对路由进行更新,提高了对路由进行更新的效率和可靠性,提高通信的可靠性。
[0151] 在本公开实施例中,对于归属于同一核心网络,并为VXLAN提供数据处理服务的VTEP设备,第一VTEP设备若接收到检测到迁徙主机发生迁徙事件的第二VTEP设备发送的第一路由同步信息,可以基于第一路由同步信息,将迁徙主机对应的路由中的出接口更新为与第二VTEP设备之间的VXLAN隧道,从而完成本端对迁徙主机对应的路由进行更新。且第一VTEP设备还可以基于第一路由同步信息,生成第二路由同步信息,并向与第一迁徙主机归属于同一多归属组第三VTEP设备,发送第二路由同步信息,从而使指示第三VTEP设备,将迁徙主机对应的路由中的出接口更新为与第二VTEP设备之间的VXLAN隧道,完成对迁徙主机对应的路由进行更新。因此,当主机发生迁徙事件时,对于该多归属组的任一VTEP设备,能够在接收到第一路由同步信息时,及时将本端与迁徙主机对应的路由进行更新,还能够向同一多归属组中的其它VTEP设备发送第二路由同步信息,指示同一多归属组中其它的VTEP设备及时对与迁徙主机对应的路由进行更新,而不需要对已有的对应该迁徙主机的路由进行撤销,提高了更新路由的效率和可靠性,减少了发送该迁徙主机的数据丢失的可能,提高了通信的可靠性。
[0152] 请参照图7,为本公开实施例所提供的路由更新装置700的功能模块示意图。路由更新装置700应用于所述第一VTEP设备中,第一VTEP设备、第二VTEP设备和第三VTEP设备归属于同一核心网络,并为同一VXLAN提供数据处理服务,第三VTEP设备与第一VTEP设备归属于同一多归属组。需要说明的是,本公开实施例所提供的路由更新装置700,其基本原理及产生的技术效果与前述对应的方法实施例相同,为简要描述,本公开实施例中未提及部分,可参考方法实施例中的相应内容。该路由更新装置700包括:
[0153] 接收模块701,用于接收所述第二VTEP设备在检测到主机发生迁徙事件后生成并发送的第一路由同步信息;
[0154] 生成模块702,用于基于所述第一路由同步信息,生成第二路由同步信息;
[0155] 更新模块703,用于向所述第三VTEP设备发送所述第二路由同步信息,并基于所述第一路由同步信息对迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道;
[0156] 其中,所述第二路由同步信息用于指示所述第三VTEP设备对所述迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口,更新为与所述第二VTEP设备之间的VXLAN隧道。
[0157] 可选的,所述第二路由同步信息包括第一迁徙标识、多归属标识、所述迁徙主机的主机标识和所述第二VTEP设备的VTEP设备地址。
[0158] 可选的,所述第一迁徙标识和所述多归属标识携带在所述第二路由同步信息所包括的扩展团体属性字段中。
[0159] 在本公开实施例中,对于归属于同一核心网络,并为VXLAN提供数据处理服务的VTEP设备,第一VTEP设备若接收到检测到迁徙主机发生迁徙事件的第二VTEP设备发送的第一路由同步信息,可以基于第一路由同步信息,将迁徙主机对应的路由中的出接口更新为与第二VTEP设备之间的VXLAN隧道,从而完成本端对迁徙主机对应的路由进行更新。且第一VTEP设备还可以基于第一路由同步信息,生成第二路由同步信息,并向与第一迁徙主机归属于同一多归属组第三VTEP设备,发送第二路由同步信息,从而使指示第三VTEP设备,将迁徙主机对应的路由中的出接口更新为与第二VTEP设备之间的VXLAN隧道,完成对迁徙主机对应的路由进行更新。因此,当主机发生迁徙事件时,对于该多归属组的任一VTEP设备,能够在接收到第一路由同步信息时,及时将本端与迁徙主机对应的路由进行更新,还能够向同一多归属组中的其它VTEP设备发送第二路由同步信息,指示同一多归属组中其它的VTEP设备及时对与迁徙主机对应的路由进行更新,而不需要对已有的对应该迁徙主机的路由进行撤销,提高了更新路由的效率和可靠性,减少了发送该迁徙主机的数据丢失的可能,提高了通信的可靠性。
[0160] 请参照图8,为本公开实施例所提供的路由更新装置800的功能模块示意图。路由更新装置800应用于所述第三VTEP设备中,第一VTEP设备、第二VTEP设备和第三VTEP设备归属于同一核心网络,并为同一VXLAN提供数据处理服务,第三VTEP设备与第一VTEP设备归属于同一多归属组。需要说明的是,本公开实施例所提供的路由更新装置800,其基本原理及产生的技术效果与前述对应的方法实施例相同,为简要描述,本公开实施例中未提及部分,可参考方法实施例中的相应内容。该路由更新装置800包括:
[0161] 接收模块801,用于接收来自所述第一VTEP设备的第二路由同步信息,所述第二路由同步信息由所述第一VTEP设备在接收来自所述第二VTEP设备的第一路由同步信息之后,基于所述第一路由同步信息生成,所述第二路由同步信息用于指示所述第三VTEP设备对迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道,所述第一路由同步信息由所述第二VTEP设备在检测到所述迁徙主机发生迁徙事件后生成;
[0162] 更新模块802,用于基于所述第二路由同步信息,对所述迁徙主机对应的路由进行更新,包括将所述迁徙主机对应的路由中的出接口更新为与所述第二VTEP设备之间的VXLAN隧道。
[0163] 可选的,所述第一路由同步信息包括第二迁徙标识,所述第二路由同步信息包括第一迁徙标识,迁徙标识包括数值,所述装置还包括:
[0164] 第一获取模块,用于若接收到所述第一路由同步信息,则从第一路由同步信息获取所述第二迁徙标识;
[0165] 第二获取模块,用于从所述第二路由同步信息获取所述第一迁徙标识;
[0166] 触发模块,用于若所述第一迁徙标识大于所述第二迁徙标识,则触发所述更新模块执行所述基于所述第二路由同步信息,对所述迁徙主机对应的路由进行更新的步骤。
[0167] 在本公开实施例中,在本公开实施例中,对于归属于同一核心网络,并为VXLAN提供数据处理服务的VTEP设备,第一VTEP设备若接收到检测到迁徙主机发生迁徙事件的第二VTEP设备发送的第一路由同步信息,可以基于第一路由同步信息,生成第二路由同步信息,并向与第一迁徙主机归属于同一多归属组第三VTEP设备,发送第二路由同步信息,从而使指示第三VTEP设备,将迁徙主机对应的路由中的出接口更新为与第二VTEP设备之间的VXLAN隧道,完成对迁徙主机对应的路由进行更新。因此,当主机发生迁徙事件时,对于该多归属组的任一VTEP设备,能够在接收到第一路由同步信息时,向同一多归属组中的其它VTEP设备发送第二路由同步信息,指示同一多归属组中其它的VTEP设备及时对与迁徙主机对应的路由进行更新,提高了VTEP设备更新的效率和可靠性,进而也提高了该VXLAN中通信的可靠性。
[0168] 本公开实施例还提供了一种网络设备,包括存储有计算机程序的计算机可读存储介质和处理器,所述计算机程序被所述处理器读取并运行时,实现本公开实施例所提供的路由更新方法。
[0169] 本申请公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器读取并运行时,本公开实施例所提供的路由更新方法。
[0170] 需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0171] 以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。