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

文档序号:13968668阅读:161来源:国知局
本申请涉及计算机通信领域,尤其涉及一种报文转发方法及装置。
背景技术
:evpn(ethernetvirtualprivatenetwork,以太网虚拟专用网络)是一种二层vpn技术,在控制平面上采用bgp(bordergatewayprotocol,边界网关协议)通告路由信息,在数据平面上采用vxlan(virtualextensiblelan,可扩展虚拟局域网络)封装方式转发用户报文。租户的物理站点(site)分散在不同位置时,evpn可以基于已有的服务提供商或企业ip(internetprotocol,因特网协议)网络,为同一租户的相同子网提供二层互联;通过evpn网关为同一租户的不同子网提供三层互联,并为其提供与外部网络的三层互联。图1示出了evpn组网中的分布式聚合系统,如drs(distributedrelaysystem,分布式中继系统)。在图1所示的组网中,vtep1(vxlantunnelendpoint,vxlan隧道端点)和vtep2组成一个drs系统。在该drs系统中,vtep1和vtep2又可被称为dr设备。vtep1和vtep2之间的ipp口(intra-portalport,分布式聚合内部口)通过ipl(intra-portallink,分布式聚合内部链路)链路互联。通过drs系统,可以获得尽可能高的网络性能和网络可用性。技术实现要素:有鉴于此,本申请提供一种报文转发方法及装置,用以实现drs系统中的dr设备的远距通信,提高整个系统的vxlan规格,以及提高报文转发效率。具体地,本申请是通过如下技术方案实现的:根据本申请的第一方面,提供一种报文转发方法,所述方法应用于分布式中继系统drs中的可扩展虚拟局域网络隧道端点vtep,所述vtep与所述drs中的其他对端vtep之间通过ipl隧道连接,所述方法包括:检测到用户侧端口连接的链路故障;确定所述用户侧端口关联的接入电路ac接口;在已连接的所有分布式聚合内部链路ipl隧道中选择一个ipl隧道;将确定的所述ac接口关联选择的ipl隧道的ipl隧道口;通过本地隧道口接收到可扩展虚拟局域网络vxlan数据报文时,对所述vxlan数据报文进行vxlan解封装;查找vxlan解封装后的以太网数据报文的目的地址匹配的转发表项;若查找到的匹配转发表项中出接口为所述ac接口时,对vxlan解封装后的以太网数据报文进行ipl隧道封装并通过所述ac接口关联的ipl隧道口发送至对端vtep,由对端vtep转发该报文。可选的,所述方法还包括:检测到故障的链路恢复;将所述ac接口关联的所述ipl隧道口替换为所述用户侧端口。可选的,所述确定所述用户侧端口关联的接入电路ac接口包括:基于预设的用户侧端口与分布式聚合接口的映射关系,查找所述用户侧端口所属的分布式聚合接口;将所述分布式聚合接口绑定的ac接口确定为所述用户侧端口绑定的ac接口。可选的,所述ipl隧道口的出方向未使能水平分割功能、入方向使能水平分割功能;vxlan隧道口的入方向和出方向使能水平分割功能。可选的,所述在已连接的所有分布式聚合内部链路ipl隧道中选择一个ipl隧道,包括:向所述drs的其他对端vtep发送故障通告消息;所述故障通告消息用于通告本vtep上的故障的用户侧端口;接收所述其他对端vtep返回的故障通告响应消息;其中,所述故障通告响应消息用于指示发送该故障通告响应消息的vtep上的指定端口正常,所述指定端口与所述故障的用户侧端口属于同一分布式聚合接口;在已连接的所有ipl隧道中,选择最先收到的故障通告响应消息所指示的源设备与本vtep之间的ipl隧道。根据本申请的第二方面,提供一种报文转发装置,所述装置应用于分布式中继系统drs中的可扩展虚拟局域网络隧道端点vtep,所述vtep与所述drs中的对端vtep之间通过ipl隧道连接,所述装置包括:检测单元,用于检测到用户侧端口连接的链路故障;确定单元,用于确定所述用户侧端口关联的接入电路ac接口;选择单元,用于在已连接的所有分布式聚合内部链路ipl隧道中选择一个ipl隧道;修改单元,用于将确定的所述ac接口关联选择的ipl隧道的ipl隧道口;转发单元,用于通过本地隧道口接收到可扩展虚拟局域网络vxlan数据报文时,对所述vxlan数据报文进行vxlan解封装;查找vxlan解封装后的以太网数据报文的目的地址匹配的转发表项;若查找到的匹配转发表项中出接口为所述ac接口时,对vxlan解封装后的以太网数据报文进行ipl隧道封装并通过所述ac接口关联的ipl隧道口发送至对端vtep,由对端vtep转发该报文。可选的,所述检测单元,还用于检测到故障的链路恢复;所述修改单元,还用于将所述ac接口关联的所述ipl隧道口替换为所述用户侧端口。可选的,所述确定单元,具体用于基于预设的用户侧端口与分布式聚合接口的映射关系,查找所述用户侧端口所属的分布式聚合接口;将所述分布式聚合接口绑定的ac接口确定为所述用户侧端口绑定的ac接口。可选的,所述ipl隧道口的出方向未使能水平分割功能、入方向使能水平分割功能;vxlan隧道口的入方向和出方向使能水平分割功能。可选的,所述选择单元,具体用于向所述drs的其他对端vtep发送故障通告消息;所述故障通告消息用于通告本vtep上的故障的用户侧端口;接收所述其他对端vtep返回的故障通告响应消息;其中,所述故障通告响应消息用于指示发送该故障通告响应消息的vtep上的指定端口正常,所述指定端口与所述故障的用户侧端口属于同一分布式聚合接口;在已连接的所有ipl隧道中,选择最先收到的故障通告响应消息所指示的源设备与本vtep之间的ipl隧道。本申请提出一种报文转发方法,drs中的vtep与对端vtep之间通过ipl隧道连接,用该ipl隧道代替ipl链路,一方面,使用ipl隧道代替ipl链路大大降低了地域对drs中的vtep设备的距离限制,实现了即使drs中的多个vtep相隔很远,也可以通过该ipl隧道实现通信;另一方面,由于ipl隧道不需要再单独占用一个物理端口资源,所以节约了端口资源,扩大了整机的vxlan规格。此外,当drs中的vtep检测到用户侧端口相连的链路故障后,vtep可将与该用户侧端口绑定的ac接口由绑定该用户侧端口修改为绑定ipl隧道口,从而使得在链路故障后,不需要刷新转发表项,也不需要触发对端向本端同步转发表项的操作,由于不需要转发表项的刷新和同步,也可完成将从vxlan隧道的来的流量转发至对端,由对端将该流量进行转发,从而大大降低了设备工作负荷,提高了转发效率。附图说明图1是示出的一种相关技术中的采用drs的evpn的网络架构示意图;图2是本申请一示例性实施例示出的一种采用drs的evpn的网络架构示意图;图3是本申请一示例性实施例示出的一种报文转发的流程图;图4是本申请一示例性实施例示出的一种报文转发的示意图;图5是本申请一示例性实施例示出的一种报文转发装置的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。在如图1所示的组网中,drs系统中的vtep11和vtep12之间通过ipl链路相连。vtep11和vtep12可通过该ipl链路向对端发送协议报文。当vtep11与主机12之间的用户侧链路不可用时,vtep11可将通过该用户侧链路发送至主机12的报文,通过ipl链路转发给vtep12,由该vtep12将该报文转发至主机12。而当vtep11与主机12的用户侧链路不可用时,会触发vtep12将向vtep11同步转发表项。该转发表项的mac地址仍然是主机12的mac地址,而该转发表项的出接口变为ipp口。这使得在vtep11与主机12之间的用户侧链路不可用时,vtep11可将转发至主机12的流量通过ipp口转发至vtep12,由vtep12转发给主机2。但是,一方面,当drs中的多个vtep设备相距很远时,通过ipl链路这种物理链路的连接方式就很难应用于远端设备的互联;另一方面,vtep设备上必须有一个端口作为ipp口,在原本vtep设备端口有限的情况下,还浪费了一个端口资源,限制了vxlan的规格。为了解决上述问题,本申请提出了用ipl隧道代替上述ipl链路来连接drs系统中的vtep设备。一方面,使用ipl隧道代替ipl链路大大降低了地域对drs中的vtep设备的距离限制,实现了即使drs中的多个vtep相隔很远,也可以通过该ipl隧道实现通信;另一方面,由于ipl隧道不需要再单独占用一个物理端口资源,所以节约了端口资源,扩大了整机的vxlan规格。本申请所采用的组网架构可如图2所示。在图2所示的组网架构中,drs系统的各vtep之间不再通过ipl链路相连,而是通过ipl隧道相连。如vtep21和vtep22之间通过ipl隧道相连。该ipl隧道,可以理解具有所有ipl链路功能的隧道,该ipl隧道可基于vxlan隧道技术实现。通常,ipl链路主要具有两类功能:第一类功能:传输两端vtep设备的协议报文;第二类功能:一端vtep至主机的用户侧链路不可用时,将发送至该主机的报文转发至对端vtep,由对端vtep对该报文进行转发。同样的,ipl隧道也应该具有这两方面的功能,即:第一类功能:ipl隧道可传输两端vtep设备的协议报文;第二类功能:一端vtep至主机的用户侧链路不可用时,可将发送至该主机的报文通过该ipl隧道转发至对端vtep,由对端vtep对该报文进行转发。然而,使用ipl隧道实现上述第二类功能会出现如下问题:1)通常由于vtep转发芯片端口上的缺省设置,隧道之间存在水平分割。所述水平分割可以理解为vtep从隧道接收到的报文不会再发往其他隧道。例如,如图2所示,假设vtep21要将来自tunnel21的报文转发至主机22。但当vtep21与主机22之间的用户侧链路不可用时,vtep21无法直接将该报文转发至主机22。vtep21需要将该报文通过ipl隧道发送至vtep22,由vtep22将该报文转发至主机22。但是由于水平分割的限制,vtep1不会将来自tunnel21的报文转发至ipl隧道。2)对于在vtep21与主机22之间的用户侧链路不可用时,vtep21需要将本应直接转发至主机22的报文,通过ipl隧道转发至vtep22,由vtep22转发至主机22。由于受到现有的具有ipl链路的drs的启发,一般容易想到的实现方式是如下所示:当vtep21检测到该vtep21上连接主机22的用户侧链路不可用后,会触发vtep22将向vtep21同步转发表项。该转发表项的mac地址仍然是主机22的mac地址,而该转发表项的出接口由原来的指向主机22的ac接口变为tunnel23接口。这种方式需要刷新转发表项的出接口,需要同步转发表项,所以大大提高了drs系统的工作负荷,降低了在该用户侧链路不可用时,报文转发的效率。针对上述问题,本申请提出了一种在使用ipl隧道代替ipl链路的evpn+drs的组网下的单播报文的转发方式,用以解决上述两方面问题。在介绍本申请提供的报文转发方法之前,首先对本文提到的一些概念进行介绍。上述分布式聚合接口:通常,在drs系统中,多个vtep上的连接同一个主机的用户侧端口可以组成分布式聚合接口。例如,如图2所示,vtep21上的用户侧端口port21和vtep22上的用户侧端口port25都与主机21相连,所以port21和port25可组成分布式聚合接口dr21。分布式聚合接口可以理解为一个逻辑上的概念。通常vtep上记录有用户侧端口和该用户侧端口所属的分布式聚合接口的映射关系。上述ac接口:通常,在分布式聚合接口上可创建ac接口,该ac接口可以为逻辑接口。通常,drs系统的中的转发表项的出接口一般为类似ac接口的逻辑接口。上述ipl隧道,可以理解具有ipl链路功能的隧道,该ipl隧道可基于vxlan隧道技术实现。该ipl隧道端口,可以理解为物理端口。参见图3,图3是本申请一示例性实施例示出的一种报文转发的流程图,该方法可用在evpn组网下的das系统中的vtep,该报文转发流程可包括步骤301-步骤302。步骤301:检测到用户侧端口连接的链路故障;步骤302:确定所述用户侧端口关联的接入电路ac接口。在本申请实施例中,上述本地用户侧端口连接的链路故障通常可包括本地用户侧端口故障,如本地用户侧端口down掉,还可包括与本地用户侧端口连接的链路故障等,这里不对其进行特别地限定。当vtep在检测到本地用户侧端口连接的链路故障时,vtep可确定该用户侧端口绑定的ac接口。在实现时,vtep可基于储存的用户侧端口和分布式接口的映射关系,确定该用户侧端口所属的分布式聚合接口,然后将该分布式聚合接口绑定的ac接口确定为与该用户侧端口绑定的ac接口。步骤303:在已连接的所有ipl隧道中选择一个ipl隧道。在本申请实施例中,当该drs系统中只有两台vtep时,上述vtep可将本地唯一的ipl隧道端口确定为待关联的隧道端口。当该drs系统中有多于两台的vtep时,上述vtep可向该drs系统中的其他对端vtep发送故障通告消息,该故障通告消息中携带有该vtep上的故障的用户侧端口信息,如用户侧端口的端口号,该端口所述的分布式聚合接口id等。drs系统的中的其他对端vtep在收到该故障通告消息后,可获取该vtep的故障的用户侧端口信息。通常,其他对端vtep上储存有本地用户侧端口和分布式聚合接口的映射关系。其他对端vtep可基于故障通告消息中携带的故障用户端口所属分布式聚合接口id,在本地的用户侧端口和分布式聚合接口的映射关系中,查找与该故障通告消息中携带的分布式聚合接口id对应的本地用户侧端口。然后,该其他对端vtep可检查该查找到的本地用户侧端口是否正常。如果正常,其他对端vtep可向该vtep返回故障通告响应消息。综上可知,其他对端vtep只有在该其他对端vtep上的与所述故障用户侧端口属于同一分布式聚合接口的端口正常时,才会向该vtep发送故障通告响应消息,所以该故障通告响应消息用于指示发送该故障通告响应消息的vtep上的指定端口正常;所述指定端口与所述故障的用户侧端口属于同一分布式聚合接口。该vtep可接收其他vtep返回的故障通告响应消息。该vtep可在已连接的所有ipl隧道中,选择最先收到的故障通告响应消息的源地址所指示的vtep与本vtep之间的ipl隧道。当然,该vtep还可采用其他方式来确定待关联的ipl隧道口,这里不进行特别的限定。步骤304:将确定的所述ac接口关联选择的ipl隧道的ipl隧道口。在本申请实施例中,在确定上述用户侧端口绑定的ac接口、以及待关联的ipl隧道口后。该vtep可将与该ac接口由绑定该用户侧端口修改为绑定本地ipl隧道口。需要说明的是,当ac接口由绑定的用户侧端口修改为绑定的本地ipl隧道口后,ac接口对应的与该用户侧端口相关配置信息也被修改与本地ipl隧道口相关的配置信息。例如,ac接口由绑定的用户侧端口修改为绑定的本地ipl隧道口后,ac接口对应的与该用户侧端口相关的vlan标识等配置信息也会被修改为与本地ipl隧道口对应的封装信息等配置信息。步骤305:通过本地隧道端口接收到:vxlan数据报文时,对所述vxlan数据报文进行vxlan解封装;步骤306:查找vxlan解封装后的以太网数据报文的目的地址匹配的转发表项;若查找到的匹配转发表项中出接口为所述ac接口时,对vxlan解封装后的以太网数据报文进行ipl隧道封装并通过所述ac接口关联的ipl隧道口发送至对端vtep,由对端vtep转发该报文。在本申请实施例中,在本地用户侧端口连接的链路故障时,该vtep通过本地隧道口接收到vxlan数据报文时,可对该vxlan数据报文进行vxlan解封装。然后vtep可查找vxlan解封装后的以太网数据报文的目的地址匹配的转发表项。若查找到的匹配转发表项中出接口为所述ac接口时,该vtep可对该以太网数据报文进行ipl隧道封装并通过本地ac接口关联的ipl隧道口发送至对端vtep。对端vtep可对该报文进行ipl隧道解封装,然后将ipl隧道解封装的报文转发出去。此外,在本申请实施例中,该vtep在检测到故障的链路恢复正常时,可将所述ac接口由绑定所述ipl隧道口修改为绑定所述用户侧端口。需要说明的是,当ac接口由绑定该ipl隧道口修改为绑定该用户侧端口后,ac对应的与本地ipl隧道口相关的配置信息也被修改与用户端口关联的配置信息。例如,ac接口由绑定该ipl隧道口修改为绑定该用户侧端口后,ac接口对应的与ipl隧道口相关的封装信息,如vxlan头、udp头和ip头等也会被修改为与该用户侧端口相关的vlan标识等配置信息。当vtep在检测到故障的链路恢复正常时,该vtep通过本地隧道口接收到vxlan数据报文时,可对该vxlan报文进行vxlan解封装。然后,vtep可查找与vxlan解封装后的以太网数据报文的目的地址匹配的转发表项。若查找到的匹配转发表项中出端口为所述ac接口时,通过当前所述ac接口关联的用户侧端口发送vxlan隧道解封装后的报文。此外,在本申请实施例中,该ipl隧道口的出方向未使能水平分割功能、入方向使能水平分割功能;vxlan隧道口的入方向和出方向使能水平分割功能。这种设置可以使得从vxlan隧道接收到的报文可通过ipl隧道转发,同时使得从ipl隧道接收到的报文不能从vxlan隧道转发。本申请提出一种报文转发方式,drs中的vtep与对端vtep之间通过ipl隧道连接,用该ipl隧道代替ipl链路,一方面,使用ipl隧道代替ipl链路大大降低了地域对drs中的vtep设备的距离限制,实现了即使drs中的多个vtep相隔很远,也可以通过该ipl隧道实现通信;另一方面,由于ipl隧道不需要再单独占用一个物理端口资源,所以节约了端口资源,扩大了整机的vxlan规格。此外,当drs中的vtep检测到用户侧端口相连的链路故障后,vtep可将与该用户侧端口绑定的ac接口由绑定该用户侧端口修改为绑定ipl隧道口,从而使得在链路故障后,转发表项的出接口并不发生变化,也不需要触发对端向本端同步转发表项的操作,由于不需要转发表项的刷新和同步,也可完成将从vxlan隧道的来的流量转发至对端,由对端将该流量进行转发,从而大大降低了设备工作负荷,提高了转发效率。参见图4,图4是本申请一示例性实施例示出的一种报文转发的示意图。在图4所示的组网中,vtep41和vtep42之间不再通过ipl链路相连,而是在vtep41和vtep42之间建立ipl隧道,如建立ipl隧道tunnel43。该建立的ipl隧道可通过vxlan隧道技术实现。vtep41和vtep42会定期通过该建立的ipl隧道发送drs协议报文,通过该drs协议报文,建立drs。主机41上连接vtep41的物理端口(如port47)和主机41上连接vtep42的物理端口(如port48)加入普通聚合接口agg41中。vtep41上连接主机41的用户侧端口(如port41)和vtep42上连接主机41的用户侧端口(如port45)加入分布式聚合接口dr41中。并且,在该dr41上创建ac(attachmentcircuit,接入电路)接口,为ac41。主机42上连接vtep41的物理端口(如port49)和主机42上连接vtep42的物理端口(如port410)加入普通聚合接口agg42中;vtep41上连接主机42的用户侧端口(如port42)和vtep42上连接主机42的用户侧端口(如port46)加入分布式聚合接口dr42中。并且,在该dr42上创建ac接口,为ac42。此外,vtep41可记录本地用户侧端口与分布式聚合接口的映射记录,如表1所示。用户侧端口分布式聚合接口port41dr41port42dr42表1vtep42可记录本地用户侧端口与分布式聚合接口的映射记录,如表2所示。用户侧端口分布式聚合接口port45dr41port46dr42表2此外,ipl隧道端口port43的出方向不使能水平分割,port43的入方向使能水平分割。vtep上的与远端其他vtep通过vxlan隧道连接的端口(如port411)的入方向和出方向使能水平分割。这种设置,可以使得,vtep41可将从tunnel41接收到的报文转发至tunnel43,而不能将从tunnel43接收到的报文转发至tunnel41。具体的,当vtep41从port411接收到来自tunnel41的报文后,port411可为该报文添加port411的入方向的水平分割标识。当vtep41将报文通过port43转发至tunnel43时,port43不为该报文添加port43的出方向的水平分割标识。port43可检查待转发的报文上的水平分割标识,由于port43只检查到port411入方向的水平分割标识,所以port43不会丢弃该报文,而是将该报文转发出去。当vtep41从port43接收到来自tunnel43的报文后,port43可为该报文添加port43的入方向的水平分割标识。当vtep41将报文通过port411转发至tunnel41时,port411为该报文添加port411的出方向的水平分割标识。port411可检查待转发的报文上的水平分割标识,由于port411检查到port43入方向的水平分割标识和port411出方向的水平分割标识,所以port411会丢弃该报文,不对该报文进行转发。同样的,vtep42上的ipl隧道端口port44也使能入方向的水平分割,而没有使能出方向的水平分割。这种设置使得vtep42无法将从tunnel43接收到的报文向tunnel42转发,使得vtep42可以将来自tunnel42转发至tunnel43。通过这种水平分割的设置,使得当vtep41和主机42之间的用户侧链路不可用时,vtep41可将来自vxlan隧道的报文按照图4箭头所指的路径,通过tunnel43转发至vtep42,由vtep42将该报文转发至主机42。在本申请实施例中,当vtep41检测到vtep41与主机42之间的用户侧链路不可用时,比如vtep41上的port42down掉等。vtep41可确定该用户侧链路对应的ac接口。具体的,vtep1可确定连接该用户侧链路的用户侧端口port42所绑定的ac接口。在实现时,vtep1可基于表1所示的用户侧端口与分布式聚合接口的映射关系,查找该用户侧端口port42所属的分布式聚合接口,在本例中,可查找到port42所属的分布式聚合接口dr42。然后vtep1可确定dr2上创建的ac接口(即ac42)为该用户侧端口port42所绑定的ac接口。此外,vtep1还可在已连接的ipl隧道中选择待关联的ipl隧道端口。在一种可选的实现方式中,当drs系统中只有两台设备,如vtep41和vtep42,vtep41可将本地唯一的ipl隧道端口,如port43确定为待关联的ipl隧道端口。在另一种可选的实现方式中,当drs系统中有多台vtep,假设有三台,分别为vtep41、vtep42和vtpe43(图4中未示出)。vtep43上的用户侧端口port412(图4未示出)也加入了分布式聚合接口dr42。vtep41可向vtep42和vtep43发送故障通知消息。该故障通告消息中携带有该vtep41上的故障的用户侧端口port42的信息,如用户侧端口的端口号port42,该端口所述的分布式聚合接口dr42等。vtep42在接收到该故障通知消息后,可获取该故障通知消息中携带的故障的用户侧端口port42的信息,如可获取port42所属的分布式是聚合接口dr42等。然后,vtep42可基于表2所示的用户侧端口和分布式接口的映射关系,查找dr42对应的本地用户侧端口。在本例中,可查找到port46。vtep42可检测用户侧端口port46以及port46连接的链路是否正常。如果正常,vtep42可向vtep41返回故障通告响应消息。综上可知,vtep42只有在该vtep42上的与所述故障用户侧端口port42属于同一分布式聚合接口dr42的端口port46正常时,才会向该vtep41发送故障通告响应消息,所以该故障通告响应消息用于指示发送该故障通告响应消息的vtep42上的指定端口port46正常;所述指定端口port46与所述故障的用户侧端口port42属于同一分布式聚合接口dr42。vtep43在接收到该故障通知消息后,可检测本地上的属于dr42的用户侧端口port412以及port412连接的链路是否正常。如果正常,vtep43可向vtep41返回故障通告响应消息。vtep41可接收vtep42和vtep43返回的故障通知响应消息。假设,vtep41先接收到vtep42发送的故障通知响应消息,vtep41可将与vtep42之间的ipl隧道的隧道端口port43作为待关联的ipl隧道端口。在确定出上述ac接口以及待关联的ipl隧道端口后,vtep1可将ac42由绑定用户侧物理端口port42修改为关联本地的ipl隧道端口port43,以及将余port42相关的如vlan标识(如vlan标识1)等配置信息修改为与ipl隧道口相关的配置信息,如封装信息(vxlan头、udp头以及ip头等)等。在vtep41与主机42之间的用户侧链路不可用时,如果vtep1从本地隧道口接收到vxlan数据报文。vtep1可按如图4箭头所指示的路径转发该报文。具体的,vtep1可对该vxlan数据报文进行vxlan解封装,得到以太网数据报文。然后,vtep1可以在该以太网数据报文所属的vsi(virtualswitchinstance,虚拟交换实例)中,查找与该以太网数据报文的目的mac匹配的转发表项。假设与该以太网数据报文匹配的转发表项3的出接口为ac42时,vtep41可基于修改后的该ac42对应的封装信息,对该报文进行ipl隧道封装,为该以太网数据报文添加与ipl隧道对应的vxlan头,udp头和ip头,从ac42关联的ipl隧道口port43转发该报文,将该报文通过ipl隧道发送至vtep42。表3是该报文所属vsi对应的转发表项如表3所示。mac地址出接口主机42的mac地址ac42表3当vtep42接收到上述经过ipl隧道封装的报文后,可对该报文进行ipl隧道解封装,得到以太网数据报文。vtep2可确定该以太网数据报文所述的vsi,然后查找与该vsi对应的转发表项。vtep2可查到表3所示的转发表项。在转发时,vtep42可为该以太网数据报文封装ac42接口对应ac中配置的vlan标识,然后将添加了vlan标识的报文从该ac42所关联的本设备上的物理端口(如port46)发送至主机42。需要说明的是,通常,在drs中,当vtep41学习到如表3所示的转发表项后,可将该转发表项同步至vtep42。所以vtep42上存在如表3所示的转发表项。在本申请实施例中,当vtep41检测到vtep41与主机42之间的用户侧链路恢复可用时,vtep41可将该ac接口(即ac42)由绑定ipl隧道口port43修改回绑定用户侧端口port42,以及将该与ipl隧道相关的配置信息如,封装信息修改回与用户侧端口port42相关的vlan标识等配置信息。这样,当vtep41通过本地隧道接收到vxlan数据报文后,vtep41可对该vxlan数据报文进行vxlan解封装,得到以太网数据报文。vtep41可查找与该以太网数据报文的目的mac地址匹配的转发表项,若查找到的转发表项如为上述表3所述的转发表项。vtep1可确定该报文的出接口为ac42。vtep41可为该报文添加与ac42对应的port42相关的vlan标识,并将该报文从ac42对应的用户侧端口port42转发至主机42。至此完成该实施例的介绍。从上述例子可以看出。第一,drs中的各vtep,如vtep41与对端vtep42之间通过ipl隧道连接,用该ipl隧道代替ipl链路,一方面,使用ipl隧道代替ipl链路大大降低了地域对drs中的vtep设备的距离限制,实现了即使drs中的多个vtep相隔很远,也可以通过该ipl隧道实现通信;另一方面,由于ipl隧道不需要再单独占用一个物理端口资源,所以节约了端口资源,扩大了整机的vxlan规格。第二,通常,在vtep41与主机42之间的用户侧链路不可用时,vtep41需要将本应直接转发至主机42的报文,通过ipl隧道转发至vtep42,由vtep42转发至主机42。由于受到现有的具有ipl链路的drs的启发,一般容易想到的实现方式是如下所示:当vtep41检测到该vtep41上连接主机42的用户侧链路不可用后,会触发vtep42将向vtep41同步转发表项。该转发表项的mac地址仍然是主机42的mac地址,而该转发表项的出接口由原来的指向主机42的ac接口ac42变为tunnel43接口。这种方式,需要刷新转发表项的出接口,还需要同步转发表项,所以大大提高了drs系统的工作负荷,降低了在该用户侧链路不可用时,报文转发的效率。而在本申请中,当drs中的vtep41检测到用户侧端口相连的链路故障后,vtep41可将与该用户侧端口绑定的ac接口ac42由绑定该用户侧端口port42修改为绑定ipl隧道口port43,从而使得在链路故障后,转发表项的出接口并不发生变化,也不需要触发对端向本端同步转发表项的操作,由于不需要转发表项的刷新和同步,也可完成将从vxlan隧道的来的流量转发至对端,由对端将该流量进行转发,从而大大降低了设备工作负荷,提高了转发效率。请参考图5,图5是本申请一示例性实施例示出的一种报文转发装置的框图。所述装置应用于分布式中继系统drs中的可扩展虚拟局域网络隧道端点vtep,所述vtep与所述drs中的对端vtep之间通过ipl隧道连接,所述装置包括:检测单元501,用于检测到用户侧端口连接的链路故障;确定单元502,用于确定所述用户侧端口关联的接入电路ac接口;选择单元503,用于在已连接的所有分布式聚合内部链路ipl隧道中选择一个ipl隧道;修改单元504,用于将确定的所述ac接口关联选择的ipl隧道的ipl隧道口;转发单元505,用于通过本地隧道口接收到可扩展虚拟局域网络vxlan数据报文时,对所述vxlan数据报文进行vxlan解封装;查找vxlan解封装后的以太网数据报文的目的地址匹配的转发表项;若查找到的匹配转发表项中出接口为所述ac接口时,对vxlan解封装后的以太网数据报文进行ipl隧道封装并通过所述ac接口关联的ipl隧道口发送至对端vtep,由对端vtep转发该报文。可选的,所述检测单元501,还用于检测到故障的链路恢复;所述修改单元504,还用于将所述ac接口关联的所述ipl隧道口替换为所述用户侧端口。可选的,所述确定单元502,具体用于基于预设的用户侧端口与分布式聚合接口的映射关系,查找所述用户侧端口所属的分布式聚合接口;将所述分布式聚合接口绑定的ac接口确定为所述用户侧端口绑定的ac接口。可选的,所述ipl隧道口的出方向未使能水平分割功能、入方向使能水平分割功能;vxlan隧道口的入方向和出方向使能水平分割功能。可选的,所述选择单元503,具体用于向所述drs的其他对端vtep发送故障通告消息;所述故障通告消息用于通告本vtep上的故障的用户侧端口;接收所述其他对端vtep返回的故障通告响应消息;其中,所述故障通告响应消息用于指示发送该故障通告响应消息的vtep上的指定端口正常,所述指定端口与所述故障的用户侧端口属于同一分布式聚合接口;在已连接的所有ipl隧道中,选择最先收到的故障通告响应消息所指示的源设备与本vtep之间的ipl隧道。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1