CN108965126B - 一种报文转发方法及装置 - Google Patents
一种报文转发方法及装置 Download PDFInfo
- Publication number
- CN108965126B CN108965126B CN201810848239.2A CN201810848239A CN108965126B CN 108965126 B CN108965126 B CN 108965126B CN 201810848239 A CN201810848239 A CN 201810848239A CN 108965126 B CN108965126 B CN 108965126B
- Authority
- CN
- China
- Prior art keywords
- tunnel
- layer
- interface
- message
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2592—Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
- H04L45/245—Link aggregation, e.g. trunking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种报文转发方法及装置,该方法包括:对于未带有隧道封装的三层报文,当查询到与所述三层报文匹配的目标三层转发表项时,根据所述目标三层转发表项判断所述三层报文的下一跳出接口与所述三层报文的入接口是否相同;若相同,则将所述三层报文的下一跳出接口修改为目标隧道接口,并对所述三层报文进行隧道封装;将隧道封装后的所述三层报文通过所述目标隧道接口转发;若不同,则通过所述三层报文的下一跳出接口转发所述三层报文。应用本发明实施例可以降低数据中心组网中产生环路的概率,提高数组中心组网的可靠性。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种报文转发方法及装置。
背景技术
随着服务器的能力以及带宽的增强,数据中心机房中出现了一些新的技术应用,如跨设备堆叠和高带宽双网卡。
以图1所示组网为例,在接入设备(R2和R3)和服务器(R4)之间通过双网卡和非堆叠聚合的方式互连,形成非同步式的互备链路。服务器采用一个主机地址,分别和多个(图中以两个为例)接入设备建立直连链路,形成相同的ARP(Address Resolution Protocol,地址解析协议)表项,向外发布相同的主机路由。对于汇聚交换机(R1)而言,R1-R2-R4和R1-R3-R4形成等价路径,从R1去往R4的报文会在该两条等价路径上分担。
然而实践发现,在图1所示网络架构中,当R2与R4之间的链路故障,但R1-R2-R4对应的路由尚未撤销时,通过R1-R2-R4这一路径转发的报文仍然会从R1发送至R2,此时,由于R2和R4之间的链路故障,R2会将报文重新发送给R1;而由于R1-R2-R4对应的路由尚未撤销,R1接收到该报文时,会再次发送给R1,进而,报文在R1和R2之间形成环路。
发明内容
本发明提供一种报文转发方法及装置,以解决数据中心组网中接入设备与服务器之间链路故障引起的环路的问题。
根据本发明实施例的第一方面,提供一种报文转发方法,应用于包括多个接入设备的数据中心组网中的目标接入设备,所述数据中心组网中的接入设备与服务器通过非堆叠聚合方式互连,同一服务器对应的聚合组成员接入设备中任意两个接入设备之间建立有隧道,所述方法包括:
对于未带有隧道封装的三层报文,当查询到与所述三层报文匹配的目标三层转发表项时,根据所述目标三层转发表项判断所述三层报文的下一跳出接口与所述三层报文的入接口是否相同;
若相同,则将所述三层报文的下一跳出接口修改为目标隧道接口,并对所述三层报文进行隧道封装;
将隧道封装后的所述三层报文通过所述目标隧道接口转发;
若不同,则通过所述三层报文的下一跳出接口转发所述三层报文。
根据本发明实施例的第二方面,提供一种报文转发装置,应用于包括多个接入设备的数据中心组网中的目标接入设备,所述数据中心组网中的接入设备与服务器通过非堆叠聚合方式互连,同一服务器对应的聚合组成员接入设备中任意两个接入设备之间建立有隧道,所述装置包括:
接收单元,用于接收报文;
查询单元,用于根据所述接收单元接收到的三层报文查询三层转发表项;
判断单元,用于对于未带有隧道封装的三层报文,当所述查询单元查询到与所述三层报文匹配的目标三层转发表项时,根据所述目标三层转发表项判断所述三层报文的下一跳出接口与所述三层报文的入接口是否相同;
处理单元,用于若所述三层报文的下一跳出接口与所述三层报文的入接口相同,则将所述三层报文的下一跳出接口修改为目标隧道接口,并对所述三层报文进行隧道封装;
转发单元,用于将隧道封装后的所述三层报文通过所述目标隧道接口转发;
所述转发单元,还用于若所述三层报文的下一跳出接口与所述三层报文的入接口不同,则通过所述三层报文的下一跳出接口转发所述三层报文。
应用本发明实施例,通过在同一服务器对应的聚合组成员接入设备中任意两个接入设备之间建立隧道,对于未带有隧道封装的三层报文,当根据查询到的匹配的三层转发表项确定该三层报文的下一跳出接口与报文入接口相同时,通过隧道转发该三层报文,以避免环路产生,降低了数据中心组网中产生环路的概率,提高了数组中心组网的可靠性。
附图说明
图1是一种数据中心组网的架构示意图;
图2是本发明实施例提供的一种报文转发方法的流程示意图;
图3是本发明实施例提供的一种具体应用场景的架构示意图;
图4是本发明实施例提供的图3所示应用场景下的报文转发方法的流程示意图;
图5是本发明实施例提供的一种具体应用场景的架构示意图;
图6是本发明实施例提供的图5所示应用场景下的报文转发方法的流程示意图;
图7是本发明实施例提供的一种报文转发装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
请参见图2,为本发明实施例提供的一种流量转发方法的流程示意图,其中,该流量转发方法可以应用于包括多个接入设备的数据中心组网中的任一接入设备(本文中称为目标接入设备),该数据中心组网中的接入设备与服务器通过非堆叠聚合方式互连,如图2所示,该流量转发方法可以包括以下步骤:
步骤201、对于未带有隧道封装的三层报文,当查询到与三层报文匹配的目标三层转发表项时,根据目标三层转发表项判断三层报文的下一跳出接口与三层报文的入接口是否相同。若是,则转至步骤202;否则,转至步骤204。
本发明实施例中,对于接入设备与服务器通过非堆叠聚合方式互连的数据中心组网,为了避免由于接入设备与服务器之间的链路故障而导致的环路,对于同一服务器对应的多个聚合组成员接入设备(即与同一个服务器通过非堆叠聚合方式连接的接入设备),可以在任意两个接入设备之间建立隧道。
举例来说,假设服务器1与接入设备1~3通过非堆叠聚合方式连接,则接入设备1~3属于同一聚合组的成员接入设备,接入设备1和接入设备2、接入设备2和接入设备3,接入设备3和接入设备1之间均分别建立隧道。
其中,该隧道可以包括但不限于静态GRE(Generic Routing Encapsulation,通用路由封装)隧道。
为了便于描述和理解,下文中若未特殊说明,所提及的隧道均指同一服务器对应的多个聚合组成员接入设备之间建立的隧道。
本发明实施例中,当目标接入设备接收到报文时,目标接入设备可以判断该报文是否为带有隧道封装的三层报文,并当该报文为未带有隧道封装的三层报文时,目标接入设备可以根据该三层报文的目的IP地址查询三层转发表,以确定是否存在匹配的三层转发表项(本文中称为目标三层转发表项)。
本发明实施例中,当目标接入设备查询到目标三层转发表项时,目标接入设备可以根据该目标三层转发表项中的下一跳出接口,判断该三层报文的下一跳出接口与该三层报文的入接口是否相同。
需要说明的是,在本发明实施例中,当目标接入设备未查询到与三层报文匹配的目标三层转发表项时,目标接入设备可以直接丢弃该三层报文,或按照其它策略处理,本发明实施例对此不做限定。
步骤202、将三层报文的下一跳出接口修改为目标隧道口,并对三层报文进行隧道封装。
本发明实施例中,为了避免环路产生,当目标接入设备确定该三层报文的下一跳出接口与三层报文的入接口相同时,目标接入设备可以通过隧道将该三层报文转发给同一聚合组的其它聚合成员接入设备,由其它聚合成员接入设备对该三层报文进行转发。
具体地,当目标接入设备确定该三层报文的下一跳出接口与三层报文的入接口相同时,目标接入设备可以将该三层报文的下一跳出接口修改为目标接入设备上的隧道接口,并对该三层报文进行隧道封装。
在一个示例中,当目标接入设备与一个其它接入设备建立有隧道时,目标接入设备可以直接将该三层报文的下一跳出接口修改为该隧道在目标接入设备上的隧道接口(即将该隧道接口确定为目标隧道接口),并根据该隧道的信息对该三层报文进行隧道封装。
在另一个示例中,当目标接入设备与至少两个其它接入设备建立有隧道时,目标接入设备可以从与该至少两个其它接入设备建立的隧道在目标接入设备上的隧道接口中选择一个隧道接口作为目标隧道接口,并将三层报文的下一跳出接口修改为该目标隧道接口,并根据目标隧道口对应的隧道的信息对三层报文进行隧道封装。
步骤203、将隧道封装后的三层报文通过目标隧道接口转发。
本发明实施例中,目标接入设备对三层报文进行隧道封装后,可以将隧道封装后的三层报文通过目标隧道接口转发。
步骤204、通过三层报文的下一跳出接口转发该三层报文。
本发明实施例中,当目标接入设备确定该三层报文的下一跳出接口与三层报文的入接口不相同时,目标接入设备可以将该三层报文的下一跳出接口转发该三层报文。
可见,在图2所示方法流程中,通过在同一服务器对应的聚合组成员接入设备中任意两个接入设备之间建立隧道,对于未带有隧道封装的三层报文,当目标接入设备确定该三层报文的下一跳出接口与三层报文的入接口相同时,目标接入设备可以将三层报文的下一跳出接口修改为目标隧道接口,并对该三层报文进行隧道封装后,通过目标隧道接口转发,降低了环路产生概率,提高了组网的稳定性。
进一步地,在本发明实施例中,考虑到对于目标接入设备而言,待转发的未带有隧道封装的三层报文可以包括从非隧道接口接收到的报文,或,对从隧道接口接收到的带有隧道封装的三层报文解除隧道封装后得到的报文,而对于后者,即使所查询到的报文的下一跳出接口与报文的入接口不同,当目标接入设备通过所查询到的报文的下一跳出接口转发报文时,仍可能会出现环路。
以图1所示组网为例,假设R2和R3之间建立有隧道,当R2与R4之间的链路故障,但R1-R2-R4对应的路由尚未撤销时,当R2接收到R1转发的报文时,按照图2所示方法流程中的描述,R2会对报文进行隧道封装后,通过R2和R3之间的隧道将报文转发给R3;R3接收到该带有隧道封装的报文时,可以解除隧道封装,并根据解除隧道封装后的报文查询三层转发表项进行转发。此时,若R3和R4之间的链路也发生故障,但R1-R3-R4对应的路由也尚未撤销,则R3会查询到报文的下一跳出接口为与R1连接的接口,由于所查询到的报文的下一跳出接口与报文的入接口并不一致,因此,R3会通过将报文转发给R1,R1接收到报文后会转发给R2,然后R2再将报文转发给R3,进而,报文在R1-R2-R3之间形成环路。
因此,为了进一步降低环路产生的概率,提高组网的稳定性,需要使接入设备在进行报文转发时,能够识别出未带有隧道封装的报文是从非隧道接口接收到的报文,还是从隧道接口接收到,但解除了隧道封装的报文。
相应地,在本发明其中一个实施例中,上述判断目标三层转发表项的下一跳出接口与三层报文的入接口是否相同之前,还可以包括:
判断该三层报文中是否携带隧道标签;
若未携带,则确定执行上述判断目标三层转发表项的下一跳出接口与该三层报文的入接口是否相同的步骤。
在该实施例中,为了使目标接入设备在进行三层报文转发时,能够识别出未带有隧道封装的三层报文是从非隧道接口接收到的三层报文,还是从隧道接口接收到,但解除了隧道封装的三层报文,可以定义一种用于标识报文为通过隧道传输的报文的标签(本文中称为隧道标签),携带了该隧道标签的报文为通过隧道传输的报文。
在一个示例中,该隧道标签可以由接入设备在接收到带有隧道封装的三层报文,并解除其隧道封装后,添加到未带有隧道封装的三层报文中。
在另一个示例中,该隧道标签可以由接入设备在需要通过隧道转发三层报文时,添加到三层报文中。
例如,当接入设备确定需要通过隧道转发三层报文时,可以在三层报文中添加隧道标签,并对该三层报文进行隧道封装后通过隧道转发。
相应地,在该实施例中,对于未带有隧道封装的三层报文,当查询到与所述三层报文匹配的目标三层转发表项时,目标接入设备可以先判断该三层报文中是否携带隧道标签。
当目标接入设备确定该三层报文中未携带隧道标签时,即目标接入设备从非隧道接口接收到该三层报文时,目标接入设备可以进一步按照图1中所描述的方式判断该三层报文的下一跳出接口是否与该三层报文的入接口相同,并根据判断结果按照步骤202~204中描述的方式进行处理。
进一步地,在该实施例中,上述判断三层报文中是否携带隧道标签之后,还可以包括:
若该三层报文中携带隧道标签,则判断是否存在与三层报文的目的IP地址对应的直连路由;
若存在,则根据直连路由转发三层报文;
若不存在,则当目标接入设备与至少两个其它接入设备建立有隧道时,将三层报文的下一跳出接口修改为接收到该三层报文的隧道接口之外的其它隧道接口;
对三层报文进行隧道封装,并将隧道封装后的三层报文通过该其它隧道接口转发。
在该实施例中,当目标接入设备确定三层报文中携带有隧道标签,即该三层报文是同一聚合组的其它聚合组成员接入设备通过隧道传输过来的报文时,目标接入设备可以判断是否存在与该三层报文的目的IP地址对应的直连路由,即下一跳地址为目的IP地址的路由。
若存在,则目标接入设备可以根据该直连路由转发该三层报文。
若不存在,则目标接入设备可以进一步判断目标接入设备是否与至少两个其它接入设备建立有上述隧道,即判断目标接入设备所归属的聚合组(IP地址为该三层报文的目的IP地址的服务器对应的聚合组)中的聚合组成员接入设备的数量是否大于等于三个。
若是,则目标接入设备可以将该三层报文的下一跳出接口修改为接收到该三层报文的隧道接口之外的其它隧道接口,并对三层报文进行隧道封装后,将隧道封装后的三层报文通过该其它隧道接口转发。
其中,在该实施例中,当目标接入设备所归属的聚合组中的聚合组成员接入设备的数量大于等于三个时,上述隧道标签中还可以携带有接收到带有隧道封装的三层报文的隧道接口的标识,进而,目标接入设备可以根据该隧道标签确定接收到携带有该隧道标签的三层报文的隧道接口。
此外,当三层报文通过多个不同的隧道转发时,该三层报文中可以携带多个隧道标签,各隧道标签分别携带有对应的隧道在接收到该三层报文的接入设备上的隧道接口的标识,从而,接收到该三层报文的接入设备可以根据该三层报文中携带的隧道标签确定自身是否之前接收到过该三层报文,并当确定自身之前接收到过该三层报文时,对其进行丢弃处理,以避免该三层报文在隧道中形成环路。
为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面结合具体实例对本发明实施例提供的技术方案进行说明。
实施例一
请参见图3,为本发明实施例提供的一种具体应用场景的架构示意图,如图3所示,在该应用场景中,接入设备R2和接入设备R3与服务器R4通过非堆叠聚合方式互连,R2和R3之间建立有静态GRE隧道(下文中简称为隧道),该隧道在R2上的隧道接口为隧道接口21,在R3上的隧道接口为隧道接口31;汇聚交换机R1分别与R2和R3建立路由邻居(如BGP邻居),R1-R2-R4和R1-R3-R4形成等价路径。
基于图3所示应用场景,以R2的报文转发处理流程为例,本发明实施例提供的报文转发方法流程可以如图4所示,其可以包括以下步骤:
步骤401、当接收到的报文时,判断接收到的报文是否为带有隧道封装的三层报文。若是,则转至步骤402;否则,转至步骤403。
若未特殊说明,下文中所提及的报文均指三层报文。
步骤402、解除该带有隧道封装的三层报文的隧道封装,以得到三层报文,并在该三层报文中添加隧道标签,转至步骤403。
若未特殊说明,下文中所提及的三层报文均指未带有隧道封装的三层报文。
步骤403、根据该三层报文的目的IP地址查询匹配的目标三层转发表项。若存在,则转至步骤404;否则,丢弃该未带有隧道封装的三层报文。
步骤404、判断该三层报文中是否携带有隧道标签。若是,则转至步骤407;否则,转至步骤405。
步骤405、判断该三层报文的下一跳出接口与该三层报文的入接口是否相同。若是,则转至步骤406;否则,转至步骤407。
在该实施例中,对于未带有隧道标签的三层报文,例如,该报文为R1发送给R2的三层报文,R2可以根据与该三层报文的目的IP地址匹配的目标三层转发表项确定该三层报文的下一跳出接口,并判断该三层报文的下一跳出接口与该三层报文的入接口是否相同。
步骤406、将该三层报文的下一跳出接口修改为隧道接口21,并对该三层报文进行隧道封装后,通过隧道接口21转发。
在该实施例中,为避免环路产生,当R2确定该三层报文的下一跳出接口与该三层报文的入接口相同时,R2可以通过隧道将该三层报文发送给R3,由R3对该三层报文进行转发。
例如,假设R2与R4之间的链路down,但R1-R2-R4的路由尚未撤销,则当R2接收到R1发送的目的IP地址为R4的IP地址的三层报文时,R2查询到的该三层报文的下一跳出接口为与R1连接的接口,其与该三层报文的入接口一致,此时,为避免报文在R1和R2之间产生环路,R2可以将该三层报文的下一跳出接口修改为隧道接口21,并在对该三层报文进行隧道封装后,通过隧道接口21转发该带有隧道封装的三层报文。
步骤407、通过目标三层转发表项的下一跳出接口转发该三层报文。
在该实施例中,对于携带隧道标签的三层报文,例如,R2对R3通过隧道发送的带有隧道封装的三层报文进行解除隧道封装后得到的三层报文;或者,R2查询到的未携带隧道标签的三层报文的下一跳出接口(即目标三层转发表项的下一跳出接口)与入接口不相同,R2可以直接根据目标三层转发表项的下一跳出接口进行转发。
请参见图5,本发明实施例提供的另一种具体应用的架构示意图,如图5所示,在该应用场景中,接入设备R2、接入设备R3和接入设备R5与服务器R4通过非堆叠聚合方式互连,R2和R3之间建立有隧道T1,R2和R5之间建立有隧道T2,R3和R5之间建立有隧道T3,隧道T1在R2和R3上的隧道接口分别为隧道接口21和隧道接口31,隧道T2在R2和R5上的隧道接口分别为隧道接口22和隧道接口52,隧道T3在R3和R5上的隧道接口分别为隧道接口33和隧道接口53,汇聚交换机R1分别与R2、R3和R5建立路由邻居,R1-R2-R4、R1-R3-R4和R1-R5-R4形成等价路径。
基于图5所示应用场景,以R3的报文转发处理流程为例,本发明实施例提供的报文转发方法流程可以如图6所示,其可以包括以下步骤:
步骤601、当接收到的报文时,判断接收到的报文是否为带有隧道封装的三层报文。若是,则转至步骤602;否则,转至步骤603。
步骤602、解除该带有隧道封装的三层报文的隧道封装,以得到三层报文,并在该三层报文中添加隧道标签,转至步骤603。
在该实施例中,隧道标签中携带有对应的隧道在接收到该三层报文的接入设备上的隧道接口的标识。
举例来说,假设R3通过隧道接口31接收到R2发送的带有隧道封装的三层报文,则R3解除该带有隧道封装的三层报文的隧道封装后,在三层报文中添加隧道标签,该隧道标签中携带有隧道接口31的标识(假设为TP31),例如,可以以隧道接口31的标识为隧道标签,即R3在解除隧道封装后的三层报文中添加TP31。
步骤603、根据该三层报文的目的IP地址查询匹配的目标三层转发表项。若存在,则转至步骤604;否则,丢弃该未带有隧道封装的三层报文。
步骤604、判断该三层报文中是否携带有隧道标签。若是,则转至步骤608;否则,转至步骤605。
步骤605、判断该三层报文的下一跳出接口与该三层报文的入接口是否相同。若相同,则转至步骤606;否则,转至步骤607。
步骤606、将该三层报文的下一跳出接口修改为隧道接口31,并对该三层报文进行隧道封装后,通过隧道接口31转发。
在该实施例中,为避免环路产生,当R3确定该三层报文的下一跳出接口与该三层报文的入接口相同时,R3可以通过隧道将该三层报文发送给R2或R5(步骤606中以R3通过隧道将三层报文发送给R2为例),由R2对该三层报文进行转发。
例如,假设R3与R4之间的链路down,且R1-R3-R4的路由尚未撤销,则当R3接收到R1发送的目的IP地址为R4的IP地址的三层报文时,R3查询到的该三层报文的下一跳出接口为与R1连接的接口,其与该三层报文的入接口一致,此时,为避免报文在R1和R3之间产生环路,R3可以将该三层报文的下一跳出接口修改为隧道接口31,并在对该三层报文进行隧道封装后,通过隧道接口31转发该带有隧道封装的三层报文。
步骤607、通过目标三层转发表项的下一跳出接口转发该三层报文。
在该实施例中,R2查询到的未携带隧道标签的三层报文的下一跳出接口(即目标三层转发表项的下一跳出接口)与入接口不相同,R2可以直接根据目标三层转发表项的下一跳出接口进行转发。
步骤608、判断是否存在与该三层报文的目的IP地址对应的直连路由。若是,则转至步骤609;否则,转至步骤610。
在该实施例中,对于携带隧道标签的三层报文,例如,R3对R2或R5(步骤608中以R5为例)通过隧道发送的带有隧道封装的三层报文进行解除隧道封装后得到的三层报文(其中,该三层报文中携带的隧道标签为TP33,即该三层报文的入接口为隧道接口33),R3可以判断是否存在与该三层报文的目的IP地址(即R4的IP地址)对应的直连路由,即下一跳地址为R4的IP地址的路由。
步骤609、通过该直连路由转发该三层报文。
在该实施例中,对于携带隧道标签的三层报文,当R3确定存在该三层报文的目的IP地址对应的直连路由时,R3可以直接通过该直连路由转发该三层报文。
步骤610、将该三层报文的下一跳出接口修改为隧道接口31,并对该三层报文进行隧道封装后,通过隧道接口31转发。
在该实施例中,考虑到R3接收到R5通过隧道转发的报文时,若R3与R4之间的链路down,但R1-R3-R4的路由尚未撤销,则R3查询到的三层报文的下一跳出接口为R3连接R1的接口,此时,虽然该三层报文的下一跳出接口(R3连接R1的接口)与该报文的入接口(隧道接口33)不同,但是当R3通过该三层报文的下一跳出接口将报文发送给R1时,R1会再次将报文发送给R5,然后R5会再次通过隧道将报文发送给R3,进而,报文在R5-R1-R3之间形成环路。
因此,当R3接收到携带标签(T33)的三层报文(R5通过隧道转发给R3的),且确定不存在该三层报文的目的IP地址直连路由(即R3与R4之间的链路down)时,R3需要通过隧道将该三层报文转发给R2,由R2对该三层报文进行转发。
在该实施例中,当R2接收到R3通过隧道转发的带有隧道封装的三层报文时,可以解除该带有隧道封装的三层报文的隧道封装,并在其中增加隧道标签TP21,进而,查询是否存在与该三层报文的目的IP地址对应的直连路由,若存在,则直接通过该直连路由转发该三层报文;若不存在,由于该三层报文中携带了两个不同的隧道标签,为避免环路产生,R2丢弃该三层报文。
通过以上描述可以看出,在本发明实施例提供的技术方案中,通过在同一服务器对应的聚合组成员接入设备中任意两个接入设备之间建立隧道,对于未带有隧道封装的三层报文,当根据查询到的匹配的三层转发表项确定该三层报文的下一跳出接口与报文入接口相同时,通过隧道转发该三层报文,以避免环路产生,降低了数据中心组网中产生环路的概率,提高了数组中心组网的可靠性。
请参见图7,为本发明实施例提供的一种报文转发装置的结构示意图,其中,该装置可以应用于上述方法实施例中的目标接入设备,如图7所示,该装置可以包括:
接收单元710,用于接收报文;
查询单元720,用于根据接收单元710接收到的三层报文查询三层转发表项;
判断单元730,用于对于未带有隧道封装的三层报文,当查询单元720查询到与该三层报文匹配的目标三层转发表项时,根据目标三层转发表项判断该三层报文的下一跳出接口与该三层报文的入接口是否相同;
处理单元740,用于若该三层报文的下一跳出接口与该三层报文的入接口相同,则将该三层报文的下一跳出接口修改为目标隧道接口,并对该三层报文进行隧道封装;
转发单元750,用于将隧道封装后的该三层报文通过目标隧道接口转发;
转发单元750,还用于若该三层报文的下一跳出接口与该三层报文的入接口不同,则通过该三层报文的下一跳出接口转发三层报文。
在可选实施例中,处理单元740,具体用于当目标接入设备与至少两个其它接入设备建立有隧道时,从目标接入设备上对应至少两个其它接入设备的隧道接口中选择一个隧道接口作为目标隧道接口;将该三层报文的下一跳出接口修改为目标隧道接口。
在可选实施例中,判断单元730,还用于判断该三层报文中是否携带隧道标签;
判断单元730,还具体用于若该三层报文中未携带隧道标签,则判断目标三层转发表项的下一跳出接口与该三层报文的入接口是否相同。
在可选实施例中,判断单元730,还用于若该三层报文中携带隧道标签,则判断是否存在与该三层报文的目的IP地址对应的直连路由;
转发单元750,还用于若存在与该三层报文的目的IP地址对应的直连路由,则根据直连路由转发该三层报文;
处理单元740,还用于若不存在与该三层报文的目的IP地址对应的直连路由,则当目标接入设备与至少两个其它接入设备建立有隧道时,将该三层报文的下一跳出接口修改为接收到该三层报文的隧道接口之外的其它隧道接口;对该三层报文进行隧道封装;
转发单元750,还用于将隧道封装后的该三层报文通过该其它隧道接口转发。
在可选实施例中,处理单元740,还用于当接收到带有隧道封装的三层报文时,解除带有隧道封装的三层报文的隧道封装,以得到未带有隧道封装的三层报文;在未带有隧道封装的三层报文中添加隧道标签。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
由上述实施例可见,通过在同一服务器对应的聚合组成员接入设备中任意两个接入设备之间建立隧道,对于未带有隧道封装的三层报文,当根据查询到的匹配的三层转发表项确定该三层报文的下一跳出接口与报文入接口相同时,通过隧道转发该三层报文,以避免环路产生,降低了数据中心组网中产生环路的概率,提高了数组中心组网的可靠性。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (6)
1.一种报文转发方法,应用于包括多个接入设备的数据中心组网中的目标接入设备,所述数据中心组网中的接入设备与服务器通过非堆叠聚合方式互连,其特征在于,同一服务器对应的聚合组成员接入设备中任意两个接入设备之间建立有隧道,所述方法包括:
对于未带有隧道封装的三层报文,判断所述三层报文是否携带隧道标签,所述隧道标签用于标识通过接入设备之间的隧道传输的报文;
若所述三层报文未携带隧道标签,当查询到与所述三层报文匹配的目标三层转发表项时,根据所述目标三层转发表项判断所述三层报文的下一跳出接口与所述三层报文的入接口是否相同;
若相同,则将所述三层报文的下一跳出接口修改为目标隧道接口,并对所述三层报文进行隧道封装;
将隧道封装后的所述三层报文通过所述目标隧道接口转发;
若不同,则通过所述三层报文的下一跳出接口转发所述三层报文;
若所述三层报文携带隧道标签,则判断是否存在与所述三层报文的目的IP地址对应的直连路由;
若存在,则根据所述直连路由转发所述三层报文;
若不存在,则当所述目标接入设备与至少两个其它接入设备建立有所述隧道时,将所述三层报文的下一跳出接口修改为接收到所述三层报文的隧道接口之外的其它隧道接口;
对所述三层报文进行隧道封装,并将隧道封装后的所述三层报文通过该其它隧道接口转发。
2.根据权利要求1所述的方法,其特征在于,所述将所述三层报文的下一跳出接口修改为目标隧道接口,包括:
当所述目标接入设备与至少两个其它接入设备建立有所述隧道时,从所述目标接入设备上对应所述至少两个其它接入设备的隧道接口中选择一个隧道接口作为所述目标隧道接口;
将所述三层报文的下一跳出接口修改为所述目标隧道接口。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到带有隧道封装的三层报文时,解除所述带有隧道封装的三层报文的隧道封装,以得到未带有隧道封装的三层报文;
在所述未带有隧道封装的三层报文中添加隧道标签。
4.一种报文转发装置,应用于包括多个接入设备的数据中心组网中的目标接入设备,所述数据中心组网中的接入设备与服务器通过非堆叠聚合方式互连,其特征在于,同一服务器对应的聚合组成员接入设备中任意两个接入设备之间建立有隧道,所述装置包括:
接收单元,用于接收报文;
查询单元,用于根据所述接收单元接收到的三层报文查询三层转发表项;
判断单元,用于对于未带有隧道封装的三层报文,判断所述三层报文中是否携带隧道标签,所述隧道标签用于标识通过接入设备之间的隧道传输的报文;
所述判断单元,还用于若所述三层报文中未携带隧道标签,当所述查询单元查询到与所述三层报文匹配的目标三层转发表项时,根据所述目标三层转发表项判断所述三层报文的下一跳出接口与所述三层报文的入接口是否相同;
处理单元,用于若所述三层报文的下一跳出接口与所述三层报文的入接口相同,则将所述三层报文的下一跳出接口修改为目标隧道接口,并对所述三层报文进行隧道封装;
转发单元,用于将隧道封装后的所述三层报文通过所述目标隧道接口转发;
所述转发单元,还用于若所述三层报文的下一跳出接口与所述三层报文的入接口不同,则通过所述三层报文的下一跳出接口转发所述三层报文;
所述判断单元,还用于若所述三层报文中携带隧道标签,则判断是否存在与所述三层报文的目的IP地址对应的直连路由;
所述转发单元,还用于若存在与所述三层报文的目的IP地址对应的直连路由,则根据所述直连路由转发所述三层报文;
所述处理单元,还用于若不存在与所述三层报文的目的IP地址对应的直连路由,则当所述目标接入设备与至少两个其它接入设备建立有所述隧道时,将所述三层报文的下一跳出接口修改为接收到所述三层报文的隧道接口之外的其它隧道接口;对所述三层报文进行隧道封装;
所述转发单元,还用于将隧道封装后的所述三层报文通过该其它隧道接口转发。
5.根据权利要求4所述的装置,其特征在于,
所述处理单元,具体用于当所述目标接入设备与至少两个其它接入设备建立有所述隧道时,从所述目标接入设备上对应所述至少两个其它接入设备的隧道接口中选择一个隧道接口作为所述目标隧道接口;将所述三层报文的下一跳出接口修改为所述目标隧道接口。
6.根据权利要求4所述的装置,其特征在于,
所述处理单元,还用于当接收到带有隧道封装的三层报文时,解除所述带有隧道封装的三层报文的隧道封装,以得到未带有隧道封装的三层报文;在所述未带有隧道封装的三层报文中添加隧道标签。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810848239.2A CN108965126B (zh) | 2018-07-27 | 2018-07-27 | 一种报文转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810848239.2A CN108965126B (zh) | 2018-07-27 | 2018-07-27 | 一种报文转发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108965126A CN108965126A (zh) | 2018-12-07 |
CN108965126B true CN108965126B (zh) | 2021-09-21 |
Family
ID=64466358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810848239.2A Active CN108965126B (zh) | 2018-07-27 | 2018-07-27 | 一种报文转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108965126B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101442497A (zh) * | 2008-12-25 | 2009-05-27 | 中兴通讯股份有限公司 | 一种实现数据报文转发的***及方法 |
CN103401754A (zh) * | 2013-07-30 | 2013-11-20 | 杭州华三通信技术有限公司 | 一种堆叠链路建立方法、设备及*** |
CN107547370A (zh) * | 2017-09-25 | 2018-01-05 | 新华三技术有限公司 | 流量转发方法、装置及*** |
CN107819677A (zh) * | 2017-10-26 | 2018-03-20 | 新华三技术有限公司 | 一种报文转发方法及装置 |
-
2018
- 2018-07-27 CN CN201810848239.2A patent/CN108965126B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101442497A (zh) * | 2008-12-25 | 2009-05-27 | 中兴通讯股份有限公司 | 一种实现数据报文转发的***及方法 |
CN103401754A (zh) * | 2013-07-30 | 2013-11-20 | 杭州华三通信技术有限公司 | 一种堆叠链路建立方法、设备及*** |
CN107547370A (zh) * | 2017-09-25 | 2018-01-05 | 新华三技术有限公司 | 流量转发方法、装置及*** |
CN107819677A (zh) * | 2017-10-26 | 2018-03-20 | 新华三技术有限公司 | 一种报文转发方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108965126A (zh) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2109962B1 (en) | Triple-tier anycast addressing | |
US20200396162A1 (en) | Service function chain sfc-based communication method, and apparatus | |
CN101573913B (zh) | 用于多播路由选择的方法和设备 | |
US20150033321A1 (en) | Construct large-scale dvpn | |
JP5764820B2 (ja) | 伝送システムおよび伝送システムの制御方法 | |
US8452893B2 (en) | Method and member device for traffic forwarding in a stacking apparatus | |
CN106130819B (zh) | Vtep异常的检测方法及装置 | |
EP4191966A1 (en) | Method and device for processing data message, storage medium, and electronic device | |
CN104468304B (zh) | 一种池元素状态信息同步的方法、池注册器和池元素 | |
CN107682261B (zh) | 流量转发方法及装置 | |
EP3920512A1 (en) | Transmission method and device for message | |
CN107770061B (zh) | 转发报文的方法及转发设备 | |
CN113472645A (zh) | 发送路由、处理路由的方法、装置和设备 | |
CN110380966B (zh) | 一种发现转发路径的方法及其相关设备 | |
CN109218176B (zh) | 一种报文处理的方法及装置 | |
EP3754933A1 (en) | Fault diagnosis method and apparatus therefor | |
US20230344751A1 (en) | Route Processing Method, Related Apparatus, and Network System | |
CN113489646A (zh) | 基于vxlan的分段路由传输方法、服务器、源节点及存储介质 | |
US10171346B2 (en) | Method, apparatus and system for transmitting information | |
CN108965126B (zh) | 一种报文转发方法及装置 | |
CN113556283B (zh) | 路由管理方法及隧道端点设备 | |
WO2014117474A1 (zh) | 路由方法、***及相关设备 | |
CN115242699A (zh) | 报文传输方法、切片生成方法、装置及*** | |
CN108521336B (zh) | 一种用于控制路由组网ip地址冲突的方法及装置 | |
CN105765903A (zh) | 一种拓扑发现方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |