一种报文转发方法、装置及叶子设备转让专利

申请号 : CN201810355459.1

文献号 : CN108600099B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 温卫真

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

摘要 :

本发明实施例提供一种报文转发方法、装置以及Leaf设备,该方法包括:第一Leaf设备与第二Leaf设备属于同一MLAG,具有相同的虚IP地址,第一Leaf设备接收第二Leaf设备发送的第一路由撤销消息;若第一路由撤销消息中包括的目的IP地址为本地主机的IP地址,下一跳为虚IP地址,发送第一路由发布消息,第一路由发布消息中包括的目的IP地址为本地主机的IP地址,下一跳为第一Leaf设备的实IP地址,以使不属于MLAG的第三Leaf设备生成第一路由表项,第一路由表项的目的IP地址为本地主机的IP地址,下一跳为第一Leaf设备的实IP地址,从而避免报文在第二Leaf设备处迂回,提高了报文的转发效率。

权利要求 :

1.一种报文转发方法,应用于跨设备链路聚合组MLAG中的第一叶子设备上,其特征在于,所述MLAG还包括第二叶子设备,所述第一叶子设备与所述第二叶子设备具有相同的虚IP地址,所述方法包括:接收所述第二叶子设备发送的第一路由撤销消息;

若所述第一路由撤销消息中包括的目的IP地址为本地主机的IP地址,下一跳为所述虚IP地址,则发送第一路由发布消息,所述第一路由发布消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述第一叶子设备的实IP地址,以使不属于所述MLAG的第三叶子设备生成第一路由表项,所述第一路由表项的目的IP地址为所述本地主机的IP地址,下一跳为所述第一叶子设备的实IP地址。

2.如权利要求1所述的方法,其特征在于,所述方法还包括:

接收所述第二叶子设备发送的第二路由发布消息;

若所述第二路由发布消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述虚IP地址,则发送第二路由撤销消息,所述第二路由撤销消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述第一叶子设备的实IP地址,以使所述第三叶子设备删除所述第一路由表项。

3.如权利要求1所述的方法,其特征在于,所述方法还包括:

确定所述第一叶子设备与所述本地主机的通信状态;

若所述第一叶子设备与所述本地主机的通信状态为异常,发送第三路由撤销消息,所述第三路由撤销消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述虚IP地址,以使所述第三叶子设备删除第二路由表项,所述第二路由表项的目的IP为所述本地主机的IP地址,下一跳为所述虚IP地址,并使得所述第二叶子设备发送第三路由发布消息,所述第三路由发布消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述第二叶子设备的实IP地址。

4.如权利要求3所述的方法,其特征在于,所述确定所述第一叶子设备与所述本地主机的通信状态,包括:若接收到目的VTEP IP地址为所述虚IP地址的报文,获取所述报文中携带的目的IP地址,所述目的IP地址为所述本地主机的IP地址;

基于所述目的IP地址,确定连接所述本地主机的分布式聚合口;

基于所述分布式聚合口的状态,确定所述第一叶子设备与所述本地主机的通信状态。

5.如权利要求3所述的方法,其特征在于,所述方法还包括:

若所述第一叶子设备与所述本地主机的通信状态恢复正常,发送第四路由发布消息,所述第四路由发布消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述虚IP地址,以使所述第三叶子设备生成所述第二路由表项,并使得所述第二叶子设备发送第四路由撤销消息,所述第四路由撤销消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述第二叶子设备的实IP地址。

6.一种报文转发装置,应用于跨设备链路聚合组MLAG中的第一叶子设备上,其特征在于,所述MLAG还包括第二叶子设备,所述第一叶子设备与所述第二叶子设备具有相同的虚IP地址,所述装置包括:接收单元,用于接收所述第二叶子设备发送的第一路由撤销消息;

发送单元,用于若所述第一路由撤销消息中包括的目的IP地址为本地主机的IP地址,下一跳为所述虚IP地址,则发送第一路由发布消息,所述第一路由发布消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述第一叶子设备的实IP地址,以使不属于所述MLAG的第三叶子设备生成第一路由表项,所述第一路由表项的目的IP地址为所述本地主机的IP地址,下一跳为所述第一叶子设备的实IP地址。

7.如权利要求6所述的装置,其特征在于:

所述接收单元,还用于接收所述第二叶子设备发送的第二路由发布消息;

