一种报文转发方法和装置与流程

文档序号:12730471
一种报文转发方法和装置与流程

本发明涉及网络通信技术领域,特别涉及一种报文转发方法和装置。



背景技术:

EVPN(Ethernet Virtual Private Network,以太网虚拟专用网络)是一种采用分布式网关的VXLAN(Virtual Extensible LAN,可扩展虚拟局域网络),数据平面采用VXLAN封装方式转发报文,控制平面采用MP-BGP(MultiprotocolExtensions for BGP-4,BGP-4的多协议扩展)通告EVPN路由信息,达到访问的目的。

在EVPN网络中,通常采用如图1所示的Spine(主干)—Leaf(叶子)的二层网络架构,Leaf设备与Spine设备之间构建VXLAN网络。在实际组网中,虚机所在设备往往不是直接挂在Leaf设备上,Leaf设备下可能是一个普通的二层网络,通过交换机连接。

如图1所示,虚机VM1和虚机VM2所在设备同时接在交换机L2下,假如虚机VM1先上线,Leaf3设备会学习虚机VM1的ARP缓存表项,同时交换机L2学习到虚机VM1的MAC(物理地址)表项的出端口指向port 1。当虚机VM2需要访问虚机VM1时,发出ARP请求报文,Leaf3设备接收到该ARP请求报文后,发现Leaf3设备上学习有虚机VM1的ARP缓存表项,将执行ARP代答功能,代替虚机VM1回应ARP请求报文,将ARP响应报文发送到交换机L2上,此时交换机L2学习到虚机VM1的MAC表项的出端口覆盖port 1,指向port 3上,导致交换机L2上的虚机VM1的MAC发生漂移。



技术实现要素:

基于本发明的一个目的,本发明提供了一种报文转发方法和装置,以解决EVPN网络中交换机上发生虚机的MAC漂移的问题。

为达到上述目的,本发明的技术方案是这样实现的:

一方面,本发明提供了一种报文转发方法,应用于以太网虚拟专用网络EVPN中的叶子设备,该叶子设备具备ARP代答功能,该方法包括:

接收源虚机发送的ARP请求报文,该ARP请求报文请求获取目的虚机的MAC地址;

判断本叶子设备接收ARP请求报文的接收端口,以及本叶子设备学习到的目的虚机的MAC表项的出端口是否均指向本地侧;

在接收端口和出端口均指向本地侧时,本叶子设备根据接收端口和出端口的关系代理答复ARP请求报文或向目的虚机转发ARP请求报文。

另一方面,本发明提供了一种报文转发装置,应用于以太网虚拟专用网络EVPN中的叶子设备,该叶子设备具备ARP代答功能,该报文转发装置包括:

接收单元,用于接收源虚机发送的ARP请求报文,该ARP请求报文请求获取目的虚机的MAC地址;

处理单元,用于判断本叶子设备接收ARP请求报文的接收端口,以及本叶子设备学习到的目的虚机的MAC表项的出端口是否均指向本地侧,在接收端口和出端口均指向本地侧时,本叶子设备根据接收端口和出端口的关系代理答复ARP请求报文或向目的虚机转发ARP请求报文。

本发明实施例的有益效果是:叶子设备在判断接收ARP访问请求的接收端口和叶子设备学习到目的虚机的MAC表项的出端口均指向本地侧时,叶子设备不直接响应该ARP请求报文,而是判断接收端口与出端口是否一致,根据判断结果决定由本叶子设备进行代理答复或是向目的虚机转发该ARP请求报文,由目的虚机进行答复,从而避免EVPN组网中虚机的MAC地址漂移的问题。

附图说明

图1为EVPN网络的组网示意图;

图2为本发明实施例示出的一种报文转发方法流程图;

图3为EVPN网络中虚机迁移示意图;

图4为本发明实施例示出的一种报文转发装置的结构框图;

图5为本发明实施例示出的一种报文转发装置的硬件结构示意图。

具体实施方式

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

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在EVPN网络中,为了不让ARP请求报文透传到网络中,通常配置叶子设备具备ARP代答功能。下面结合图2说明叶子设备的ARP代答功能的实现过程:

