报文转发方法及装置与流程

文档序号:13763277阅读:117来源:国知局
本申请涉及网络通信
技术领域
,特别涉及一种报文转发方法及装置。
背景技术
:VXLAN(VirtualeXtensibleLAN,可扩展虚拟局域网络)是一种基于IP(InternetProtocol,因特网协议)网络、采用“MAC(MediaAccessControl,媒体访问控制)inUDP(UserDatagramProtocol,用户数据报协议)”封装形式的二层VPN(VirtualPrivateNetwork,虚拟专用网络)技术。VXLAN可以基于已有的服务提供商或企业IP网络,为分散的物理站点提供二层互联,并能够为不同的租户提供业务隔离。EVPN(EthernetVirtualPrivateNetwork,以太网虚拟专用网络)网络是一种采用分布式网关的VXLAN(VirtualeXtensibleLAN,可扩展虚拟局域网络)网络,控制平面采用MP-BGP(MultiprotocolExtensionsforBGP-4,BGP-4的多协议扩展)通告EVPN路由信息,数据平面采用VXLAN封装方式转发报文。EVPN网络采用了多归属组网方式,从而可以有效提高网络可靠性。如图1所示,在EVPN网络的Spine-Leaf(主干-叶子)组网模型中,VM1通过ES1对应的ES(EthernetSegment,以太段)链路多归属于Leaf设备Leaf1、Leaf2和Leaf3,VM2通过ES2对应的ES链路多归属于Leaf2和Leaf3。Leaf4在学习到VM1的MAC地址VM1-MAC和IP地址VM1-IP,以及VM2的MAC地址VM2-MAC和IP地址VM2-IP之后,会创建如表1所示的MAC表项、以及如表2所示的IP表项。表1MAC地址出接口VM1-MACTunnel14,Tunnel24,Tunnel34VM2-MACTunnel24,Tunnel34表2IP地址下一跳信息VM1-IPTunnel14,Tunnel24,Tunnel34VM2-IPTunnel24,Tunnel34其中,在表1和表2中,Tunnelij为Leafi与Leafj之间的VXLAN隧道,其中,i=1,2,3,4,j=1,2,3,4。可见,在现有技术的EVPN网络中,在MAC地址表和IP路由表中直接记录MAC/IP地址对应的多个Tunnel(隧道),因此,MAC表项和IP表项的内容臃肿,导致Leaf设备的存储压力较大。另外,在现有的大规模EVPN组网中,通常会有大量的MAC/IP关联同一组Tunnel,这组Tunnel称为Tunnel冗余组。当Tunnel冗余组中的某一Tunnel变为DOWN(不可用)时,Leaf设备需要对每条关联了该Tunnel的MAC表项和IP表项进行更新处理。例如,Tunnel24变为DOWN时,Leaf4需要对如表1第2行和第3行所示的MAC表项,以及如表2第2行和第3行所示的IP表项进行更新处理。表项数量越多时,更新处理的时间也越长,从而降低了数据流的切换速度。技术实现要素:有鉴于此,本申请提供一种报文转发方法及装置。具体地,本申请是通过如下技术方案实现的:一方面,提供了一种报文转发方法,该方法包括:接收VM发来的用户报文;根据该用户报文的目的地址,在转发表中查找对应的VT,其中,转发表中包括地址与VT的对应关系;根据查找到的VT,在VT关联表中查找对应的隧道冗余组,其中,VT关联表中包括VT与隧道冗余组的对应关系,隧道冗余组中包括至少一个VXLAN隧道;对该用户报文进行VXLAN封装,将封装得到的VXLAN报文通过查找到的隧道冗余组中的VXLAN隧道转发出去。另一方面,还提供了一种报文转发装置,该装置包括:接收模块,用于接收VM发来的用户报文;查找模块,用于在接收模块接收到VM发来的用户报文之后,根据该用户报文的目的地址,在转发表中查找对应的VT,其中,转发表中包括地址与VT的对应关系;还用于根据查找到的VT,在VT关联表中查找对应的隧道冗余组,其中,VT关联表中包括VT与隧道冗余组的对应关系,隧道冗余组中包括至少一个VXLAN隧道;封装发送模块,用于在查找模块查找到对应的隧道冗余组之后,对该用户报文进行VXLAN封装,将封装得到的VXLAN报文通过该隧道冗余组中的VXLAN隧道转发出去。通过本申请的以上技术方案,在EVPN网络中,设备上的转发表中包括地址与VT的对应关系,在VT关联表中包括VT与由至少一个VXLAN隧道组成的隧道冗余组的对应关系;从而,在接收到VM发来的用户报文之后,可以根据该用户报文的目的地址,在转发表中查找对应的VT,然后,根据查找到的VT,在VT关联表中查找对应的隧道冗余组,最终,可以对该用户报文进行VXLAN封装后,通过查找到的隧道冗余组中的VXLAN隧道转发出去。由于无需在转发表中直接记录地址对应的隧道冗余组,只需要记录对应于该隧道冗余组对应的VT即可,同样可以实现用户报文的转发,减少了转发表项的内容,并降低了设备的存储压力。附图说明图1是一种EVPN网络的组网示意图;图2是本申请一示例性实施例示出的路由通告消息的格式图;图3是本申请一示例性实施例示出的地址通告路由的格式图;图4是本申请一示例性实施例示出的对用户报文进行转发处理的流程图;图5是本申请一示例性实施例示出的当ES链路发生故障时,对MAC地址表和IP路由表进行更新处理的流程图;图6是本申请一示例性实施例示出的当ES链路故障恢复时,对MAC地址表和IP路由表进行更新处理的流程图;图7是本申请一示例性实施例示出的报文转发装置的一种结构示意图;图8是本申请一示例性实施例示出的报文转发装置的另一种结构示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。本申请以下实施例中提供了一种报文转发方法,以及一种可以应用该方法的报文转发装置。本申请实施例中引入了一种新的概念:VT(VirtualTunnel,虚拟隧道),可以使得MAC地址表和IP路由表等转发表中记录MAC/IP地址与VT的对应关系,而在VT关联表中记录VT与隧道冗余组的对应关系。以下以EVPN网络中的Leaf设备来执行本申请实施例的报文转发方法为例进行说明,该方法包括以下内容:Leaf设备在连接VM(虚拟机)的用户端口上配置了ES之后,会发送该ES的路由通告消息。在实际实施过程中,在用户端口上配置ES的ID(标识),然后,将携带有该ES的ID的路由通告消息发送出去。路由通告消息的格式如图2所示,其中的ESID(EthernetSegmentIdentifier)字段用于携带该ES的ID。另外,Leaf设备在接收到某一ES(为了描述方便,称为第一ES)的路由通告消息之后,会进行学习,即,在ES信息表中记录第一ES、以及本设备与发出该路由通告消息的Leaf设备之间的VXLAN隧道的对应关系。在多归属组网中,可能会接收到多个(记为M,M为不小于2的正整数)第一ES的路由通告消息,因此,ES信息表中会记录第一ES与M个VXLAN隧道的对应关系,如表3第2行所示。表3ES下一跳信息第一ESTunnel1,Tunnel2,…,TunnelM然后,Leaf设备会在VT关联表中创建VT表项,具体的,可以采用以下方式创建VT表项:按照预设规则对Tunnel1、Tunnel2、…、TunnelM进行组合,从而可以得到N个隧道冗余组{Tunnel1},{Tunnel2},…,{TunnelM},{Tunnel1,Tunnel2},…{Tunnel1,Tunnel2,…,TunnelM},其中,N满足以下公式(1):N=CM1+CM2+...+CMM---(1)]]>在实际的多归属组网中,M的值一般不会很大,通常为2或3。针对上述N个隧道冗余组中的每一个隧道冗余组,在VT关联表中不存在该隧道冗余组时,为该隧道冗余组分配一个VT,在VT关联表中添加包含该VT与该隧道冗余组的VT表项,将该隧道冗余组中的每一个VXLAN隧道的状态设置为有效(active)。例如,当M=3时,可以得到N=7个隧道冗余组,分别为:{Tunnel1},{Tunnel2},{Tunnel3},{Tunnel1,Tunnel2},{Tunnel1,Tunnel3},{Tunnel2,Tunnel3},{Tunnel1,Tunnel2,Tunnel3}。若VT关联表中不存在这7个隧道冗余组,则在VT关联表中添加对应的7个VT表项,如表4第2~8行所示。表4VT下一跳信息VT1Tunnel1(active),Tunnel2(active),Tunnel3(active)VT2Tunnel1(active),Tunnel2(active)VT3Tunnel1(active),Tunnel3(active)VT4Tunnel2(active),Tunnel3(active)VT5Tunnel1(active)VT6Tunnel2(active)VT7Tunnel3(active)这样,在学习到第一ES及其对应的M个VXLAN隧道之后,可以通过组合的方式,从这M个VXLAN隧道中任意选取一个或多个VXLAN隧道组成一个隧道冗余组,可以得到多个隧道冗余组,在VT关联表中创建对应的多个VT表项,从而,实现了VT表项的预先创建。另外,在学习到本地连接的VM的MAC地址和IP地址之后,Leaf设备会发送地址通告路由,该地址通告路由中会携带该VM的地址、该Leaf设备上连接该VM的用户端口上配置的ES的ID、以及该VM所属的VXLANID,其中,该VM的地址为MAC地址,或者为MAC地址和IP地址。地址通告路由的格式如图3所示,在地址通告路由中,ESID字段用于携带ES的ID,MACAddress(MAC地址)字段用于携带MAC地址,IPAddress(IP地址)字段用于携带IP地址,MPLS(MultiprotocolLabelSwitching,多协议标签交换)Lable1(标签1)字段用于携带VXLANID。Leaf设备也会接收到地址通告路由,为了描述方便,仍以第一ES为例进行说明。Leaf设备接收到的地址通告路由中携带有第一地址、第一ES、以及第一VXLAN,其中,第一地址中包括:第一MAC地址,或者,第一MAC地址和第一IP地址。Leaf设备会在MAC地址表和IP路由表等转发表中添加对应的转发表项。具体的,在如表3所示的ES信息表中,查找与第一ES对应的M个VXLAN隧道Tunnel1、Tunnel2、…、TunnelM,然后,在VT关联表中,查找与由这M个VXLAN隧道组成的隧道冗余组(为了描述方便,称为第一隧道冗余组)对应的VT(为了描述方便,称为第一VT),然后,在第一VXLAN对应的MAC地址表中添加如表5-1第2行所示的MAC表项,并且,在第一地址中包括第一IP地址时,在IP路由表中添加如表6-1第2行所示的IP表项。表5-1MAC地址VXLANID出接口第一MAC地址第一VXLAN第一VT表6-1IP地址下一跳信息第一IP地址第一VT,第一VXLAN如表5-1第2行所示的MAC表项中还可以包括第一ES,此时,该MAC表项如表5-2第2行所示,如表6-1第2行所示的IP表项中还可以包括第一ES,此时,该IP表项如表6-2第2行所示:表5-2MAC地址VXLANID出接口ES第一MAC地址第一VXLAN第一VT第一ES表6-2IP地址下一跳信息ES第一IP地址第一VT,第一VXLAN第一ES在实际实施过程中,如表5-2第2行所示的MAC表项下发到数据平面时,不需要下发第一ES,同样,如表6-2第2行所示的IP表项下发到数据平面时,也不需要下发第一ES。由此,Leaf设备在接收到VM发来的用户报文之后,会执行如图4所示的报文转发步骤:步骤S401,根据该用户报文的目的地址,在转发表中查找对应的VT;步骤S402,根据步骤S401中查找到的VT,在VT关联表中查找对应的隧道冗余组;步骤S403,对该用户报文进行VXLAN封装,将封装得到的VXLAN报文通过步骤S402中查找到的隧道冗余组中的VXLAN隧道转发出去。假设,该用户报文的目的MAC地址为第一MAC地址,目的IP地址为第一IP地址,则在进行二层转发时,Leaf设备会根据第一MAC地址,在该用户报文所属第一VXLAN对应的MAC地址表中查找第一VT,然后,根据第一VT在VT关联表中查找对应的M个VXLAN隧道Tunnel1、Tunnel2、…、TunnelM,针对其中的每一个处于有效状态的VXLAN隧道,对该用户报文进行VXLAN封装后,通过该VXLAN隧道转发出去。在进行三层转发时,Leaf设备会根据第一IP地址,在IP路由表中查找第一VT,然后,根据第一VT在VT关联表中查找对应的M个VXLAN隧道Tunnel1、Tunnel2、…、TunnelM,针对其中的每一个处于有效状态的VXLAN隧道,对该用户报文进行VXLAN封装后,通过该VXLAN隧道转发出去。另外,在网络拓扑发生变化时,Leaf设备需要对相应的VT表项进行更新,或者,对MAC表项和IP表项进行更新。当检测到VXLAN隧道变为DOWN(不可用)时,此时,只需要更新相应的VT表项即可。具体的,Leaf设备在VT关联表中查找包含该不可用的VXLAN隧道的VT表项,将查找到的VT表项中的该VXLAN隧道的状态更新为无效(deactive),这样,在根据该VT表项进行报文转发时,就不会通过该VXLAN隧道进行转发了。后续,当检测到该VXLAN隧道恢复为UP(可用)时,在VT关联表中查找包含该VXLAN隧道的VT表项,将查找到的VT表项中的该VXLAN隧道的状态重新更新为有效,这样,在根据该VT表项进行报文转发时,可以重新通过该VXLAN隧道进行转发了。可见,在VXLAN隧道变为DOWN或恢复UP时,只需更新包含该VXLAN隧道的VT表项即可,由于需要更新的VT表项的数量很少,因此,有效的减少了表项更新所需时间和工作量,提高了数据流的切换速度。在检测到本设备上的ES链路发生故障时,Leaf设备会发出该ES的路由撤销消息,后续,在检测到该ES链路故障恢复时,Leaf设备会发出该ES的路由通告消息。从而,Leaf设备在接收到第一ES的路由撤销消息之后,会执行如图5所示的步骤:步骤S501,在如表3所示的ES信息表中查找与第一ES对应的M个VXLAN隧道Tunnel1、Tunnel2、…、TunnelM,在VT关联表中,查找与由这M个VXLAN隧道组成的第一隧道冗余组对应的第一VT;步骤S502,在ES信息表中,删除第一ES对应的本设备与发出该第一ES的路由撤销消息的Leaf设备之间的VXLAN隧道Tunnel1,从而将表3更新为表7-1,即第一ES对应于Tunnel2、…、TunnelM这M-1个VXLAN隧道;在VT关联表中,查找与由这M-1个VXLAN隧道组成的第二隧道冗余组对应的第二VT;表7-1ES下一跳信息第一ESTunnel2,…,TunnelM步骤S503,判断是否查找到了第二VT,若是,则执行步骤S505,否则,执行步骤S504;步骤S504,在VT关联表中添加包含第二VT、以及第二隧道冗余组的VT表项,将第二隧道冗余组中的每一个VXLAN隧道的状态设置为有效;步骤S505,将如表5-2所示的MAC地址表中包含第一ES的MAC表项中的第一VT,更新为第二VT,将如表6-2所示的IP路由表中包含第一ES的IP表项中的第一VT,更新为第二VT。此时,如表5-2所示的MAC地址表更新为如表5-3所示,如表6-2所示的IP路由表更新为如表6-3所示。表5-3MACVXLANID出接口ES第一MAC地址第一VXLAN第二VT第一ES表6-3IP下一跳信息ES第一IP地址第二VT,第一VXLAN第一ES另外,Leaf设备在接收到第一ES的路由通告消息之后,会执行如图6所示的步骤:步骤S601,在如表3所示的ES信息表中查找与第一ES对应的M个VXLAN隧道Tunnel1、Tunnel2、…、TunnelM,在VT关联表中,查找与由这M个VXLAN隧道组成的第一隧道冗余组对应的第一VT;步骤S602,在如表3所示的ES信息表中,增加第一ES对应的本设备与发出该第一ES的路由通告消息的Leaf设备之间的VXLAN隧道TunnelM+1,从而将表3更新为表7-2,即第一ES对应于Tunnel1、Tunnel2、…、TunnelM、TunnelM+1这M+1个VXLAN隧道;在VT关联表中,查找与由这M+1个VXLAN隧道组成的第三隧道冗余组对应的第三VT;表7-2ES下一跳信息第一ESTunnel2,…,TunnelM,TunnelM+1步骤S603,判断是否查找到了第三VT,若是,则执行步骤S605,否则,执行步骤S604;步骤S604,在VT关联表中添加包含第三VT、以及第三隧道冗余组的VT表项,将第三隧道冗余组中的每一个VXLAN隧道的状态设置为有效;步骤S605,将如表5-2所示的MAC地址表中包含第一ES的MAC表项中的第一VT,更新为第三VT,将如表6-2所示的IP路由表中包含第一ES的IP表项中的第一VT,更新为第三VT。此时,如表5-2所示的MAC地址表更新为如表5-4所示,如表6-2所示的IP路由表更新为如表6-4所示。表5-4MACVXLANID出接口ES第一MAC地址第一VXLAN第三VT第一ES表6-4IP下一跳信息ES第一IP地址第三VT,第一VXLAN第一ES可见,在某一条ES链路发生了故障或故障恢复时,只需更新包含该ES的MAC表项和IP表项即可,由于该ES链路连接的VM的数量有限,因此需要更新的MAC表项和IP表项的数量也较少,因此,有效的减少了表项更新所需时间和工作量,提高了数据流的切换速度。以图1所示的实际ENPN组网为例,详细说明上述实施例的方法。在如图1所示的EVPN网络中,VM1通过ES1对应的ES链路多归属于Leaf设备Leaf1、Leaf2和Leaf3,VM2通过ES2对应的ES链路多归属于Leaf2和Leaf3。VM的MAC地址表示为VM-MAC、IP地址表示为VM-IP。Leafi与Leafj之间的VXLAN隧道表示为Tunnelij,其中,i=1,2,3,4,j=1,2,3,4,i≠j。在配置了ES1之后,Leaf1、Leaf2、Leaf3会发送ES1的路由通告消息。在配置了ES2之后,Leaf2、Leaf3会发送ES2路由通告消息。Leaf4接收到上述路由通告消息之后,会得到如表8-1所示的ES信息表,然后,创建如表9-1所示的VT关联表。表8-1ES下一跳信息ES1Tunnel14,Tunnel24,Tunnel34ES2Tunnel24,Tunnel34表9-1VT下一跳信息VT1Tunnel14(active),Tunnel24(active),Tunnel34(active)VT2Tunnel14(active),Tunnel24(active)VT3Tunnel14(active),Tunnel34(active)VT4Tunnel24(active),Tunnel34(active)VT5Tunnel14(active)VT6Tunnel24(active)VT7Tunnel34(active)Leaf1向Leaf4发送VM1对应的地址通告路由,其中,该地址通告路由中携带有VM1的MAC地址VM1-MAC和IP地址VM1-IP、ES1、VM1所属的VXLAN1;Leaf4接收到该地址通告路由之后,会在VXLAN1对应的MAC地址表中添加如表10-1第2行所示的MAC表项,以及在IP路由表中添加如表11-1第2行所示的IP表项。另外,Leaf2向Leaf4发送VM2对应的地址通告路由,其中,该地址通告路由中携带有VM2的MAC地址VM2-MAC和IP地址VM2-IP、ES2、VM2所属的VXLAN1;Leaf4接收到该地址通告路由之后,会在VXLAN1对应的MAC地址表中添加如表10-1第3行所示的MAC表项,以及在IP路由表中添加如表11-1第3行所示的IP表项。表10-1MAC地址VXLANID出接口ESVM1-MACVXLAN1VT1ES1VM2-MACVXLAN1VT4ES2表11-1IP地址下一跳信息ESVM1-IPVT1,VXLAN1ES1VM2-IPVT4,VXLAN1ES2当VM3需要向VM1发送用户报文时,会发出目的MAC地址为VM1-MAC、目的IP地址为VM1-IP的用户报文,Leaf4接收到该用户报文之后,根据VM1-MAC,在如表10-1所示的MAC地址表中查找对应的VT1,然后,根据VT1在如表9-1所示的VT关联表中查找对应的隧道冗余组Tunnel14、Tunnel24、Tunnel34,针对该隧道冗余组中的每一个处于有效状态的VXLAN隧道,对该用户报文进行VXLAN封装后,通过该VXLAN隧道转发出去。在Leaf4检测到本设备与Leaf1之间的VXLAN隧道Tunnel14变为DOWN时,Leaf4会在表9-1所示的VT关联表中查找包含Tunnel14的VT表项,从而可以查找到如表9-1第2、3、4、6行所示的VT表项,将这些VT表项中的Tunnel14的状态更新为deactive,如表9-2所示。表9-2VT下一跳信息VT1Tunnel14(deactive),Tunnel24(active),Tunnel34(active)VT2Tunnel14(deactive),Tunnel24(active)VT3Tunnel14(deactive),Tunnel34(active)VT4Tunnel24(active),Tunnel34(active)VT5Tunnel14(deactive)VT6Tunnel24(active)VT7Tunnel34(active)后续,在Leaf4检测到Tunnel14恢复为UP时,Leaf4会在表9-2所示的VT关联表中查找包含Tunnel14的VT表项,从而查找到如表9-2第2、3、4、6行所示的VT表项,将这些VT表项中的Tunnel14的状态更新为active,如表9-1所示。另外,当Leaf1连接VM1的ES链路发生故障时,Leaf1会发送ES1的路由撤销消息。Leaf4接收到该路由撤销消息之后,会从如表8-1所示的ES信息表中查找到ES1对应的Tunnel14、Tunnel24、Tunnel34,从如表9-1所示的VT关联表中查找到与由Tunnel14、Tunnel24、Tunnel34组成的隧道冗余组对应的VT1,然后,从如表8-1所示的ES信息表中删除ES1对应的Tunnel14,得到如表8-2所示的ES信息表,从如表9-1所示的VT关联表中查找到与由Tunnel24、Tunnel34组成的隧道冗余组对应的VT4,之后,将如表10-1所示的MAC地址表中包含ES1的MAC表项中的VT1更新为VT4,更新后的MAC地址表如表10-2所示,并且,将如表11-1所示的IP路由表中包含ES1的IP表项中的VT1更新为VT4,更新后的IP路由表如表11-2所示。表8-2ES下一跳信息ES1Tunnel24,Tunnel34ES2Tunnel24,Tunnel34表10-2MAC地址VXLANID出接口ESVM1-MACVXLAN1VT4ES1VM2-MACVXLAN1VT4ES2表11-2IP地址下一跳信息ESVM1-IPVT4,VXLAN1ES1VM2-IPVT4,VXLAN1ES2后续,当Leaf1连接VM1的ES链路故障恢复时,Leaf1会发送ES1的ES路由的通告消息。Leaf4接收到该通告消息之后,会从如表8-2所示的ES信息表中查找到ES1对应的Tunnel24、Tunnel34,从如表9-1所示的VT关联表中查找到与由Tunnel24、Tunnel34组成的隧道冗余组对应的VT4,然后,在如表8-2所示的ES信息表中增加ES1对应的Tunnel14,得到如表8-1所示的ES信息表,从如表9-1所示的VT关联表中查找到与由Tunnel14、Tunnel24、Tunnel34组成的隧道冗余组对应的VT1,之后,将如表10-2所示的MAC地址表中包含ES1的MAC表项中的VT4更新为VT1,更新后的MAC地址表如表10-1所示,并且,将如表11-2所示的IP路由表中包含ES1的IP表项中的VT4更新为VT1,更新后的IP路由表如表11-1所示。与前述报文转发方法的实施例相对应,本申请还提供了报文转发装置的实施例,该报文转发装置可以应用于EVPN网络中的Leaf设备中。请参考图7所示,该报文转发装置中包括以下模块:接收模块701、查找模块702和封装发送模块703,其中:接收模块701,用于接收VM发来的用户报文;查找模块702,用于在接收模块701接收到VM发来的用户报文之后,根据该用户报文的目的地址,在转发表中查找对应的VT,其中,转发表中包括地址与VT的对应关系;还用于根据查找到的VT,在VT关联表中查找对应的隧道冗余组,其中,VT关联表中包括VT与隧道冗余组的对应关系,隧道冗余组中包括至少一个VXLAN隧道;封装发送模块703,用于在查找模块702查找到对应的隧道冗余组之后,对该用户报文进行VXLAN封装,将封装得到的VXLAN报文通过该隧道冗余组中的VXLAN隧道转发出去。如图8所示,该报文转发装置中还包括:记录模块704和VT表项更新模块705,其中:接收模块701,还用于接收路由通告消息;记录模块704,用于在接收模块701接收到M个第一ES的路由通告消息之后,在ES信息表中记录第一ES与M个VXLAN隧道的对应关系,其中,VXLAN隧道是本设备与发出第一ES的路由通告消息的设备之间的VXLAN隧道,M为不小于2的正整数;VT表项更新模块705,用于按照预设规则对这M个VXLAN隧道进行组合,得到至少两个隧道冗余组,针对组成的每一个隧道冗余组,若VT关联表中不存在该隧道冗余组,则为该隧道冗余组分配一个VT,在VT关联表中添加包含该VT与该隧道冗余组的VT表项,将该隧道冗余组中的每一个VXLAN隧道的状态设置为有效。另外,如图8所示,该报文转发装置中还包括:MAC表项更新模块706和IP表项更新模块707,其中:接收模块701,还用于接收携带有第一地址、第一ES、以及第一VXLAN的地址通告路由,其中,第一地址包括:第一MAC地址,或者,第一MAC地址和第一IP地址;查找模块702,还用于在接收模块701接收到该地址通告路由之后,在ES信息表中查找与第一ES对应的M个VXLAN隧道,在VT关联表中,查找与由这M个VXLAN隧道组成的第一隧道冗余组对应的第一VT;MAC表项更新模块706,用于在查找模块702查找到与由这M个VXLAN隧道组成的第一隧道冗余组对应的第一VT之后,在第一VXLAN对应的MAC地址表中添加对应的MAC表项,其中,该MAC表项中包括:第一MAC地址、以及第一VT;IP表项更新模块707,用于当第一地址包括第一IP地址时,在查找模块702查找到与由这M个VXLAN隧道组成的第一隧道冗余组对应的第一VT之后,在IP路由表中添加对应的IP表项,其中,该IP表项中包括:第一IP地址、以及第一VT。另外,在第一VXLAN对应的MAC地址表中添加的MAC表项中还包括:第一ES,在IP路由表中添加的IP表项中还包括:第一ES;则,如图8所示,该报文转发装置中还包括:增删模块708,其中:接收模块701,还用于接收路由撤销消息;查找模块702,还用于在接收模块701接收到第一ES的路由撤销消息之后,在ES信息表中查找与第一ES对应的M个VXLAN隧道,在VT关联表中,查找与由M个VXLAN隧道组成的第一隧道冗余组对应的第一VT;还用于在增删模块708删除第一ES对应的本设备与发出第一ES的路由撤销消息的设备之间的VXLAN隧道,得到与第一ES对应的M-1个VXLAN隧道之后,在VT关联表中,查找由这M-1个VXLAN隧道组成的第二隧道冗余组对应的第二VT;增删模块708,用于在查找模块702查找到与由M个VXLAN隧道组成的第一隧道冗余组对应的第一VT之后,在ES信息表中,删除第一ES对应的本设备与发出第一ES的路由撤销消息的设备之间的VXLAN隧道,得到与第一ES对应的M-1个VXLAN隧道;VT表项更新模块705,还用于若查找模块702没有查找到第二VT,则在VT关联表中添加包含第二VT、以及第二隧道冗余组的VT表项,将第二隧道冗余组中的每一个VXLAN隧道的状态设置为有效;MAC表项更新模块706,还用于若查找模块702查找到了第二VT,则将MAC地址表中包含第一ES的MAC表项中的第一VT,更新为第二VT;还用于在VT表项更新模块705添加了包含第二VT、以及第二隧道冗余组的VT表项之后,将MAC地址表中包含第一ES的MAC表项中的第一VT,更新为第二VT;IP表项更新模块707,还用于若查找模块702查找到了第二VT,则将IP路由表中包含第一ES的IP表项中的第一VT,更新为第二VT;还用于在VT表项更新模块705添加了包含第二VT、以及第二隧道冗余组的VT表项之后,将IP路由表中包含第一ES的IP表项中的第一VT,更新为第二VT。另外,查找模块702,还用于在接收模块701接收到第一ES的路由通告消息之后,在ES信息表中查找与第一ES对应的M个VXLAN隧道,在VT关联表中,查找与由这M个VXLAN隧道组成的第一隧道冗余组对应的第一VT;还用于在增删模块708增加第一ES对应的本设备与发出该第一ES的路由通告消息的设备之间的VXLAN隧道,得到与第一ES对应的M+1个VXLAN隧道之后,在VT关联表中,查找与由这M+1个VXLAN隧道组成的第三隧道冗余组对应的第三VT;增删模块708,还用于在查找模块702查找到与由M个VXLAN隧道组成的第一隧道冗余组对应的第一VT之后,在ES信息表中,增加第一ES对应的本设备与发出该第一ES的路由通告消息的设备之间的VXLAN隧道,得到与第一ES对应的M+1个VXLAN隧道;VT表项更新模块705,还用于若查找模块702没有查找到第三VT,则在VT关联表中添加包含第三VT、以及第三隧道冗余组的VT表项,将第三隧道冗余组中的每一个VXLAN隧道的状态设置为有效;MAC表项更新模块706,还用于若查找模块702查找到了第三VT,则将MAC地址表中包含第一ES的MAC表项中的第一VT,更新为第三VT;还用于在VT表项更新模块705在VT关联表中添加包含第三VT、以及第三隧道冗余组的VT表项之后,将MAC地址表中包含第一ES的MAC表项中的第一VT,更新为第三VT;IP表项更新模块707,还用于若查找模块702查找到了第三VT,则将IP路由表中包含第一ES的IP表项中的第一VT,更新为第三VT;还用于在VT表项更新模块705在VT关联表中添加包含第三VT、以及第三隧道冗余组的VT表项之后,将IP路由表中包含第一ES的IP表项中的第一VT,更新为第三VT。其中,如图8所示,该报文转发装置中还包括:检测模块709,其中:检测模块709,用于检测VXLAN隧道的状态;查找模块702,还用于当检测模块709检测到VXLAN隧道变为不可用时,在VT关联表中查找包含该VXLAN隧道的VT表项;还用于当检测模块702检测到该VXLAN隧道恢复为可用时,在VT关联表中查找包含该VXLAN隧道的VT表项;VT表项更新模块705,还用于在查找模块702查找到包含该不可用的VXLAN隧道的VT表项之后,将该VT表项中的该VXLAN隧道的状态更新为无效;还用于在查找模块702查找到包含该恢复可用的VXLAN隧道的VT表项之后,将该VT表项中的该VXLAN隧道的状态更新为有效。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1