所述发送单元,还用于若所述第二路由发布消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述虚IP地址,则发送第二路由撤销消息,所述第二路由撤销消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述第一叶子设备的实IP地址,以使所述第三叶子设备删除所述第一路由表项。

8.如权利要求6所述的装置,其特征在于,所述装置还包括:

确定单元,用于确定所述第一叶子设备与所述本地主机的通信状态;

所述发送单元,还用于若所述第一叶子设备与所述本地主机的通信状态为异常,发送第三路由撤销消息,所述第三路由撤销消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述虚IP地址,以使所述第三叶子设备删除第二路由表项,所述第二路由表项的目的IP为所述本地主机的IP地址,下一跳为所述虚IP地址,并使得所述第二叶子设备发送第三路由发布消息,所述第三路由发布消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述第二叶子设备的实IP地址。

9.如权利要求8所述的装置,其特征在于:

所述确定单元,具体用于若接收到目的VTEP IP地址为所述虚IP地址的报文,获取所述报文中携带的目的IP地址,所述目的IP地址为所述本地主机的IP地址;基于所述目的IP地址,确定连接所述本地主机的分布式聚合口;基于所述分布式聚合口的状态,确定所述第一叶子设备与所述本地主机的通信状态。

10.如权利要求8所述的装置,其特征在于:

所述发送单元,还用于若所述第一叶子设备与所述本地主机的通信状态恢复正常,发送第四路由发布消息,所述第四路由发布消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述虚IP地址,以使所述第三叶子设备生成所述第二路由表项,并使得所述第二叶子设备发送第四路由撤销消息,所述第四路由撤销消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述第二叶子设备的实IP地址。

11.一种叶子设备,其特征在于,所述叶子设备包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1-5任一所述的方法步骤。

12.一种机器可读存储介质,其特征在于,所述机器可读存储介质内存储有机器可执行指令,所述机器可执行指令被处理器执行时实现权利要求1-5任一所述的方法步骤。

说明书 :

一种报文转发方法、装置及叶子设备

技术领域

[0001] 本发明涉及网络通信技术领域,尤其涉及一种报文转发方法、装置及Leaf设备。

背景技术

[0002] MLAG(Multi-chassis Link Aggregation Group,跨设备链路集合组)是一种实现跨设备链路聚合的机制,通过将一台设备与另外两台设备进行跨设备链路聚合,从而把链路可靠性从单板级提高到了设备级,组成双活系统。
[0003] 参见图1,为Spine-Leaf(骨干-叶子)组网下的一种MLAG部署方案,其中,主机1通过MLAG机制双归接入Leaf1设备和Leaf2设备。当主机2访问主机1时,报文的目的VTEP(VXLAN Tunnel End Point,VXLAN隧道终端节点)IP(Internet Protocol,网际协议)地址为Leaf1设备和Leaf2设备共用的虚IP地址,Spine设备基于负载分担将报文分发至Leaf1设备或Leaf2设备,以分发至Leaf1设备为例,若Leaf1设备与主机1之间的链路故障,则Leaf1设备将报文转发至Leaf2设备,由Leaf2设备再转发给主机1,导致报文在Leaf1设备处存在迂回,报文转发效率不高。

发明内容