如图1所示,虚机VM3上线后,叶子设备Leaf1能学到虚机VM3的ARP信息,并在叶子设备Leaf1上形成虚机VM3的ARP缓存表项;此外,叶子设备Leaf1将虚机VM3的ARP信息通告给叶子设备Leaf2和Leaf3,叶子设备Leaf2和Leaf3各自形成虚机VM3的ARP缓存表项,并学习到虚机VM3的MAC表项。示例性地,当叶子设备Leaf3下的虚机VM1或者虚机VM2需要访问虚机VM3时,虚机VM1或虚机VM2发出ARP请求报文,请求虚机VM3的MAC地址,在该ARP请求报文到达叶子设备Leaf3时,由于叶子设备Leaf3先前已经保存有虚机VM3的ARP缓存表项,因此可以代替虚机VM3回应此ARP请求报文,从而避免将ARP请求报文透传到网络中。

当然,在实际应用中,也可配置叶子设备不具备ARP代答功能,叶子设备接收到ARP请求报文时,可以根据目的虚机的MAC表项,将ARP请求报文转发给MAC表项的出端口,由目的虚机响应ARP请求报文。

但对于图1中示出的叶子设备Leaf3,由于虚机VM1和虚机VM2同时挂在交换机L2下,通过交换机L2连接到叶子设备Leaf3上。若虚机VM1先上线,叶子设备Leaf3仍然会形成从交换机L2上发的虚机VM1的ARP缓存表项,并学习到虚机VM1的MAC表项,此时叶子设备Leaf3上学习到的虚机VM1的MAC表项的出端口指向端口port3,交换机L2上学习到的虚机VM1的MAC表项的出端口指向端口port1。当虚机VM2访问虚机VM1时,虚机VM2发送的ARP请求报文到达叶子设备Leaf3时,叶子设备Leaf3若根据其保存的虚机VM1的APR缓存表项代替虚机VM1响应该ARP请求报文,则在交换机L2上会发生MAC漂移,为了不让交换机L2上虚机VM1的MAC漂移到端口port3,此时叶子设备Leaf3不能回应ARP请求报文,也不能将该ARP请求报文转发至端口port3。

基于上述情况,本发明的叶子设备在接收到源虚机发送的访问目的虚机的MAC地址的ARP请求报文时,会执行图2所示的步骤。图2为本发明实施例示出的一种报文转发方法流程图,该报文转发方法应用于EVPN中的叶子设备,且该叶子设备具备ARP代答功能。如图2所示,该方法包括:

S200,接收源虚机发送的ARP请求报文,该ARP请求报文请求获取目的虚机的MAC地址。

S210,判断本叶子设备接收ARP请求报文的接收端口,以及本叶子设备学习到的目的虚机的MAC表项的出端口是否均指向本地侧。

以图1所示的叶子设备Leaf3为本实施例的本叶子设备为例说明判断接收端口是否指向本地侧:若叶子设备Leaf3通过端口port3接收到ARP请求报文,则判断接收端口指向本地侧,若叶子设备Leaf3通过VXLAN隧道接收到ARP请求报文,即判断接收端口未指向本地侧。

仍以图1所示的叶子设备Leaf3为本实施例的本叶子设备为例说明判断出端口是否指向本地侧:虚机VM1上线后,叶子设备Leaf3能获得虚机VM1的IP地址和虚机VM1所在设备的MAC地址,并形成虚机VM1的ARP缓存表项,通过虚机VM1的ARP缓存表项表明虚机VM1的IP地址与MAC地址的映射关系,同时叶子设备Leaf3会根据虚机VM1所在设备的MAC地址学习到虚机VM1的MAC表项,指示请求获取虚机VM1的MAC地址的ARP请求报文的转发端口,即此时叶子设备Leaf3学习到的虚机VM1的MAC表项的出端口为端口port3。若源虚机为虚机VM2,目的虚机为虚机VM1,则叶子设备Leaf3可以根据学习到的虚机VM1的MAC表项判断目的虚机的出端口为端口port3,由于端口port3指向本地侧,因此可判断叶子设备Leaf3上目的虚机VM1的MAC表项的出端口指向本地侧。

在实际应用中,本叶子设备需要判断是否形成目的虚机的ARP缓存表项,若形成目的虚机的ARP缓存表项则执行步骤S210,否则,本叶子设备将该ARP请求报文进行排除源端口的广播处理。

S220,在上述接收端口和上述出端口均指向本地侧时,本叶子设备根据接收端口和出端口的关系代理答复ARP请求报文或向目的虚机转发ARP请求报文。

具体的,判断上述接收端口与上述出端口是否相同,若相同,则本叶子设备代理答复ARP请求报文,若不相同,则向上述出端口发送ARP请求报文。