[0004] 本发明实施例为了解决用户侧链路故障导致的报文转发效率不高的问题,提出一种报文转发方法、装置及Leaf设备,用以提高用户侧链路故障后的报文转发效率。
[0005] 为实现上述公开目的,本发明实施例提供了如下技术方案:
[0006] 第一方面,本发明实施例提供一种报文转发方法,应用于MLAG中的第一Leaf设备上,所述MLAG还包括第二Leaf设备,所述第一Leaf设备与所述第二Leaf设备具有相同的虚IP地址,所述方法包括:
[0007] 接收所述第二Leaf设备发送的第一路由撤销消息;
[0008] 若所述第一路由撤销消息中包括的目的IP地址为本地主机的IP地址,下一跳为所述虚IP地址,则发送第一路由发布消息,所述第一路由发布消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述第一Leaf设备的实IP地址,以使不属于所述MLAG的第三Leaf设备生成第一路由表项,所述第一路由表项的目的IP地址为所述本地主机的IP地址,下一跳为所述第一Leaf设备的实IP地址。
[0009] 第二方面,本发明实施例提供一种报文转发装置,应用于MLAG中的第一Leaf设备上,所述MLAG还包括第二Leaf设备,所述第一Leaf设备与所述第二Leaf设备具有相同的虚IP地址,所述装置包括:
[0010] 接收单元,用于接收所述第二Leaf设备发送的第一路由撤销消息;
[0011] 发送单元,用于若所述第一路由撤销消息中包括的目的IP地址为本地主机的IP地址,下一跳为所述虚IP地址,则发送第一路由发布消息,所述第一路由发布消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述第一Leaf设备的实IP地址,以使不属于所述MLAG的第三Leaf设备生成第一路由表项,所述第一路由表项的目的IP地址为所述本地主机的IP地址,下一跳为所述第一Leaf设备的实IP地址。
[0012] 第三方面,本发明实施例还提供一种Leaf设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述报文转发方法。
[0013] 第四方面,本发明实施例还提供一种机器可读存储介质,所述机器可读存储介质内存储有机器可执行指令,所述机器可执行指令被处理器执行时实现上述报文转发方法。
[0014] 由以上描述可以看出,本发明实施例中,当第一Leaf设备接收到第二Leaf设备发送的第一路由撤销消息时,若该第一路由撤销消息包括的目的IP地址为本地主机的IP地址,下一跳为第一Leaf设备和第二Leaf设备共用的虚IP地址(第一Leaf设备和第二Leaf设备所属MLAG的组地址),说明第二Leaf设备与本地主机(该本地主机双归接入第一Leaf设备和第二Leaf设备)之间的链路发生故障,则第一Leaf设备发送第一路由发布消息,该第一路由发布消息包括的目的IP地址为本地主机的IP地址,下一跳为第一Leaf设备的实IP地址,以使不属于MLAG的第三Leaf设备根据接收到的第一路由发布消息,生成第一路由表项,该第一路由表项的目的IP地址为所述本地主机的IP地址,下一跳为第一Leaf设备的实IP地址。当第三Leaf设备接收到发往所述本地主机的报文时,基于第一路由表项中的第一Leaf设备的实IP地址,将报文转发至第一Leaf设备,再由第一Leaf设备转发给本地主机,从而避免现有技术中报文基于虚IP地址转发时在第二Leaf设备处迂回的问题,提升报文转发效率。

附图说明

[0015] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0016] 图1是本发明实施例示出的一种Spine-Leaf组网下的MLAG部署方案示意图;
[0017] 图2A是链路故障之前由Leaf1设备负责转发的报文的路径示意图;
[0018] 图2B是链路故障之后采用现有处理方式得到的由Leaf1设备负责转发的报文的新的路径示意图;
[0019] 图3是本发明实施例示出的一种报文转发方法流程图;
[0020] 图4是本发明实施例示出的链路故障时各设备之间的交互流程图;
[0021] 图5是本发明实施例示出的链路故障后报文转发路径示意图;
[0022] 图6是本发明实施例示出的链路恢复正常时各设备之间的交互流程图;
[0023] 图7是本发明实施例示出的一种Leaf设备的硬件结构示意图;
[0024] 图8是本发明实施例示出的一种报文转发逻辑的结构示意图。

具体实施方式