参考图1所示,在EVPN的实际组网中,虚机所在设备可以直接挂在叶子设备下,如图1中示出的虚机VM3、虚机VM4和虚机VM5,虚机所在设备也可以通过中间设备,如通过交换机挂在叶子设备下,如图1中示出的虚机VM1和虚机VM2。本实施例针对上述两种情况说明叶子设备对ARP请求报文的转发处理。

情况一:虚机所在的设备直接连接本叶子设备,即源虚机所在设备和目的虚机所在设备均位于本叶子设备的本地侧,且均未通过中间设备连接本叶子设备,而是直接连接在本叶子设备上。

则上述步骤S220中“本叶子设备根据接收端口和出端口的关系代理答复所述ARP请求报文或向目的虚机转发所述ARP请求报文”具体为:将ARP请求报文转发给目的虚机,由目的虚机向源虚机发送ARP响应报文,ARP响应报文携带目的虚机的MAC地址。

针对虚机所在的设备直接连接本叶子设备的情况,示例性的,参照图1中的叶子设备Leaf2,此时本叶子设备即为叶子设备Leaf2,假设虚机VM5为源虚机,虚机VM4为目的虚机,则叶子设备Leaf2接收ARP请求报文的接收端口为端口port2’,叶子设备Leaf2学习到的目的虚机VM4的MAC表项的出端口为端口port1’,即接收ARP请求报文的接收端口与学习到的目的虚机的MAC表项的出端口不一致,则叶子设备Leaf2将该ARP请求报文转发给目的虚机VM4,由目的虚机VM4向源虚机VM5发送ARP响应报文。

情况二:虚机所在的设备通过交换机等中间设备连接本叶子设备,即源虚机所在设备和目的虚机所在设备均位于本叶子设备的本地侧,且均通过中间设备连接本叶子设备。

则上述步骤S220中“本叶子设备根据接收端口和出端口的关系代理答复所述ARP请求报文或向目的虚机转发所述ARP请求报文”具体为:本叶子设备不响应ARP请求报文,且接收端口不转发所述ARP请求报文,由中间设备将ARP请求报文转发给目的虚机,由目的虚机向源虚机发送ARP响应报文,该ARP响应报文携带目的虚机的MAC地址。

针对虚机所在的设备通过中间设备连接本叶子设备的情况,示例性的,参照图1中的叶子设备Leaf3,此时本叶子设备即为叶子设备Leaf3,假设虚机VM2为源虚机,虚机VM1为目的虚机,则叶子设备Leaf3的接收ARP请求报文的接收端口为端口port3,叶子设备Leaf3学习到目的虚机的MAC表项的出端口为port3,即接收ARP请求报文的接收端口与目的虚机的MAC表项的出端口一致,则叶子设备Leaf3不响应该ARP请求报文,由交换机L2将ARP请求报文转发给目的虚机VM1,由目的虚机VM1向源虚机VM2发送ARP响应报文。

本发明上述实施例的方法中,在接收到本地侧的ARP访问请求,且已经学习到目的虚机的ARP缓存表项时,不直接响应该ARP请求报文,而是判断接收ARP请求报文的接收端口与学习到的目的虚机的MAC表项的出端口是否一致,根据判断结果决定由本叶子设备进行ARP代理答复或是将ARP请求报文转发至目的虚机,由目的虚机进行答复,从而避免EVPN组网中虚机MAC地址漂移的问题。

图3为EVPN网络中虚机迁移示意图,如图3所示,在EVPN组网中,迁移前虚机VM_A和虚机VM_B同时接入交换机L2’,交换机L2’学习到虚机VM_A的MAC表项的出端口指向端口port 1。当虚机VM_A迁移到叶子设备Leaf_A下变为虚机VM_A’后,叶子设备Leaf_C上虚机VM_A’的MAC表项的出端口指向端口叶子设备Leaf_A,但交换机L2’上虚机VM_A的MAC表项的出端口仍然指向端口port1,这样,虚机VM_B访问虚机VM_A的时,访问报文发送到交换机L2’上时,交换机L2’根据访问报文查询虚机VM_A的MAC表项,会将访问报文转发至端口port1,但实际上虚机VM_A已不存在于交换机L2’下,导致访问不通。

针对上述虚机迁移后无法更新交换机上MAC表项导致访问不通的情况,本实施例在本叶子设备学习到虚机的MAC表项的出端口由指向本地侧更新为指向远端叶子设备时,向中间设备发送反向地址转换协议RARP报文;该虚机所在设备通过中间设备连接本叶子设备,该RARP报文指示中间设备更新虚机的MAC表项的出端口为中间设备连接本叶子设备的端口,该RARP报文携带源MAC地址和目的MAC地址,源MAC地址为该虚机的MAC地址。

参考图3,本申请一实施例中,在虚机VM_A迁移到叶子设备Leaf_A成为虚机VM_A’后,虚机VM_A’的向叶子设备Leaf_C发送携带迁移扩展团体消息(MAC Mobility Extended Community)的ARP请求,叶子设备Leaf_C接收到该ARP请求时,将虚机VM_A’的MAC表项的出端口由指向本地侧替换为指向远端叶子设备,即将虚机VM_A’的MAC表项的出端口指向叶子设备Leaf_A对应的VETP隧道端口,同时,叶子设备Leaf_C发出RARP报文,该RARP报文的源MAC为虚机VM_A’即VM_A所在设备的MAC,指示交换机L2’将其学习到的虚机VM_A的MAC表项的出端口更新为端口port3,由此实现EVPN组网内虚机的无缝迁移。

与前述报文转发方法的实施例相对应,本发明还提供了报文转发装置的实施例。该报文转发装置可以应用于EVPN网络中的叶子设备中,该叶子设备具备ARP代答功能。

图4为本发明实施例示出的一种报文转发装置的结构框图,如图4所示,该报文转发装置40包括:接收单元41和处理单元42;

接收单元41,用于接收源虚机发送的ARP请求报文,该ARP请求报文请求获取目的虚机的MAC地址;

处理单元42,用于判断本叶子设备接收ARP请求报文的接收端口,以及本叶子设备学习到的目的虚机的MAC表项的出端口是否均指向本地侧,在接收端口和出端口均指向本地侧时,本叶子设备根据接收端口和出端口的关系代理答复ARP请求报文或向目的虚机转发ARP请求报文。

具体的,处理单元42,用于判断接收端口与出端口是否相同,若相同,则本叶子设备不响应ARP请求报文,且接收端口不转发所述ARP请求报文,若不相同,则向出端口发送ARP请求报文。

其中,在源虚机所在设备和目的虚机所在设备均连接本叶子设备时,处理单元42,具体用于将ARP请求报文转发给目的虚机,由目的虚机向源虚机发送ARP响应报文,ARP响应报文携带目的虚机的MAC地址。

在源虚机所在设备和目的虚机所在设备均通过中间设备连接本叶子设备时,处理单元42,具体用于不响应ARP请求报文,由中间设备将ARP请求报文转发给目的虚机,由目的虚机向源虚机发送ARP响应报文,ARP响应报文携带目的虚机的MAC地址。

优选地,处理单元42,还用于在本叶子设备上的虚机的MAC表项的出端口由指向本地侧更新为指向远端叶子设备时,向中间设备发送反向地址转换协议RARP报文;该虚机所在设备通过中间设备连接本叶子设备,RARP报文指示中间设备更新所述虚机的MAC表项的出端口为所述中间设备连接本叶子设备的端口。

其中,RARP报文携带源MAC地址和目的MAC地址,该源MAC地址为虚机所在设备的MAC地址。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本发明提供的报文转发装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,参照图5所示,可通过处理器10将非易失性存储器50中与报文转发装置控制逻辑40对应的机器可执行指令读取到内存60中运行。从硬件层面而言,如图5所示,为本发明装置的一种硬件结构图,除了图5所示的处理器10、内部总线20、网络接口30、内存60、以及非易失性存储器50之外,根据该网络设备的实际功能,还可以包括其他硬件,对此不再赘述。

在不同的实施例中,所述非易失性存储器50可以是:存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。所述内存60可以是:RAM(Radom AccessMemory,随机存取存储器)、易失存储器、闪存。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

综上所述,根据本发明的技术方案,叶子设备在判断接收ARP访问请求的接收端口和叶子设备学习到的目的虚机的MAC表项的出端口均指向本地侧时,叶子设备不直接响应该ARP请求报文,而是判断接收端口与出端口是否一致,根据判断结果决定由本叶子设备代理答复ARP请求报文或是向目的虚机转发该ARP请求报文,由目的虚机进行答复,以避免EVPN组网中虚机地址漂移的问题;以及在通过中间设备连接叶子设备上的虚机进行迁移时,向中间设备发送RARP报文,指示中间设备更新该迁移前虚机的MAC表项,实现EVPN组网内虚机的无缝迁移。

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

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