[0025] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明实施例的一些方面相一致的装置和方法的例子。
[0026] 在本发明实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明实施例。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0027] 应当理解,尽管在本发明实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
[0028] 如图1所示,为本发明实施例示出的一种Spine-Leaf组网下的MLAG部署方案示意图。该组网包括一个Spine设备、三个Leaf设备(Leaf1设备、Leaf2设备、Leaf3设备)、两台主机(主机1和主机2)。其中,主机1基于MLAG机制双归接入Leaf1设备和Leaf2设备,Leaf1设备和Leaf2设备称为MLAG成员,具有相同的虚IP地址(MLAG组地址),记为IP12;Leaf3设备不属于Leaf1设备和Leaf2设备所属MLAG。各Leaf设备之间通过VXLAN隧道连接。
[0029] 现有技术中,Leaf3设备在转发主机2访问主机1的报文时,封装报文的目的VTEP IP为虚IP地址IP12,Spine设备基于负载分担将报文分发至Leaf1设备或Leaf2设备,若报文分发至Leaf1设备,则由Leaf1设备将报文转发至主机1,参见图2A,为由Leaf1设备负责转发报文的路径示意图,其中,虚线所示为转发路径。
[0030] 若Leaf1设备与主机1之间的物理链路发生故障,则报文转发至Leaf1设备后,由Leaf1设备通过Leaf1设备和Leaf2设备之间的VXLAN隧道,将报文转发给Leaf2设备,再由Leaf2设备将报文转发给主机1,参见图2B,为链路故障之后由Leaf1设备负责转发的报文的新的路径示意图。从图2B可以看出,报文在Leaf1设备处存在迂回,导致报文的转发效率不高。
[0031] 针对上述问题,本发明实施例提出一种报文转发方法,参见图3,为本发明实施例示出的一种报文转发方法的流程图,该方法从第一Leaf设备侧对报文转发过程进行描述。
[0032] 步骤301,接收第二Leaf设备发送的第一路由撤销消息。
[0033] 其中,第二Leaf设备与第一Leaf设备属于同一MLAG,具有相同的虚IP地址。
[0034] 步骤302,若所述第一路由撤销消息中包括的目的IP地址为本地主机的IP地址,下一跳为所述虚IP地址,则发送第一路由发布消息。
[0035] 若第一路由撤销消息中包括的目的IP地址为本地主机(基于MLAG机制双归接入第一Leaf设备和第二Leaf设备,以下描述中若无特殊说明,本地主机均指该双归接入第一Leaf设备和第二Leaf设备的主机)的IP地址,下一跳为第一Leaf设备和第二Leaf设备共有的虚IP地址(以下描述中若无特殊说明,虚IP地址均指第一Leaf设备和第二Leaf设备共有的虚IP地址),说明第二Leaf设备与本地主机之间的链路故障,无法正常通讯,则第一Leaf设备发送第一路由发布消息,该第一路由发布消息中包括的目的IP地址为本地主机的IP地址,下一跳为第一Leaf设备的实IP地址(物理设备的IP地址,例如,图1中的Leaf1设备和Leaf2设备除了具有相同的虚IP地址IP12,还具有各自的实IP地址,分别记为IP11和IP22)。
[0036] 本发明实施例还包括不属于第一Leaf设备和第二Leaf设备所属MLAG的第三Leaf设备(例如,图1中的Leaf3设备),第三Leaf设备接收到第二Leaf设备发送的第一路由撤销消息时,根据第一路由撤销消息中包括的目的IP地址(本地主机的IP地址)和下一跳(虚IP地址),删除本地记录的目的IP地址为本地主机的IP地址、下一跳为虚IP地址的路由表项;第三Leaf设备接收到第一Leaf设备发送的第一路由发布消息时,根据第一路由发布消息中包括的目的IP地址(本地主机的IP地址)和下一跳(第一Leaf设备的实IP地址),生成目的IP地址为本地主机的IP地址、下一跳为第一Leaf设备的实IP地址的路由表项(记为第一路由表项),以使第三Leaf设备基于第一路由表项转发发往本地主机的报文,封装报文的目的VTEP IP地址为第一Leaf设备的实IP地址,报文被转发至第一Leaf设备,从而避免第二Leaf设备与本地主机之间的链路故障时报文在第二Leaf设备处迂回(从第二Leaf设备转发至第一Leaf设备再转发至本地主机),可见,本发明实施例提供的报文转发方法,可提升报文转发效率。
[0037] 当第一Leaf设备接收到第二Leaf设备发送的第二路由发布消息时,若该第二路由发布消息中包括的目的IP地址为本地主机的IP地址,下一跳为虚IP地址,说明第二Leaf设备与本地主机之间的链路恢复正常,可以通讯,此时,第一Leaf设备发送第二路由撤销消息,该第二路由撤销消息中包括的目的IP地址为本地主机的IP地址,下一跳为第一Leaf设备的实IP地址。
[0038] 当第三Leaf设备接收到第一Leaf设备发送的第二路由撤销消息时,根据第二路由撤销消息包括的目的IP地址(本地主机的IP地址)和下一跳(第一Leaf设备的实IP地址),删除本地记录的第一路由表项(目的IP地址为本地主机的IP地址、下一跳为第一Leaf设备的实IP地址的路由表项);当第三Leaf设备接收到第二Leaf设备发送的第二路由发布消息时,根据第二路由发布消息中包括的目的IP地址(本地主机的IP地址)和下一跳(虚IP地址),生成目的IP地址为本地主机的IP地址、下一跳为虚IP地址的路由表项(记为第二路由表项),以使第三Leaf设备基于该第二路由表项转发发往本地主机的报文,封装报文的目的VTEP IP地址为虚IP地址,报文由Spine设备基于负载分担重新分发至第二Leaf设备,由第二Leaf设备转发报文给本地主机,即第二Leaf设备与本地主机之间的链路恢复正常后,报文转发路径还原。
[0039] 此外,当第一Leaf设备接收到目的VTEP IP地址为虚IP地址的报文时,说明该报文是发往基于MLAG双归接入第一Leaf设备和第二Leaf设备的本地主机的报文,获取报文中携带的目的IP地址,该目的IP地址为本地主机的IP地址;基于该目的IP地址,查询ARP(Address Resolution Protocol,地址解析协议)表、MAC(Media Access Control,介质访问控制)地址表,确定连接本地主机的端口(该连接双归接入的本地主机的端口称为分布式聚合口);基于该分布式聚合口的状态,确定第一Leaf设备与本地主机的通信状态,例如,若分布式聚合口的状态为UP状态,则确定第一Leaf设备与本地主机的通信状态为正常;若分布式聚合口的状态为DOWN状态(链路故障),则确定第一Leaf设备与本地主机的通信状态为异常。
[0040] 若第一Leaf设备与本地主机的通信状态为异常,则发送第三路由撤销消息,该第三路由撤销消息中包括的目的IP地址为本地主机的IP地址,下一跳为虚IP地址。当第三Leaf设备接收到第三路由撤销消息时,根据该第三路由撤销消息包括的目的IP地址(本地主机的IP地址)和下一跳(虚IP地址),删除本地记录的第二路由表项(目的IP地址为本地主机的IP地址、下一跳为虚IP地址的路由表项);当第二Leaf设备接收到第三路由撤销消息时,可感知第一Leaf设备与本地主机的通信状态异常,因此,发送第三路由发布消息,该第三路由发布消息中包括的目的IP地址为本地主机的IP地址,下一跳为第二Leaf设备的实IP地址;第三Leaf设备接收到该第三路由发布消息时,根据该第三路由发布消息包括的目的IP地址(本地主机的IP地址)和下一跳(第二Leaf设备的实IP地址),生成目的IP地址为本地主机的IP地址、下一跳为第二Leaf设备的实IP地址的路由表项(记为第三路由表项),以使第三Leaf设备基于该第三路由表项转发发往本地主机的报文,封装报文的目的VTEP IP地址为第二Leaf设备的实IP地址,报文被转发至第二Leaf设备,从而避免第一Leaf设备与本地主机之间的通信异常时报文在第一Leaf设备处迂回(从第一Leaf设备转发至第二Leaf设备再转发至本地主机),可见,本发明实施例提供的报文转发方法可提升报文转发效率。
[0041] 若第一Leaf设备与本地主机的通信状态恢复正常,第一Leaf设备发送第四路由发布消息,该第四路由发布消息中包括的目的IP地址为本地主机的IP地址,下一跳为虚IP地址。第二Leaf设备接收到该第四路由发布消息时,可感知第一Leaf设备与本地主机的通信状态恢复正常,则发送第四路由撤销消息,该第四路由撤销消息中包括的目的IP地址为本地主机的IP地址,下一跳为第二Leaf设备的实IP地址;第三Leaf设备接收到该第四路由撤销消息时,根据该第四路由撤销消息包括的目的IP地址(本地主机的IP地址)和下一跳(第二Leaf设备的实IP地址),删除本地记录的第三路由表项(目的IP地址为本地主机的IP地址、下一跳为第二Leaf设备的实IP地址的路由表项);当第三Leaf设备接收到第四路由发布消息时,根据该第四路由发布消息中包括的目的IP地址(本地主机的IP地址)和下一跳(虚IP地址),生成第二路由表项(目的IP地址为本地主机的IP地址、下一跳为虚IP地址的路由表项),以使第三Leaf设备基于该第二路由表项转发发往本地主机的报文,封装报文的目的VTEP IP地址为虚IP地址,报文由Spine设备基于负载分担重新分发至第一Leaf设备,由第一Leaf设备转发报文给本地主机,即第一Leaf设备与本地主机之间的通信恢复正常后,报文转发路径还原。
[0042] 需要补充说明的是,由于本发明实施例提供的报文转发方法只针对当前正在交互数据的主机进行路由更新,故障分布式聚合口下的其它未交互数据的主机的路由不更新,因此,可大大降低路由更新的数量;当故障的分布式聚合口恢复正常时,也只需更新正在交互数据的主机的路由,因此,可避免大批量路由更新导致的路由震荡。
[0043] 现仍以图1所示Spine-Leaf组网为例,详细介绍报文转发过程。
[0044] 以主机2访问主机1为例,参见图4,为链路故障时各设备之间的交互流程图。
[0045] 步骤401,Leaf3设备基于路由表项R1(目的IP地址为主机1的IP地址,下一跳为虚IP地址)转发主机2发往主机1的报文,封装报文的目的VTEP IP地址为IP12(虚IP地址);
[0046] 步骤402,Leaf3设备将封装后的报文通过与Spine设备连接的出接口发送给Spine设备;
[0047] 步骤403,Spine设备接收到目的VTEP IP为IP12的报文后,基于负载分担将报文分发至Leaf1设备;
[0048] 上述步骤402、403具体过程与现有技术相同,在此不再赘述。
[0049] 步骤404,Leaf1设备接收到目的VTEP IP为IP12的报文后,获取报文携带的主机1的IP地址,确定与主机1连接的分布式聚合口,若该分布式聚合口正常(处于UP状态),则通过该分布式聚合口将报文发送至主机1,转发路径如图2A中虚线所示;若该分布式聚合口发生故障(DOWN掉),转步骤405;
[0050] 步骤405,Leaf1设备向路由反射器(Spine设备)发送路由撤销消息,该路由撤销消息中包括的目的IP地址为主机1的IP地址,下一跳为虚IP地址;
[0051] 步骤406,Spine设备分别向Leaf2设备和Leaf3设备反射路由撤销消息;
[0052] 步骤407,Leaf3设备接收到路由撤销消息后,根据该路由撤销消息中包括的目的IP地址(主机1的IP地址)和下一跳(虚IP地址),删除本地记录的路由表项R1;
[0053] 步骤408,Leaf2设备接收到路由撤销消息后,向Spine设备发送路由发布消息,该路由发布消息中包括的目的IP地址为主机的IP地址,下一跳为Leaf2设备的实IP地址(IP22);
[0054] 步骤409,Spine设备向Leaf3设备反射路由发布消息;
[0055] 步骤410,Leaf3设备接收到路由发布消息后,根据该路由发布消息中包括的目的IP地址(主机1的IP地址)和下一跳(Leaf2设备的实IP地址),生成路由表项R2(目的IP地址为主机1的IP地址,下一跳为Leaf2设备的实IP地址);
[0056] 步骤411,Leaf3设备基于路由表项R2(目的IP地址为主机1的IP地址,下一跳为Leaf2设备的实IP地址)转发后续主机2发往主机1的报文,封装报文的目的VTEP IP地址为IP22(Leaf2设备的实IP地址);
[0057] 步骤412,Leaf3设备将封装后的报文通过与Spine设备连接的出接口发送给Spine设备;
[0058] 步骤413,Spine设备接收到目的VTEP IP为IP22的报文后,将报文直接转发给Leaf2设备;
[0059] 步骤414,Leaf2设备通过本设备上与主机1连接的分布式聚合口,将报文发送至主机1,转发路径如图5中虚线所示。
[0060] 参见图6,为链路恢复正常时各设备之间的交互流程图。
[0061] 步骤601,若Leaf1设备连接主机1的分布式聚合口重新UP,则Leaf1设备向Spine设备发送路由发布消息,该路由发布消息中包括的目的IP地址为主机1的IP地址,下一跳为虚IP地址(IP12);
[0062] 步骤602,Spine设备向Leaf2设备和Leaf3设备反射路由发布消息;
[0063] 步骤603,Leaf3设备接收到路由发布消息后,根据该路由发布消息中包括的目的IP地址(主机1的IP地址)和下一跳(虚IP地址),生成路由表项R1(目的IP地址为主机1的IP地址,下一跳为虚IP地址);
[0064] 步骤604,Leaf2设备接收到路由发布消息后,向Spine设备发送路由撤销消息,该路由撤销消息中包括的目的IP地址为主机1的IP地址,下一跳为Leaf2设备的实IP地址(IP22);
[0065] 步骤605,Spine设备向Leaf3设备反射路由撤销消息;
[0066] 步骤606,Leaf3设备接收到路由撤销消息后,根据该路由撤销消息中包括的目的IP地址(主机1的IP地址)和下一跳(Leaf2设备的实IP地址),删除本地记录的路由表项R2(目的IP地址为主机1的IP地址,下一跳为Leaf2设备的实IP地址);
[0067] 步骤607,Leaf3设备基于路由表项R1(目的IP地址为主机1的IP地址,下一跳为虚IP地址)转发主机2发往主机1的报文,封装报文的目的VTEP IP地址为IP12(虚IP地址);
[0068] 步骤608,Leaf3设备将封装后的报文通过与Spine设备连接的出接口发送给Spine设备;
[0069] 步骤609,Spine设备接收到目的VTEP IP为IP12的报文后,基于负载分担重新将主机2发往主机1的报文分发至Leaf1设备;
[0070] 步骤610,Leaf1设备通过本设备上与主机1连接的分布式聚合口,将报文发送至主机1,转发路径恢复到如图2A中虚线所示。
[0071] 图7为本发明实施例提供的一种Leaf设备的硬件结构示意图。该Leaf设备可包括处理器701、存储有机器可执行指令的机器可读存储介质702。处理器701与机器可读存储介质702可经由系统总线703通信。并且,通过读取并执行机器可读存储介质702中与报文转发逻辑对应的机器可执行指令,处理器701可执行上文描述的报文转发方法。
[0072] 本文中提到的机器可读存储介质702可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
[0073] 如图8所示,从功能上划分,上述报文转发逻辑可以包括接收单元801和发送单元802,其中:
[0074] 接收单元801,用于接收所述第二Leaf设备发送的第一路由撤销消息;
[0075] 发送单元802,用于若所述第一路由撤销消息中包括的目的IP地址为本地主机的IP地址,下一跳为所述虚IP地址,则发送第一路由发布消息,所述第一路由发布消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述第一Leaf设备的实IP地址,以使不属于所述MLAG的第三Leaf设备生成第一路由表项,所述第一路由表项的目的IP地址为所述本地主机的IP地址,下一跳为所述第一Leaf设备的实IP地址。
[0076] 可选的,
[0077] 所述接收单元801,还用于接收所述第二Leaf设备发送的第二路由发布消息;
[0078] 所述发送单元802,还用于若所述第二路由发布消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述虚IP地址,则发送第二路由撤销消息,所述第二路由撤销消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述第一Leaf设备的实IP地址,以使所述第三Leaf设备删除所述第一路由表项。
[0079] 可选的,所述装置还包括:
[0080] 确定单元,用于确定所述第一Leaf设备与所述本地主机的通信状态;
[0081] 所述发送单元802,还用于若所述第一Leaf设备与所述本地主机的通信状态为异常,发送第三路由撤销消息,所述第三路由撤销消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述虚IP地址,以使所述第三Leaf设备删除第二路由表项,所述第二路由表项的目的IP为所述本地主机的IP地址,下一跳为所述虚IP地址,并使得所述第二Leaf设备发送第三路由发布消息,所述第三路由发布消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述第二Leaf设备的实IP地址。
[0082] 可选的,
[0083] 所述确定单元,具体用于若接收到目的VTEP IP地址为所述虚IP地址的报文,获取所述报文中携带的目的IP地址,所述目的IP地址为所述本地主机的IP地址;基于所述目的IP地址,确定连接所述本地主机的分布式聚合口;基于所述分布式聚合口的状态,确定所述第一Leaf设备与所述本地主机的通信状态。
[0084] 可选的,
[0085] 所述发送单元802,还用于若所述第一Leaf设备与所述本地主机的通信状态恢复正常,发送第四路由发布消息,所述第四路由发布消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述虚IP地址,以使所述第三Leaf设备生成所述第二路由表项,并使得所述第二Leaf设备发送第四路由撤销消息,所述第四路由撤销消息中包括的目的IP地址为所述本地主机的IP地址,下一跳为所述第二Leaf设备的实IP地址。
[0086] 本发明实施例还提供一种包括机器可执行指令的机器可读存储介质,例如图7中的机器可读存储介质702,所述机器可执行指令可由网络设备的主控板中的处理器701执行,以实现以上描述的报文转发方法。
[0087] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。