CN116264589A - 一种报文传输方法及装置 - Google Patents
一种报文传输方法及装置 Download PDFInfo
- Publication number
- CN116264589A CN116264589A CN202210192475.XA CN202210192475A CN116264589A CN 116264589 A CN116264589 A CN 116264589A CN 202210192475 A CN202210192475 A CN 202210192475A CN 116264589 A CN116264589 A CN 116264589A
- Authority
- CN
- China
- Prior art keywords
- node
- route
- message
- network
- sid
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 151
- 230000005540 biological transmission Effects 0.000 title claims abstract description 94
- 238000004891 communication Methods 0.000 abstract description 15
- 238000013461 design Methods 0.000 description 40
- 230000006870 function Effects 0.000 description 25
- 230000004044 response Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 101100366322 Arabidopsis thaliana ADC1 gene Proteins 0.000 description 6
- 101150032645 SPE1 gene Proteins 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000007689 inspection Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 101100442582 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) spe-1 gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- 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/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
- H04L45/507—Label distribution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种报文传输方法及装置,涉及通信技术领域。该方法应用于支持SRv6的第一网络的网络边界处的第一节点,并实现了当业务报文通过第一网络和支持MPLS‑LDP或SR‑MPLS的第二网路中传输时,第一网络中的节点可以正常解析该该业务报文。该方法包括:接收第一报文。根据第一报文确定用于指示第一报文的业务标签的第一SID。根据第一报文和第一SID生成第二报文。向第二节点转发第二报文。其中,第二报文的段标识列表中包括第一SID,第二节点位于第一网络和第二网络的网络边界。
Description
本申请要求于2021年12月13日提交国家知识产权局、申请号为202111513686.0、申请名称为“一种报文传输方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,尤其涉及一种报文传输方法及装置。
背景技术
段路由v6(segment routing internet protocol version 6,SRv6)是一种新的互联网协议(internet protocol,IP)承载技术,SRv6能够提供高服务等级(Service LevelAgreement,SLA)保障,以及具有高可靠性能力和足够的网络编程能力。同时,以太虚拟专用网(Ethernet virtual private network,EVPN)相比传统的VPN具有高可控能力、高可靠性以及高扩展性。因此,面向未来,运营商通常会选择SRv6+EVPN来传输业务数据。
然而,当前现网还存在大量的传统(legacy)网络,例如支持多协议标签交换-标签分发协议(multi protocol label switching-label distribution protocol,MPLS-LDP)的网络,或者支持段路由-多协议标签交换(segment routing-multi protocol labelswitching,SR-MPLS)的网络。通常,legacy网络并不支持SRv6和EVPN。这种情况下,为保证业务报文能够通过支持SRv6和EVPN的网络和legacy网络共同传输,在支持SRv6和EVPN的网络侧,现有的报文传输技术会导致业务报文无法被解析,进而影响了在支持SRv6和EVPN的网络侧配置增值服务。
发明内容
本申请提供了一种报文传输方法及装置,该方法实现了当业务报文通过支持SRv6的第一网络和支持MPLS-LDP或SR-MPLS的第二网路中传输时,第一网络中的节点可以正常解析该该业务报文。
为达上述目的,本申请提供如下技术方案:
第一方面,本申请提供了一种报文传输方法,该方法应用于第一网络的网络边界处的第一节点,第一网络支持SRv6。该方法包括:接收第一报文。根据第一报文确定用于指示第一报文的业务标签的第一段标识(segment identifier,SID)。根据第一报文和第一SID生成第二报文。向第二节点转发第二报文。其中,第二报文的段标识列表(segmentidentifier list,SID list)中包括第一SID,第二节点位于第一网络和第二网络的网络边界,第二网络支持MPLS-LDP或SR-MPLS。
通过本申请提供的报文传输方法,当第一报文去往该第一报文的目的地址需要经过第一网络和第二网路时,本申请提供方法通过在基于第一报文生成的第二报文的SIDlist中携带与该第一报文的业务标签对应的第一SID,从而第二报文无须在SID list和报文负载之间携带该业务报文的业务标签。这样,第一网络传输的第二报文的格式即为通过SRv6传输报文的标准格式。因此,第一网络中的VAS节点可以正常解析第二报文,从而VAS节点可以为第二报文提供增值服务,例如提供安全检查服务、网络地址转换(networkaddress translation,NAT)服务,深度报文检测(deep packet inspection,DPI)服务等。
在一种可能的设计方式中,上述第一报文的业务标签用于指示L3虚拟专用网(layer 3virtual private network,L3VPN)业务、L2多点业务(layer 2多点业务)、或L2点到点业务(layer 2点到点业务)中的任一种。
相比需要基于业务报文的不同类型,在位于第一网络和第二网络的网络边界的上层运营商边缘(super provider edge,SPE)节点配置多个表项来实现不同的流程,进而使业务报文能够成功在第一网络和第二网络中传输的技术,本申请提供的报文传输方法对于待传输的第一报文的类型不作限定,因此本申请提供的方法应用范围更为广泛。并且,本申请提供的方法在SPE上无需配置多个表项来实现不同类型业务报文的传输,从而有效减轻了SPE的负载。
在另一种可能的设计方式中,上述根据第一报文确定第一SID包括:根据第一报文中的目的地址确定第一路由,并在第一路由中确定第一SID。其中,第一路由是去往第一报文的目的地址的业务路由。
在另一种可能的设计方式中,若第一路由指示的下一跳是位于第二网络边界的第三节点,则上述根据第一报文和第一SID生成第二报文包括:根据第一路由中的下一跳地址确定第二路由。根据第一报文、第一SID以及第二路由中的第二SID,生成第二报文。其中,第二SID是第三节点的SID,第二路由是去往第三节点的公网路由,第二报文的SID list中包括第二SID。
通过该两种可能的设计,第一节点基于两层路由(即第一路由和第二路由)的查找,即生成了包括有与第一报文业务标签对应的第一SID,以及与去往第一报文目的地址的下一跳节点,即第三节点的地址对应的第二SID的第二报文。且第二报文在第一网络中传输。由于第二报文中未携带第一报文的业务标签,因此第二报文可以被支持SRv6的第一网络中的节点正常解析,从而第一网络中的节点可以为第二报文提供增值服务。
并且,由于第一节点预先获取到了包括有与第一报文业务标签对应的第一SID的第一路由,以及包括有与第三节点地址对应的第二SID的第二路由。因此,第一节点在传输报文时,可以直接在用于传输第一报文的第一路由中确定第一SID,以及在第二路由中确定第二SID。
在另一种可能的设计方式中,在上述的接收第一报文之前,上述方法还包括:获取第一路由。
在另一种可能的设计方式中,上述获取第一路由包括:接收第三节点发布的去往第一报文的目的地址的业务路由。为该业务路由中的业务标签分配第一SID,以生成第一路由。
通过该可能的设计,第一节点可以根据第三节点发送的去往第一报文目的地址的业务路由,生成包括有与第一报文业务标签对应的第一SID的第一路由。这样,当第一节点需要传输第一报文的报文负载时,可以基于第一报文和第一路由生成包括第一SID的第二报文,并传输第二报文。而第二报文中则不必再携带第一报文的业务标签,因此,第二报文在支持SRv6的第一网络中传输时,第一网络中的节点可以正常解析第二报文,从而第一网络中的节点可以为第二报文提供增值服务。并且,通过修改第一网络中第一节点的相关配置来生成第一路由,可以使得本申请提供的面向SRv6演进过程中,第二网络无感知。
在另一种可能的设计方式中上述获取第一路由包括:接收路由反射器发送的第一路由。其中,第一路由是路由反射器基于第三节点发布的去往第一报文目的地址的业务路由以及为业务路由中的业务标签分配的第一SID而生成的路由。
通过该可能的设计,第一节点可以直接接收到路由反射器发送的去往第一报文目的地址、且包括有与第一报文业务标签对应的第一SID的第一路由。这样,当第一节点需要传输第一报文的报文负载时,可以基于第一报文和第一路由生成包括第一SID的第二报文,并传输第二报文。而第二报文中则不必再携带第一报文的业务标签,因此,第二报文在支持SRv6的第一网络中传输时,第一网络中的节点可以正常解析第二报文,从而第一网络中的节点可以为第二报文提供增值服务。并且,通过修改与第一网络通信的路由反射器的相关配置来生成第一路由,可以使得本申请提供的面向SRv6演进过程中,第二网络无感知。
此外,相比第一节点“根据第三节点发送的去往第一报文目的地址的业务路由,生成包括与第一报文业务标签对应的第一SID的第一路由”的方案相比,该可能的设计所提供的方案中,由路由反射器执行“根据第三节点发送的去往第一报文目的地址的业务路由,生成包括与第一报文业务标签对应的第一SID的第一路由”的算法,因此该可能的设计所提供的方案节省了第一节点的计算资源。并且,第一节点直接从路由反射器接收第一路由的话,第一节点和第三节点之间无需建立用于第一节点接收第三节点发布的业务路由的BGP邻居关系,从而,该可能的设计所提供的方案节省了第一节点的BGP连接,也即节省了第一节点的通信资源。
在另一种可能的设计方式中,上述接收第三节点发布的去往第一报文目的地址的业务路由包括:获取第二路由。根据第二路由建立与第三节点之间的邻居关系。基于该邻居关系,接收第三节点发布的业务路由。
在另一种可能的设计方式中,当第二网络支持MPLS-LDP时,上述获取第二路由包括:接收第二节点发送的第二路由。其中,第二路由为第二节点基于第三节点发布的公网路由以及为第三节点的公网路由的目的地址分配的第二ID而生成的路由。
在另一种可能的设计方式中,当第二网络支持SR-MPLS时,上述获取第二路由包括:接收第一网络的控制器发送的第二路由。其中,第二路由为控制器基于第三节点发布的公网路由以及为第三节点的公网路由的目的地址分配的第二ID而生成的路由。
通过该两种可能的设计方式,第二路由可以由第二节点生成,也可以由第一网络的控制器生成。当第二路由是由第一网络的控制器生成时,可以节省第二节点的计算资源。
在另一种可能的设计方式中,上述方法还包括:通过第二节点,向第三节点发布第一节点的IPv4公网路由和第一节点的业务路由。
由于支持SRv6的第一网络是通过IPv6配置的,而支持MPLS-LDP或SR-MPLS的第二网络是通过IPv4配置的。因此,当第一网络中的第一节点发布的公网路由是IPv4公网路由时,可以实现报文通过IPv6配置的第一网络和通过IPv4的第二网络传输,即实现技术上的向下兼容。并且,第一网络只需要在第一节点上配置IPv4即可,而第一网络的中间节点则无需配置IPv4,也就是说,本申请提供的方法能够节省有限的IPv4资源。
第二方面,本申请提供了一种报文传输方法,该方法应用于第一网络和第二网络的网络边界处的第二节点。其中,第一网络支持SRv6,第二网络MPLS-LDP或SR-MPLS。该方法包括:接收第一节点发送的第二报文。其中,第一节点位于第一网络的网络边界,第二报文的SID list中包括第一SID和第二SID,且第一SID和第二SID是第一节点根据接收到的第一报文确定的。根据第一SID确定对应的业务标签,以及,根据第二SID确定对应的公网标签。其中,第一SID对应的业务标签是第二报文的业务标签,第二SID对应的公网标签用于向第三节点转发报文,第三节点位于第二网络的网络边界。向第三节点发送包括前述业务标签和前述公网标签第三报文。
当去往该第一报文的目的地址需要经过第一网络和第二网路时,本申请提供方法通过在基于第一报文生成的第二报文的SID list中携带与该第一报文的业务标签对应的第一SID,以及携带与去往第一报文目的地址的下一跳节点(即第三节点)地址对应的第二SID,从而第二报文无须在SID list和报文负载之间携带该业务报文的业务标签。这样,第一网络传输的第二报文的格式即为通过SRv6传输报文的标准格式。因此,第一网络中的VAS节点可以正常解析该报文,从而VAS节点可以为该业务报文提供增值服务,例如安全检测服务、NAT服务,DPI服务等。
在一种可能的设计方式中,上述第二报文的业务标签用于指示L3VPN业务、L2多点业务或L2点到点业务中的任一种。
在另一种可能的设计方式中,上述根据第一SID确定对应的业务标签包括:基于第一SID确定业务标签。其中,该业务标签为去除第一SID的第一预设前缀而获得的值。
在另一种可能的设计方式中,上述根据第一SID确定对应的业务标签包括:根据第一SID和第一对应关系,确定业务标签。其中,第一对应关系用于指示第一SID和业务标签的对应关系。
通过该两种可能的设计方式,第二节点可以将第二报文中的第一SID转化为第二报文的业务标签。
在另一种可能的设计方式中,上述根据第二SID确定对应的公网标签包括:基于第二SID确定与第二SID对应的第三节点的地址。其中,第三节点的地址为去除第二SID的第二预设前缀而获得的值。基于第三节点的地址和去往第三节点的公网路由,确定去往第三节点的下一跳节点的公网标签。
在另一种可能的设计方式中,上述根据第二SID确定对应的公网标签包括:根据第二SID和第二对应关系,确定去往第三节点的下一跳节点的公网标签。其中,第二对应关系用于指示第二SID和第三节点公网标签的对应关系。
通过该两种可能的设计方式,第二节点可以将第二报文中的第二SID转化为用于在第二网络中传输第三报文的公网标签。
在另一种可能的设计方式中,在上述接收第一节点发送的第二报文之前,上述方法还包括:向第三节点发布第一节点的IPv4公网路由和第一节点的业务路由。
由于支持SRv6的第一网络是通过IPv6配置的,而支持MPLS-LDP或SR-MPLS的第二网络是通过IPv4配置的。因此,当第一网络中的第一节点发布的公网路由是IPv4公网路由时,可以实现报文通过IPv6配置的第一网络和通过IPv4的第二网络传输,即实现技术上的向下兼容。并且,第一网络只需要在第一节点上配置IPv4即可,而第一网络的中间节点则无需配置IPv4,也就是说,本申请提供的方法能够节省有限的IPv4资源。
在另一种可能的设计方式中,在上述接收第一节点发送的第二报文之前,上述方法还包括:接收第三节点发布的公网路由。为第三节点发布的公网路由的目的地址分配第二SID,以生成去往第三节点的公网路由。向第一节点发送去往第三节点的公网路由。
通过该可能的设计方式,第二节点根据去往第三节点的公网路由可以生成包括第二SID的公网路由。也就是说,第一网络中的第二节点需要修改相关配置来生成第二路由,进而使得本申请提供的面向SRv6演进过程中,第二网络无感知。
在另一种可能的设计方式中,上述方法还包括:接收来自第三节点的第四报文,第四报文包括第一节点的IPv4公网标签和第四报文的业务标签。根据第一节点的IPv4公网标签确定第一节点的IPv6地址,以及,根据第四报文的业务标签确定对应的第三SID。向第一节点转发第五报文。其中,第五报文的SID list中包括第一节点的IPv6地址和第三SID。
通过该可能的设计,实现了当业务报文去往第四报文的目的地址需要经过第一网络和第二网路时的顺利传输。并且,该第四报文的报文负载在支持SRv6的第一网络中传输时,承载该报文负载的第五报文的格式为标准格式,即第一网络中的VAS节点可以对第五报文进行正常解析,从而可以为其提供增值服务。
第三方面,本申请提供了一种报文传输装置,该报文传输装置应用于第一网络的网络边界处的第一节点,第一网络支持基于互联网协议第6版的段路由SRv6。
在一种可能的设计方式中,该报文传输装置用于执行上述第一方面提供的任一种方法。本申请可以根据上述第一方面提供的任一种方法,对该报文传输装置进行功能模块的划分。例如,可以划分不同功能模块分别执行对应的各个功能,也可以将两个或两个以上的功能集成在一个处理模块中。示例性的,本申请可以按照功能将该报文传输装置划分为接收单元、确定单元、生成单元以及发送单元等。其中,接收单元用于接收第一报文。确定单元用于根据第一报文确定第一SID。生成单元用于根据第一报文和第一SID生成第二报文。发送单元用于向第二节点转发第二报文。其中,第一SID用于指示第一报文的业务标签,第二报文的SID list中包括第一SID,第二节点位于第一网络和第二网络的网络边界,第二网络支持MPLS-LDP或SR-MPLS。
上述划分的各个功能模块执行的可能的技术方案和有益效果的描述均可以参考上述第一方面或其相应的可能的设计提供的技术方案,此处不再赘述。
在另一种可能的设计中,该报文传输装置包括:一个或多个处理器和传输接口,该一个或多个处理器通过该传输接口接收或发送数据,该一个或多个处理器被配置为调用存储在存储器中的程序指令,以使得该报文传输装置执行如第一方面及其任一种可能的设计方式提供的任一种方法。
第四方面,本申请提供了一种报文传输装置,该报文传输装置应用于第一网络和第二网络的网络边界处的第二节点。其中,第一网络支持SRv6,第二网络支持MPLS-LDP或SR-MPLS。
在一种可能的设计方式中,该报文传输装置用于执行上述第二方面提供的任一种方法。本申请可以根据上述第二方面提供的任一种方法,对该报文传输装置进行功能模块的划分。例如,可以划分不同功能模块分别执行对应的各个功能,也可以将两个或两个以上的功能集成在一个处理模块中。示例性的,本申请可以按照功能将该报文传输装置划分为接收单元、确定单元以及发送单元等。其中,接收单元用于接收第一节点发送的第二报文。其中,第一节点位于第一网络的网络边界,第二报文的SID list中包括第一SID和第二SID,且第一SID和第二SID是第一节点根据接收到的第一报文确定的。确定单元用于根据第一SID确定对应的业务标签,以及,根据第二SID确定对应的公网标签。其中,与第一SID对应的业务标签是第二报文的业务标签,与第二SID对应的公网标签用于向第三节点转发报文。第三节点位于第二网络的网络边界。发送单元用于向第三节点发送包括前述业务标签和前述公网标签第三报文。
上述划分的各个功能模块执行的可能的技术方案和有益效果的描述均可以参考上述第二方面或其相应的可能的设计提供的技术方案,此处不再赘述。
在另一种可能的设计中,该报文传输装置包括:一个或多个处理器和传输接口,该一个或多个处理器通过该传输接口接收或发送数据,该一个或多个处理器被配置为调用存储在存储器中的程序指令,以使得该报文传输装置执行如第二方面及其任一种可能的设计方式提供的任一种方法。
第五方面,本申请提供了一种第一网络,第一网络支持SRv6,第一网络包括第一节点和第二节点。其中,第一节点位于第一网络的网络边界,并用于执行第一方面中中的任一种可能的实现方式提供的任一种方法。第二节点位于第一网络和第二网络的网络边界,并用于执行第二方面中的任一种可能的实现方式提供的任一种方法,第二网络支持MPLS-LDP或SR-MPLS。
第六方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质包括程序指令,当程序指令在计算机或处理器上运行时,使得计算机或处理器执行第一方面中或第二方面中的任一种可能的实现方式提供的任一种方法。
第七方面,本申请提供了一种计算机程序产品,当其在报文传输装置上运行时,使得第一方面中或第二方面中的任一种可能的实现方式提供的任一种方法被执行。
第八方面,本申请提供了一种芯片系统,包括:处理器和存储器,该处理器用于从该存储器中调用并运行该存储器中存储的计算机程序,执行第一方面中或第二方面中的实现方式提供的任一种方法。
可以理解的是,上述提供的任一种装置、计算机存储介质、计算机程序产品或芯片系统等均可以应用于上文所提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。
在本申请中,上述报文传输装置的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。
附图说明
图1为报文2的结构示意图;
图2为本申请实施例提供的一种第一网络的架构示意图;
图3为本申请实施例提供的一种报文传输装置的硬件结构示意图;
图4为本申请实施例提供的一种第一节点和第三节点之间互相学习业务路由的流程示意图;
图5为本申请实施例提供的一种第一节点学习第三节点的业务路由的流程示意图;
图6为本申请实施例提供的一种第三节点学习第一节点的业务路由的流程示意图;
图7为本申请实施例提供的一种第一节点学习去往第三节点的公网路由的流程示意图;
图8为本申请实施例提供的另一种第一节点学习去往第三节点的公网路由的流程示意图;
图9为本申请实施例提供的一种第三节点学习去往第一节点的公网路由的流程示意图;
图10为本申请实施例提供的另一种第三节点学习去往第一节点的公网路由的流程示意图;
图11为本申请实施例提供的一种报文传输方法的流程示意图;
图12为本申请实施例提供中所述第二报文的结构示意图;
图13为本申请实施例提供中所述第三报文的结构示意图;
图14为本申请实施例提供的另一种报文传输方法的流程示意图;
图15为本申请实施例提供的一种报文传输装置150的结构示意图;
图16为本申请实施例提供的一种报文传输装置160的结构示意图;
图17为本申请实施例提供的芯片系统的结构示意图。
具体实施方式
为了更清楚的理解本申请实施例,下面对本申请实施例中涉及的部分术语或技术进行说明:
1)、业务标签、业务路由、公网路由以及公网标签
在互联网中,往往通过业务报文来传输业务数据。
不同类型的业务报文,通常可以通过该业务报文的标签(下文中将业务报文的标签简称业务标签)来标识。
作为示例,业务报文所属的业务类型例如可以是VPN业务。其中,VPN业务可以包括L3虚拟专用网(layer 3virtual private network,L3VPN)业务、L2多点业务(layer 2多点业务)、或L2点到点业务(layer 2点到点业务)等。这样的话,不同的VPN业务则可以通过不同的VPN标签来标识。
用于传输业务报文的路由,可以称该业务报文的业务路由。在业务路由中,一般都包括该业务报文的业务标签。举例说明,业务报文通过业务路由转发时,具体是基于公网路由来传输的。在互联网中,公网路由用于提供可到达的路径。对于网络中的任一个配置有IP地址的节点,其还可以配置用于在公网中的全局标识该节点的公网标签。同一个节点在不同方向的路径上,对应的公网标签是不同的。其中,对于通过IPv4配置的节点而言,该节点的可以配置IPv4公网标签。类似的,对于通过IPv6配置的节点而言,该节点的可以配置IPv6公网标签。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。在本申请的实施例中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中的字符“/”,一般表示前后关联对象是一种“或”的关系。在本申请的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
SRv6是一种段路由技术。在通过互联网协议第6版(internet protocol version6,IPv6)配置的网络中,一般通过SRv6传输报文。相对而言,在通过互联网协议第4版(internet protocol version 4,IPv4)配置的legacy网络中,主要通过MPLS-LDP或SR-MPLS传输报文。并且,通过IPv4配置的网络一般不支持SRv6技术。为方便描述,本申请实施例中将通过SRv6传输报文的网络称为第一网络,将通过MPLS-LDP或SR-MPLS传输报文的legacy网络称为第二网络。
当业务报文传输的路径上包括第一网络中的节点和第二网络中的节点时,为保证业务报文的成功传输,第一网络在传输业务报文时,通常会将该业务报文的业务标签携带在该业务报文的段路由头(segment routing header,SRH)和三层报文负载(或称为报文负载)之间。
作为示例,假设报文1要到达目的地址,需要依次经过第一网络和第二网络。这种情况下,当第一网络的边缘节点接收到报文1后,会基于报文1的目的地址查询业务路由表,并基于查询到的业务路由对报文1的payload重新封装,报文1的报文负载重新封装后得到的报文2的结构具体如图1所示。
参考图1,图1示出了报文2的结构示意图。如图1所示,报文2包括IPv6报文头、SRv6SRH以及报文负载。其中,IPv6报文头包括报文2在第一网络中传输的起始地址和结束地址。这里,起始地址相当于报文2在第一网络中传输时的源地址,结束地址相当于是报文2在第一网络中传输时的目的地址。SRv6 SRH包括报文2在第一网络中传输所经过的节点的段标识列表(segment identifier list,SID list)。业务标签表示报文1的业务标签,一般第一网络的边缘节点接收到报文1后,基于报文1的目的地址查询到的业务路由即包括该标签。报文负载则包括第一报文的源地址、目的地址以及数据载荷。图1所示的报文2的结构仅示例性的示出了报文2的主要结构部分,并不限定报文2仅包括图1所示结构,例如,报文2在IPv6报文头的外部还可以包括媒体存取控制地址(Media Access Control Address,MAC),对此不做赘述。
然而,当业务报文的业务标签携带在业务报文的SRv6 SRH和报文负载之间时,业务报文的报文格式即不符合通过SRv6传输报文的标准报文格式。这样的话,第一网络中标准的增值服务(value added service,VAS)即不能按照SRv6标准协议解析该业务报文,即不能为该业务报文提供相应服务。其中,VAS例如是供防火墙的安全检测服务、网络地址转换(network address translation,NAT)服务,深度报文检测(deep packet inspection,DPI)服务等。进而,当前通过第一网络和第二网络共同传输业务报文的技术,影响了第一网络中业务链的部署。
此外,在当前技术中,第一网络还需要基于业务报文的不同类型,在位于第一网络和第二网络的网络边界的上层运营商边缘(super provider edge,SPE)节点配置多个表项来实现不同的流程,进而才能使业务报文能够成功在第一网络和第二网络中传输。其中,业务报文的不同类型例如是L3VPN)业务类型、L2多点业务类型、或L2点到点业务类型等。这样的话,SPE将容易超负载运行,从而影响了SPE在第一网络和第二网络之间传输业务报文时的传输效率。
基于此,本申请实施例提供了一种报文传输方法,该方法应用于第一网络,且第一网络可以和第二网络通信。当业务报文在第一网络中传输时,该方法通过在该业务报文的SID list中携带与该业务报文的业务标签对应的第一SID,而无须在SID list和报文负载之间携带该业务报文的业务标签。这样,第一网络所传输业务报文的格式即为通过SRv6传输报文的标准格式。因此,第一网络中的VAS节点可以正常解析该报文,从而VAS节点可以为该业务报文提供增值服务。
此外,不同类型的业务报文均可以通过本申请实施例提供的方法进行传输。这样,位于第一网络和第二网络的网络边界的SPE节点则无需针对不同类型的业务报文配置多个表项以实现该不同类型的业务报文的传输,即本申请实施例提供的方法能够减轻SPE节点的负荷,从而可以提高SPE在第一网络和第二网络之间传输业务报文时的传输效率。
本申请实施例还提供一种第一网络,本申请实施例提供的报文传输方法即可以应用于第一网络。其中,第一网络可以包括有多个服务边缘(provider edge,PE)节点、多个供应商路由(provider,P)节点以及SPE节点,PE节点、P节点以及SPE节点均具有路由功能。作为示例,PE节点和SPE节点可以是具有路由功能的网关节点,或者是路由器或交换机等路由节点,P节点可以是路由器或交换机等路由节点(也可称为中间节点),本申请实施例对此不作限定。其中,P节点位于第一网络的内部,并用于在第一网络内部转发报文。PE节点位于第一网络的边界,并用于将接收到的报文转发至P节点,或者用于从P节点接收报文并转发至第一网络外部。SPE节点位于第一网络和其他网络的网络边界,并可以用于在第一网络和该其他网络之间转发报文。例如,SPE节点位于第一网络和第二网络的网络边界,并用于在第一网络和第二网络之间转发报文。这种情况下,第二网络也包括该SPE节点。
举例说明,第二网络还可以包括多个PE节点和多个P节点。第一网络和第二网络的区别仅在于:第一网络是是基于IPv6配置的网络,主要通过SRv6传输报文;第二网络是通过IPv4配置的网络,主要通过MPLS-LDP或SR-MPLS传输报文。
示例性的,参考图2,图2示出了本申请实施例提供的一种第一网络的架构示意图,以及示出了与第一网络通信的第二网络的架构示意图。如图2所示,第一网络可以包括4个PE节点,分别为PE 11、PE 12、PE 13以及PE 14。第一网络还包括位于第一网络和第二网络边界的SPE 1。并且,在PE 11和SPE 1之间,可以通过P11和P12转发报文。类似的,第二网络可以包括3个PE节点,分别为PE 21、PE 22以及PE 23。第二网络还包括位于第一网络和第二网络边界的SPE 1,并且,在PE 21和SPE1之间,可以通过P21转发报文。
本申请实施例还提供了一种报文传输装置,该报文传输装置可以是任意具有路由功能的设备或功能模块,并用于执行本申请实施例所提供的报文传输方法。作为示例,该报文传输装置可以是图2所示第一网络中的PE 11或SPE 1,或者,该报文传输装置可以是图2所示第一网络中的PE 11或SPE 1中的一个功能模块,本申请实施例对此不作限定。
参考图3,图3示出了本申请实施例提供的一种报文传输装置的硬件结构示意图。如图3所示,报文传输装置30包括处理器31、存储器32、网络接口33以及总线34。其中,处理器31、存储器32、网络接口33之间通过总线34连接。
处理器31是报文传输装置30的控制中心,可以是一个通用中央处理器(centralprocessing unit,CPU),处理器31还可能是其他通用处理器、数字信号处理器(digitalsignal processing,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件、图形处理器(graphics processingunit,GPU)、神经网络处理单元(neural processing unit,NPU)、张量处理器(tensorprocessing unit,TPU)或人工智能(artificial intelligent)芯片、数据处理器(dataprocessing unit,DPU)等。作为一个示例,处理器31可以包括一个或多个CPU,例如图3中所示的CPU 0和CPU 1。此外,本申请并不限定每个处理器中处理器核的个数。
存储器32用于存储程序指令或应用进程所要访问的数据,处理器31可以通过执行存储器32中的程序指令,以实现本申请实施例提供的报文传输方法。存储器32包括易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(randomaccess memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。非易失性存储器可以是储存级内存(storage class memory,SCM)、固态硬盘(solid state drive,SSD)、机械硬盘(hard diskdrive,HDD)等。其中,储存级内存例如可以是非易失性内存(non-volatile memory,NVM)、相变化内存(phase-change memory,PCM)、持久化内存等。
在一种可能的实现方式中,存储器32独立于处理器31存在。存储器32通过总线34与处理器31相连接,用于存储数据、指令或者程序代码。处理器31调用并执行存储器32中存储的指令或程序代码时,能够实现本申请实施例提供的报文传输方法。在另一种可能的实现方式中,存储器32和处理器31集成在一起。
网络接口33,用于报文传输装置30与其他节点(如其他路由节点等)通过通信网络连接,所述通信网络可以是以太网,无线接入网(radio access network,RAN),无线局域网(wireless local area networks,WLAN)等。网络接口33包括用于接收数据/报文的接收单元,以及用于发送数据/报文的发送单元。
总线34,可以是工业标准体系结构(industry standard architecture,ISA)总线、外部设备互连(peripheral component interconnect,PCI)总线、高速串行计算机扩展总线(peripheral component interconnect express,PCIe)、计算快速链路(computeexpress link,CXL)或扩展工业标准体系结构(extended industry standardarchitecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
需要指出的是,图3中示出的结构并不构成对报文传输装置30的限定,除图3所示部件之外,该报文传输装置30包括比图3所示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合附图,对本申请实施例提供的报文传输方法进行详细描述。
具体的,本申请实施例提供的报文传输方法可以应用于图2所示的第一网络,并具体实现了业务报文以标准封装格式在第一网络和第二网络中传输。更具体的,在本申请实施例中的业务报文传输之前,第一网络的PE节点需要学习第二网络中PE节点业务路由,第二网络中的PE节点需要第一网络中PE节点的业务路由。这样,当第一网络的PE节点接收业务报文后,即可基于学习到的业务路由对报文进行重封装及转发。
举例说明,在本申请实施例中,第一网络中的PE节点和SPE节点均配置IPv4,也即,第一网络中的PE节点和SPE节点均配置有IPv4地址和IPv4公网标签。作为示例,IPv4地址例如可以是节点的回环(loopback)地址。
下面结合附图2,以附图2所示第一网络中的PE 11是第一节点、SPE 1是第二节点为例,以及以附图2所示第二网络中的PE 21是第三节点为例,对第一网络和第二网络的PE节点之间互相学习业务路由的过程进行说明。其中,第一节点和第二节点配置IPv4,即第一节点和第二节点均配置有IPv4地址和IPv4公网标签。
在一些实施例中,本申请实施例可以通过图4所示的方法实现第一节点和第三节点之间互相学习业务路由。参考图4,图4示出了本申请实施例提供的一种报文传输方法的流程示意图。该方法可以包括以下步骤。
S101、第三节点向第一节点发送第一业务路由。
其中,第一业务路由是第三节点业务表中的路由。
可选的,第三节点可以基于与第一节点之间的边界网关协议(border gatewayprotocol,BGP)邻居关系,通过BGP报文向第一节点发送第一业务路由。作为示例,第三节点通过与第一节点之间的BGP邻居关系向第一节点发送第一业务路由时,用于承载第一业务路由的BGP报文的传输通道例如可以是图4所示的第三节点→P21→第二节点→P12→P11→第一节点。
举例说明,第三节点和第一节点之间的BGP邻居关系是基于第一节点去往第三节点的公网路由和第三节点去往第一节点的公网路由建立的。其中,第一节点学习去往第三节点的公网路由的详细说明可以参考下文图7或图8的相关描述,第三节点学习去往第一节点的公网路由的详细说明可以参考下文图9或图10的相关描述,这里不作赘述。作为示例,假设第三节点的IPv4地址是3.3.3.3,且第三节点的业务路由表中包括的业务路由1如表1所示。业务路由1是去往目的地址(destination address)10.1.1.2的业务路由,且去往目的地址10.1.1.2的下一跳节点是第三节点,并且通过业务路由1传输的业务报文的业务标签是40002。则第三节点可以通过与第一节点之间的BGP邻居关系,将业务路由1发送至第一节点。
表1
目的地址 | 10.1.1.2 |
下一跳地址 | 3.3.3.3 |
业务标签 | 40002 |
S102、第一节点接收第一业务路由,并根据第一业务路由生成第一路由。
响应于S101,第一节点接收到第三节点发送的第一业务路由。第一节点可以为第一业务路由中的业务标签分配第一SID,并通过第一SID替换第一业务路由中的业务标签,以生成第一路由。第一SID与第一业务路由中的业务标签唯一对应,第一路由也是去往第一业务路由中目的地址的业务路由。
可选的,第一节点可以基于第一预设策略为第一业务路由中的业务标签增加第一预设前缀,以得到与该业务标签唯一对应的第一SID。这种情况下,由于第一业务路由中的下一跳是第二网络中的节点(即第三节点),因此位于第一网络和第二网络的网络边界、且用于在第一网络和第二网络之间转发报文的第二节点中预置有与第一预设策略对应的第二预设策略。第二预设策略用于指示第二节点去除接收到的待转发报文的SID list中SID的第一预设前缀,以得到对应的业务标签。
可选的,第一预设前缀可以是“FFFE::”,或者是“FFFF::”。其中,F和E可以取任意的十六进制数。示例性的,若F取值15,且第一预设前缀是“FFFF::”,则第一预设前缀为“15151515::”。进一步的,第一SID即为“15151515::第一业务路由中的业务标签”。作为示例,假设第一节点接收到的第一业务路由是如表1所示的业务路由1,且第一预设前缀是“FFFE::”,则第一SID即为“FFFE::40002”。这样的话,第一节点生成的第一路由即如表2所示:
表2
目的地址 | 10.1.1.2 |
下一跳地址 | 3.3.3.3 |
业务标签 | FFFE::40002 |
可选的,第一节点还可以为第一业务路由中的业务标签分配任意SID,并以该任意SID作为与第一业务路由中的业务标签唯一对应的第一SID。例如,该任意SID可以是不包括第一业务路由中业务标签的任意SID。这种情况下,第一节点在为第一业务路由中的业务标签分配第一SID后,将第一SID和该业务标签发送至位于第一网络和第二网络的网络边界、且用于在第一网络和第二网络之间转发报文的第二节点,以便第二节点记录第一SID和该业务标签之间的第一对应关系。第一对应关系用于指示第二节点为接收到的待转发报文SID list中的SID确定唯一对应的业务标签。
第一节点可以基于第一路由获得第一业务路由表项,其中,第一路由表项为业务路由表中的一条表项。可选的,第一业务路由表项还可以包括第一节点通过第一路由转发报文时的端口号等信息,不再赘述。这样,第一节点即学到了第三节点的业务路由。
S103、第一节点向第三节点发送第二业务路由。
其中,由于第一节点配置IPv4,因此第二业务路由是标准的业务路由。其中,第一节点向第三节点发送第二业务路由的详细说明可以参考S101中第三节点向第一节点发送的第一业务路由的描述,这里不再赘述。作为示例,第一节点通过与第三节点之间的BGP邻居关系向第三节点发送第二业务路由时,用于承载第二业务路由的BGP报文的传输通道例如可以是图4所示的第一节点→P11→P12→第二节点→P21→第三节点。
S104、第三节点接收第二业务路由。
响应于S103,第三节点接收到第一节点发送的第二业务路由。第一节点在接收到第二业务路由后,基于第二业务路由获得业务路由表中的一条表项。作为示例,假设第一节点的IPv4地址是1.1.1.1,且第一节点的业务路由表中包括如表3所示的业务路由2。业务路由2是去往目的地址10.1.1.1的业务路由,且去往目的地址10.1.1.1的下一跳节点是第一节点,并且通过业务路由2传输的业务报文的业务标签是40001。则第一节点可以通过与第三节点之间的BGP邻居关系,将业务路由2发送至第三节点。作为响应,第三节点即接收到业务路由2,基于业务路由2获得第二业务路由表项,即获得业务路由表中的第二业务路由表项。可选的,第二业务路由表项还可以包括第三节点通过第二业务路由转发报文时的端口号等信息,不再赘述。这样,第三节点即学到了第一节点的业务路由。
表3
目的地址 | 10.1.1.1 |
下一跳地址 | 1.1.1.1 |
业务标签 | 40001 |
举例说明,本申请实施例对S101-S102和S103-S104的执行顺序不作限定。例如,本申请实施例可以先执行S101-S102,再执行S103-S104。或者,本申请实施例可以先执行S103-S104,再执行S101-S102。又或者,本申请实施例可以同时执行S101-S102和S103-S104。
可以看出,第一节点基于S101-S102学习第三节点的业务路由时需要进行业务标签的翻译,即为第三节点的业务路由中的业务标签分配唯一对应的第一SID。
在另一些实施例中,本申请实施例可以通过图5所示的方法实现第一节点学习第三节点的业务路由。参考图5,图5示出了本申请实施例提供的另一种报文传输方法的流程示意图。该方法可以包括以下步骤。
S201、第三节点向路由反射器发送第一业务路由。
其中,第一业务路由详细说明可以参考上文中的相关描述,这里不作赘述。
其中,路由反射器用于在第一网络的PE和第二网络的PE之间转发学到的路由。例如,路由反射器可以将从第二网络中第三节点学到的业务路由转发至第一网络的第一节点。或者,路由反射器可以将从第一网络中第一节点学到的业务路由转发至第二网络的第三节点。这样,路由反射器即实现了在第一网络的PE和第二网络的PE之间传输路由。这种情况下,第一网络的PE和第二网络的PE则无需通过建立BGP邻居关系来传输路由,从而节省了第一网络和第二网络中PE的BGP连接。具体的,路由反射器可以与第一网络中的PE分别通信,以及与第二网络中的PE分别通信。这样,基于第二网络中第三节点和路由反射器之间的通信,第三节点向路由反射器发送第一业务路由,例如向路由反射器发送如表1所示的业务路由1。
S202、路由反射器接收第一业务路由,并根据第一业务路由生成第一路由。
响应于S201,路由反射器接收到第一业务路由。
路由反射器接收到第一业务路由后,根据第一业务路由生成第一路由。这里,路由反射器根据第一业务路由生成第一路由的详细说明,可以参考上文S102中第一节点根据第一业务路由生成第一路由的描述,这里不再赘述。
举例说明,在本申请实施例中,路由反射器用于在支持SRv6的第一网络的PE和作为legacy网络的第二网络的PE之间转发学习到的路由,这种情况下,当路由反射器接收到来自第二网络中PE的业务路由时,先根据该业务路由生成包括与该业务路由中的业务标签唯一对应的SID的路由,再将生成的路由发送至第一网络的PE。
S203、路由反射器向第一节点发送第一路由。
路由反射器基于和第一节点之间的通信,将向第一节点发送生成的第一路由。
S204、第一节点接收第一路由。
响应于S203,第一节点接收到路由反射器发送的第一路由。第一节点接收到第一路由后,基于第一路由获得业务路由表。至此,第一节点即学到了第三节点的业务路由。
相比第一节点基于S101-S102所述的方法学习第三节点的业务路由,第一节点基于S201-S204所述的方法学习第三节点的业务路由时,第一节点和第三节点之间无需建立BGP连接。并且,第一节点无需执行基于第一业务路由生成第一路由的算法。也就是说,S201-S204所述的方法节省了第一节点的通信资源和计算资源。
在又一些实施例中,本申请实施例可以通过图6所示的方法实现第三节点学习第一节点的业务路由。参考图6,图6示出了本申请实施例提供的又一种报文传输方法的流程示意图。该方法可以包括以下步骤。
S301、第一节点向路由反射器发送第二业务路由。
第一节点可以基于第一节点和路由反射器之间的通信,向路由反射器发送第二业务路由,例如发送如表3所述的业务路由2。其中,路由反射器和第二业务路由的详细说明可以参考上文描述,这里不做赘述。
S302、路由反射器接收第二业务路由,并向第三节点转发第二业务路由。
响应于S301,路由反射器接收到第二业务路由,并基于和第三节点之间的通信,直接向第三节点发送接收到的第二业务路由。
S303、第三节点接收第二业务路由。
响应于S302,第三节点接收到路由反射器转发的第二业务路由。第三节点在接收到第二业务路由后,基于第二业务路由获得业务路由表中的一条表项。至此,第三节点学到了第一节点的业务路由。相比第三节点基于S103-S104所述的方法学习第一节点的业务路由,第三节点基于S301-S303所述的方法学习第一节点的业务路由时,第三节点和第一节点之间无需建立BGP连接。也就是说,S301-S303所述的方法节省了第三节点的通信资源。
另外,第一节点基于S101-S102或S201-204学习第三节点的业务路由时需要进行业务标签的翻译,即为第三节点业务路由中的业务标签分配唯一对应的第一SID。
以上为本申请实施例中第一网络的PE和第二网络的PE互相学习业务路由的说明,下面对上述第一节点学习去往上述第三节点的公网路由进行说明。
在一些实施例中,本申请实施例可以通过图7所示的方法实现第一节点学习去往第三节点的公网路由。在图7所述的方法中,第二网络支持MPLS-LDP。参考图7,图7示出了本申请实施例提供的又一种报文传输方法的流程示意图。该方法可以包括以下步骤。
S401、第三节点发布自身的公网路由,以使第二节点学到去往第三节点的公网路由。
第三节点位于以IPv4配置的第二网络中,因此,第三节点发布放公网路由即为IPv4公网路由,第二网络内任意节点的公网标签即为IPv4公网标签。为简单描述,本申请实施例中的公网路由默认指代IPv4公网路由,公网标签默认指代IPv4公网标签。
可选的,第三节点可以基于内部网关协议(interior gateway protocol,IGP)或标签分发协议(Label Distribution Protocol,LDP)发布自身的公网路由。这样,通过第二节点和第三节点的之间的P21,第二节点可以学到去往第三节点的公网路由。第二节点学到的去往第三节点的公网路由包括:第三节点IPv4地址(即目的地址),P21 IPv4地址(即去往目的地址的下一跳地址),P21的公网标签(即去往目的地址的下一跳节点的公网标签)。
作为示例,假设第三节点的IPv4地址是3.3.3.3,第三节点的公网标签为41003,P21的IPv4地址是4.4.4.4,P 21的公网标签为41004,则第三节点发布的自身的公网路由为:目的地址3.3.3.3,下一跳地址3.3.3.3,公网标签41003。这样,P21作为第三节点的邻居节点即可接收到第三节点发布的自身的公网路由。P21在接收到该公网路由后,将该公网路由中的下一跳地址修改为自己的地址,并将该公网路由中的公网标签修改为自己的公网标签,然后P21发布去往第三节点的公网路由:目的地址3.3.3.3,下一跳地址4.4.4.4,公网标签41004。这样,作为P21邻居节点的第二节点即能接收到P21发布的去往第三节点的公网路由,也即,第二节点学习到了去往第三节点的公网路由。
S402、第二节点根据学到的去往第三节点的公网路由生成第二路由。
具体的,第二节点为学到的去往第三节点的公网路由中的目的地址(即第三节点的IPv4地址)分配唯一对应的第二SID,并将学到的去往第三节点的公网路由中的下一跳地址修改为自己的IPv6地址,以生成第二路由。其中,第二路由包括第三节点的IPv4地址,第二SID以及第二节点的IPv6地址(即下一跳地址)。第二路由即为第二节点要发布的去往第三节点的公网路由。
可选的,第二节点可以基于第三预设策略为学到的去往第三节点的公网路由中的目的地址(即地三节点)增加第二预设前缀,以得到与该目的地址唯一对应的第二SID。
可选的,第二预设前缀可以是“FFFE::”,或者是“FFFF::”。其中,F和E可以取任意的十六进制数。示例性的,若F取值0,且第二预设前缀是“FFFF::”,则第二预设前缀为“0000::”。进一步的,第二SID即为“0000::第三节点的IPv4地址”。
举例说明,第二预设前缀和上文所述的第一预设前缀不同,从而用以区分包括预设前缀的SID是与业务标签对应的第一SID,还是与第三节点的IPv4地址对应的第二SID。换句话说,当第二预设前缀是“FFFE::”,则第一预设前缀是“FFFF::”。或者,当第二预设前缀是“FFFF::”,则第一预设前缀是“FFFE::”。
作为示例,假设第二节点学到的去往第三节点的公网路由是目的地址3.3.3.3,下一跳地址5.5.5.5,公网标签41003,第二预设前缀是“FFFF::”,且F取值是0,则第二SID即为“0000::3.3.3.3”。如果第二节点的IPv6地址是0000::2.2.2.2,则第二节点生成的第二路由为:目的地址3.3.3.3,0000::3.3.3.3,0000::2.2.2.2。
可选的,第二节点还可以为学到的去往第三节点的公网路由中的目的地址(即第三的IPv4地址)分配任意SID,并以该任意SID作为与该目的地址唯一对应的第二SID。例如,该任意SID可以是不包括该目的地址的任意SID。在这种情况下,第二节点中记录学到的去往第三节点的公网路由中的目的地址、以及与该目的地址唯一对应的第二SID的第二对应关系。这样,第二节点可以基于接收到的待转发报文的SID list中的SID和预先记录的第二对应关系,确定与该SID唯一对应的目的地址。这样的话,当第二节点在基于接收到的待转发报文的SID list中的SID确定出唯一对应的目的地址后,还可以基于该目的地址查询到第二节点学到的去往第三节点的公网路由,并进一步确定出该公网路由中的公网标签(即去往第三节点的下一跳P21的公网标签)。
S403、第二节点向第一节点发送第二路由。
第二节点和第一节点均位于以IPv6配置的第一网络中,因此,第二节点和第一节点之间可以预先建立有第二节点至第一节点的IPv6隧道。这样,第二节点即可基于第二节点至第一节点的IPv6隧道,向第一节点发送第二路由。
可选的,第二节点可以预先通过配置源地址和目的地址来建立第二节点至第一节点的IPv6隧道。作为示例,假设第二节点的IPv6地址是0000::2.2.2.2,第一节点的IPv6地址是0000::1.1.1.1,则当需要建立第二节点至第一节点的IPv6隧道时,可以预先为第二节点配置源地址0000::2.2.2.2,以及均配置目的地址0000::1.1.1.1。这样,即建立了第二节点至第一节点的IPv6隧道。
第二节点通过第二节点至第一节点的IPv6隧道来传递去往第三节点的公网路由。对于位于第二节点和第一节点之间的P11和P12,只对用于承载该公网路由的报文进行转发即可。
第二节点至第一节点的IPv6隧道还可以用于传输业务报文。
S404、第一节点接收第二路由。
响应于S402,第一节点接收到第二路由。第一节点在接收到第二路由后,基于第二路由获得公网路由表中的一条表项。这样,第一节点即学到了去往第三节点的公网路由。
在另一些实施例中,本申请实施例可以通过图8所示的方法实现第一节点学习去往第三节点的公网路由。参考图8,图8示出了本申请实施例提供的又一种报文传输方法的流程示意图。该方法可以包括以下步骤。
S501、第三节点发布自身的公网路由,以使第二节点学到去往第三节点的公网路由。
这里,S501的详细说明可以参考上文S401的描述,不再赘述。
S502、第二节点发布去往第三节点的公网路由,以使第一网络的控制器学到该去往第三节点的公网路由。
其中,第二节点发布的去往第三节点的公网路由,是将第二节点学到的去往第三节点的公网路由中的下一跳地址修改为自己的IPv6地址后得到的路由。
作为示例,假设第二节点的IPv6地址是0000::2.2.2.2,且第二节点学到的去往第三节点的公网路由是:目的地址3.3.3.3,下一跳地址4.4.4.4(P21的IPv4地址),公网标签41004(P21的公网标签)。则第二节点将该公网路由的下一跳地址修改为0000::2.2.2.2,从而得到用于发布的去往第三节点的公网路由:目的地址3.3.3.3,下一跳地址0000::2.2.2.2,公网标签41004。这样,当第二节点将该公网路由发布出去,第一网络的控制器则可以学到该公网路由。
举例说明,第一网络的控制器可以基于全局角度在第一网络的PE之间规划传输效率较高的报文转发路径,并可以将规划的报文转发路径发送至相关的PE,从而使得相关的PE基于该报文转发路径传输报文。
例如,该控制器可以在第一节点和第二节点之间规划从第一节点至第二节点途经最少节点的第一路径,或者,该控制器可以在第一节点和第二节点之间规划从第一节点至第二节点的业务传输量最少的第一路径。当然不限于此。这样,当该控制器将第一路径发送至第一节点,第一节点即可基于第一路径向第二节点转发报文,从而提高了报文的传输效率。
类似的,该控制器可以在第一节点和第二节点之间规划从第二节点至第一节点途经最少节点的第二路径,或者,该控制器可以在第一节点和第二节点之间规划从第二节点至第一节点的业务传输量最少的第二路径。当然不限于此。这样,当控制器将第二路径发送至第二节点,第二节点即可基于第二路径向第一节点转发报文,从而提高了报文的传输效率。
第一网络的控制器能够与第一网络的PE之间通信。
S503、第一网络的控制器根据从第二节点接收到的去往第三节点的公网路由生成第二路由。
第一网络的控制器为从第二节点接收到的去往第三节点的公网路由中的目的地址(即第三节点的IPv4地址)分配唯一对应的第二SID,以生成第二路由。其中,第一网络的控制器为从第二节点接收到的去往第三节点的公网路由中的目的地址分配唯一对应的第二SID的详细说明,可以参考上文S402中第二节点为去往第三节点的公网路由中的目的地址分配第二SID的描述,不再赘述。
举例说明,第一网络的控制器为从第二节点接收到的去往第三节点的公网路由中的目的地址分配唯一对应的第二SID后,可以将第二SID以及与第二SID唯一对应的目的地址发送至第二节点,以使第二节点记录第二对应关系。第二对应关系的详细说明可以参考上文,不再赘述。
在本申请实施例中,第一网络的控制器不仅可以在PE之间规划传输效率较高的报文转发路径,该控制器还可以根据从PE学到的去往第二网络中PE的公网路由,生成包括与该公网路由中目的地址唯一对应的SID的公网路由。
S504、第一网络的控制器向第一节点发送第二路由。
第一网络的控制器可以基于与第一节点之间的通信,向第一节点发送第二路由。
可选的,第一网络的控制器还可以向第一节点发送第一路径的信息,以及向第二节点发送第二路径的信息。其中,第一路径和第二路径的说明可以参考上文对第一路径的描述,这里不予赘述。
S505、第一节点接收第二路由。
响应于S504,第一节点接收到第二路由。第一节点在接收到第二路由后,基于第二路由获得IPv4公网路由表中的一条表项。这样,第一节点即学到了去往第三节点的公网路由。
相比第一节点通过S401-S404学到去往第三节点的公网路由,第一节点通过S501-S505学习去往第三节点的公网路由时,第一网络的第二节点无需执行为该公网路由中的目的地址分配第二SID的算法,该算法由第一网络的控制器执行。这样的话,可以节省第二节点的计算资源。
在又一些实施例中,本申请实施例可以通过图9所示的方法实现第三节点学习去往第一节点的公网路由。在图9所述的方法中,第二网络支持MPLS-LDP。参考图9,图9示出了本申请实施例提供的又一种报文传输方法的流程示意图。该方法可以包括以下步骤。
S601、第一节点向第二节点发送自身的公网路由。
在本申请实施例中,第一节点发布的公网路由是IPv4公网路由。这样才能实现报文通过IPv6配置的第一网络和通过IPv4的第二网络传输,即实现技术上的向下兼容。
具体的,第一节点配置有IPv4,即位于第一网络的第一节点配置有IPv4地址。因此第一节点的公网路由为:目的地址为第一节点的IPv4地址,第一节点的IPv6地址,以及下一跳(即第一节点)的IPv6地址。
作为示例,假设第一节点的IPv4地址为1.1.1.1,且该第一节点的IPv6为0000::1.1.1.1.1,则第一节点的公网路由为:目的地址1.1.1.1,目的地址的IPv6地址0000::1.1.1.1.1,下一跳地址0000::1.1.1.1.1。
第一节点和第二节点之间可以预先建立有第一节点至第二节点的IPv6隧道。这样,第一节点即可基于第一节点至第二节点的IPv6隧道,向第二节点发送自身的公网路由。
可选的,第一节点可以预先通过配置源地址和目的地址来建立IPv6隧道。作为示例,假设第一节点的IPv6地址是0000::1.1.1.1,第二节点的IPv6地址是0000::2.2.2.2,则当需要建立第一节点至第二节点的IPv6隧道时,可以预先为第一节点均配置源地址0000::1.1.1.1,以及均配置目的地址0000::2.2.2.2。这样,即建立了第一节点至第二节点的IPv6隧道。
在第一节点通过第一节点至第二节点的IPv6隧道来传递第一节点的公网路由时,对于位于第一节点和第二节点之间的P11和P12,只对用于承载该公网路由的报文进行转发即可。
第一节点至第二节点的IPv6隧道还可以用于传输业务报文。
S602、第二节点根据接收到的第一节点的公网路由,生成并发布去往第一节点的公网路由。
第二节点在接收到第一节点公网路由后,为第一节点分配公网标签,以及建立该公网标签和第一节点IPv6地址(第二节点接收到的第一节点的公网路由中包括第一节点的IPv6地址)之间的第三对应关系。这样,当第二节点确定接收到的报文中的公网标签是第二节点为第一节点分配的公网标签时,则第二节点可以进一步根据第一节点的公网标签和第三对应关系,确定出第一节点的IPv6地址。其中,第二节点为第一节点分配的公网标签为IPv4公网标签。
第二节点还将接收到的第一节点的公网路由中的下一跳地址修改为自己的IPv4地址,并在路由中添加第二节点为第一节点分配的公网标签,从而得到去往第一节点的公网路由。
然后,第二节点可以发布该去往第一节点的公网路由。例如,位于第二网络的第二节点可以基于IGP或LDP来发布该去往第一节点的公网路由。作为示例,假设第二节点接收到的第一节点的公网路由为:目的地址1.1.1.1,目的地址的IPv6地址0000::1.1.1.1.1,下一跳地址0000::1.1.1.1.1。如果第二节点的IPv4地址为2.2.2.2,第二节点为第一节点分配的IPv4公网标签为41001,则第二节点发布的去往第一节点的公网路由为:目的地址1.1.1.1,下一跳地址2.2.2.2,IPv4公网标签41001。
S603、第三节点从第二节点学到去往第一节点的公网路由。
响应于S602,第三节点可以学到第二节点发布的去往第一节点的公网路由。
作为示例,假设第二节点发布的去往第一节点的公网路由为:目的地址1.1.1.1,下一跳地址2.2.2.2,IPv4公网标签41001。且作为第二节点邻居节点的P21的IPv4地址是4.4.4.4,公网标签是41004。则P21可以接收到第二节点发布的去往第一节点的公网路由。P21在接收到第二节点发布的去往第一节点的公网路由后,将该公网路由中的下一跳地址修改为自己的IPv4地址,并将该IPv4路由中的公网标签修改为自己的公网标签。然后,P21发布去往第一节点的公网路由:目的地址1.1.1.1,下一跳地址4.4.4.4,公网标签41004。这样,作为P21邻居节点的第三节点即可系接收到P21发布的去往第一节点的公网路由,从而,第三节点即学到了去往第一节点的公网路由。
然后,第三节点可以基于学到的去往第一节点的公网路由获得公网路由表中的一条表项。
在又一些实施例中,本申请实施例可以通过图10所示的方法实现第三节点学习去往第一节点的公网路由。举例说明,在图10所述的方法中,第二网络支持SR-MPLS。参考图10,图10示出了本申请实施例提供的又一种报文传输方法的流程示意图。该方法可以包括以下步骤。
S701、第一节点向第二节点发送自身的公网路由。
S701的详细说明可以参考上文S601的描述,不再赘述。
S702、第二节点根据接收到的第一节点的公网路由,生成并发布去往第一节点的公网路由。
S702的详细说明可以参考上文S602的描述,不再赘述。
S703、第二网络的控制器接收第二节点发布的去往第一节点的公网路由。
作为响应,与第二节点通信的第二网络的控制器可以接收到第二节点发布的去往IPv4公网路由。
第二网络的控制器可以基于全局角度在第二网络的PE之间规划传输效率较高的报文转发路径,并可以将规划的报文转发路径发送至相关的PE,从而使得相关的PE基于该报文转发路径传输报文。例如,该控制器可以在第三节点和第二节点之间规划从第三节点至第二节点途经最少节点的第三路径,或者,该控制器可以在第三节点和第二节点之间规划从第三节点至第二节点的业务传输量最少的第三路径。当然不限于此。这样,当该控制器将第三路径发送至第三节点,第三节点即可基于第三路径向第二节点转发报文,从而提高了报文的传输效率。
类似的,该控制器可以在第三节点和第二节点之间规划从第二节点至第三节点途经最少节点的第四路径,或者,该控制器可以在第三节点和第二节点之间规划从第二节点至第三节点的业务传输量最少的第四路径。当然不限于此。这样,当该控制器将第四路径发送至第二节点,第二节点即可基于第四路径向第三节点转发报文,从而提高了报文的传输效率。
S704、第二网络的控制器向第三节点发送接收到的去往第一节点的公网路由。
可选的,第二网络的控制器还可以向第三节点发送第三路径的信息,以及向第二节点发送第四路径的信息。这里,第三路径和第四路径的说明可以参考上文,这里不做赘述。第二网络的控制器还将规划的第四路径发送至第四节点,不再赘述。
S705、第三节点接收去往第一节点的公网路由。
响应于S704,第三节点接收到去往第一节点的公网路由。第三节点接收到去往第一节点的公网路由后,基于该公网路由获得公网路由表中的一条表项。至此,第一节点可以通过图7或图8所示的方法学到去往第三节点的公网路由,第三节点则可以通过图9或图10的方法学到去往第一节点的IPv4公网路由。也就是说,通过图7或图8,以及图9或图10的方法,打通了支持SRv6的第一网络中PE(例如第一节点)和支持MPLS-LDP/SR-MPLS的第二网络中PE(例如第三节点)之间的报文传输通道。这样,基于第一节点和第三节点之间的报文传输通道,第一节点可以向第三节点转发业务报文,第三节点也可以向第一节点转发业务报文。
当然,第一节点和第三节点之间也可以基于打通的报文传输通道来建立BGP邻居关系。这样,第一节点可以通过该BGP邻居关系学到第三节点的业务路由,而第三节点也可以通过该BGP邻居关系学到第一节点的业务路由。例如,第一节点和第三节点可以基于建立的BGP邻居关系实现图1所述的报文传输方法。
下面,基于第一节点和第三节点学习到的业务路由来实现业务报文的转发。举例说明,这里的业务报文可以是L3业务类型的业务报文,或者是L2多点业务类型的业务报文,还可以是L2点到点业务类型的业务报文,本申请实施例对此不作限定。
参考图11,图11示出了本申请实施例提供的一种报文传输方法的流程示意图。该方法可以应用于上文所述的第一网络,以及与第一网络连接的第二网络。可选的,执行本申请实施例方法的第一网络中的节点(例如第一节点和第二节点)和第二网络中的节点(例如第三节点)具有如图3所示的硬件结构。该方法可以包括以下步骤。
S801、第一节点接收第一报文。
其中,第一报文是来自第一网络之外的业务报文。举例说明,本申请实施例中的第一报文可以是用于承载业务数据的报文,也可以是控制类报文,本申请实施例对此不作限定。
作为示例,第一报文可以是L3业务类型的业务报文,或者是L2多点业务类型的业务报文,还可以是L2点到点业务类型的业务报文,本申请实施例对此不作限定。
S802、第一节点根据第一报文确定第一SID。
第一节点可以根据第一报文的目的地址确定去往该目的地址的路由,并将该路由中的SID确定为第一SID。具体的,第一节点可以根据第一报文的目的地址查询第一节点的业务路由表,以确定去往该目的地址的路由,并将该路由中的SID确定为用于指示第一报文的业务标签的SID。作为示例,假设第一报文中的目的地址是10.1.1.2,则第一节点基于10.1.1.2查询第一节点的业务路由表,从而确定表2所示的业务路由1是用于转发第一报文的路由。这样,第一节点则将业务路由1中的SID确定为用于指示第一报文业务标签的SID。
下文中以第一报文的目的地址是上文中所述第一路由中的目的地址为例进行说明。
当第一报文的目的地址是上文中所述第一路由中的目的地址,则第一路由即为去往第一报文目的地址的路由。也就是说,第一路由的目的地址即为第一报文的目的地址。并且由上文可知,第一路由的下一跳地址为第三节点的IPv4地址,以及第一路由中还包括通过第一路由传输的业务报文的业务标签唯一对应的第一SID。换句话说,当第一节点根据第一报文确定的路由是第一路由,则第一路由中第一SID即用于指示第一报文的业务标签。
S803、第一节点根据第一报文和第一SID,生成第二报文。
第一节点可以基于第一路由中的下一跳地址(即第三节点的IPv4地址)查询公网路由表,从而确定用于指示去往第三节点的第二路由。
基于上文所述,第二路由为去往第三节点的公网路由,第二路由包括第三节点的IPv4地址(即目的地址)、与第三节点的IPv4地址唯一对应的第二SID,以及第二节点的IPv6地址(即下一跳地址)。
这样的话,第一节点可以基于第一路由和第二路由生成第二报文。可选的,第二报文的报文负载和第一报文的报文负载相同。
具体的,第一节点可以在根据第二路由确定去往第三节点(即第一路由中下一跳)的下一跳地址后,即基于去往第三节点的下一跳地址生成第二报文的IPv6报文头。第二报文的IPv6报文头中的目的地址即为去往第三节点的下一跳地址(即第二节点的IPv6地址),第二报文的IPv6报文头中的源地址即为第一节点的IPv6地址。以及,第一节点可以根据第一路由中的第一SID、以及与第一路由的下一跳地址(即第三节点的IPv4地址)唯一对应的第二路由中的第二SID,生成第二报文的SID list。第二报文的SID list中包括第一SID和第二SID。举例说明,在申请实施例中,第二报文中的SID list用于确定第二报文的报文负载在第二网络中传输时的MPLS报文头。
作为示例,假设第一路由是上文表2所示的业务路由1:目的地址10.1.1.2,下一跳地址3.3.3.3(第三节点的IPv4地址),第一SID FFFE::40002。第一节点根据第一路由的下一跳地址3.3.3.3确定的第二路由为:目的地址3.3.3.3(第三节点的IPv4地址),目的地址的IPv6地址0000::3.3.3.3(第二SID),下一跳节点(即第二节点)的IPv6地址0000::2.2.2.2。并且,假设第一节点的IPv6地址为0000::1.1.1.1,则第一节点根据去往第三节点的下一跳节点的IPv6地址0000::2.2.2.2以及第一节点的IPv6地址0000::1.1.1.1,可以生成第二报文的IPv6报文头:源地址0000::1.1.1.1、目的地址0000::2.2.2.2。以及,第一节点可以根据第一路由中的业务标签第一SID FFFE::40002和第一路由的下一跳IPv4地址3.3.3.3唯一对应的第二路由中的第二SID 0000::3.3.3.3,生成第二报文的SID list:FFFE::40002、0000::3.3.3.3。这样,第一节点可以根据上述生成的IPv6报文头、SID list以及第一报文的报文负载,生成第二报文。
结合上文所述,如图12所示,图12示出了本申请实施例中所述第二报文的结构示意图。第二报文是当前SRv6的标准报文传输格式。
这样的话,相比图1所示的报文结构,在第二报文中的SID list和报文负载之间,无需插入去往第一报文的业务标签。这样,第一网络在传输第二报文时,可以对第二报文按照当前SRv6的标准来解析第二报文,从而可以为其提供增值服务。
S804、第一节点向第二节点发送第二报文。
第一节点可以通过第一节点至第二节点的IPv6隧道,向第二节点发送第二报文。其中,第一节点和第二节点之间可以预先建立第一节点至第二节点的IPv6隧道,具体可以参考上文中建立第一节点至第二节点的IPv6隧道的相关描述,这里不再赘述。
可选的,第一节点至第二节点之间的IPv6隧道途经的路径,例如可以上文所述的由第一网络中控制器规划的第一路径,不再赘述。
S805、第二节点接收第二报文,并根据第二报文生成第三报文。
响应于S804,第二节点接收到第二报文。第二节点接收到第二报文后,可以根据第二报文生成第三报文。可选的,第二报文的报文负载和第三报文的报文负载相同。第二节点可以先根据第二报文的SID list确定第二报文的业务标签和用于向去往第二报文的报文负载中目的地址的下一跳节点转发报文的公网标签。然后,第二节点根据该业务标签、公网标签以及第二报文,生成第三报文。第二节点根据第二报文的SID list确定业务标签和公网标签即为第三报文的MPLS报文头。
可选的,第二节点中预置有上文所述的第二预设策略。这样,第二节点可以基于第二预设策略的指示,去除第二报文SID list中第一SID的第一预设前缀,以得到与第一SID唯一对应的业务标签。基于上文所述,该业务标签即为第一/二/三报文的业务标签。
作为示例,假设第二报文的SID list为:FFFE::40002、0000::3.3.3.3,且第二预设策略指示的第一预设前缀是“FFFE::”,则第二节点确定SID“FFFE::40002”是第一SID,并可以将第一SID的第一预设前缀去除,以得到与第一SID唯一对应的业务标签:40002。
可选的,第二节点中预置有上文S102所述的第一对应关系。这样,第二节点可以根据第一对应关系的指示,为接收到的第二报文SID list中的第一SID确定唯一对应的业务标签。
作为示例,假设第二报文的SID list为:FFFE::40002、0000::3.3.3.3,且第一对应关系为:FFFE::40002对应40002,则第二节点确定SID“FFFE::40002”是第一SID,并可以将40002确定为与第一SID唯一对应的业务标签。
此外,第二节点还可以根据第二报文SID list中的第二SID,确定与第二SID唯一对应的第三节点的IPv4地址。进一步的,第二节点根据确定出的第三节点的IPv4地址,确定用于向第三节点转发报文的公网标签。
可选的,第二节点中预置有上文所述的第三预设策略。这样,第二节点可以基于第三预设策略的指示第二预设前缀,确定第二报文SID list中的第二SID。然后,第二节点去除第二SID的第二预设前缀,即得到与第二SID唯一对应的第三节点的IPv4地址。这样,第二节点可以根据确定出的第三节点的IPv4地址,确定出第二节点预先学到的去往第三节点的公网路由。这样,第二节点可以将该公网路由中的公网标签,确定为用于向第三节点转发报文的公网标签。
作为示例,假设第二报文的SID list为:FFFE::40002、0000::3.3.3.3,且第三预设策略指示的第二预设前缀是“0000::”,则第二节点将0000::3.3.3.3确定为第二SID,并将第二SID中的第二预设前缀去除,从而得到与第二SID唯一对应的第三节点的IPv4地址3.3.3.3。进一步的,第二节点根据确定的IPv4地址3.3.3.3确定出去往该地址的公网路由:目的地址3.3.3.3,下一跳地址4.4.4.4,公网标签41004。这样,第二节点即可将该公网路由中的公网标签确定为用于向第三节点转发报文的公网标签。
可选的,第二节点还可以根据上文S402所述的第二对应关系,确定与第二报文SIDlist中第二SID唯一对应的第三节点的IPv4地址。这样,第二节点可以根据确定出的第三节点的IPv4地址,确定出第二节点预先学到的去往第三节点的公网路由。这样,第二节点可以将该公网路由中的公网标签,确定为用于向第三节点转发报文的公网标签。
作为示例,假设第二报文的SID list为:FFFE::40002、0000::3.3.3.3,且第二对应关系为:IPv6地址0000::3.3.3.3对应的IPv4地址为3.3.3.3,则第二节点将0000::3.3.3.3确定为第二SID,并将3.3.3.3确定为与第二SID具有唯一对应关系的第三节点的IPv4地址。进一步的,第二节点根据确定的IPv4地址3.3.3.3确定出去往该地址的公网路由:目的地址3.3.3.3,下一跳地址4.4.4.4,公网标签41004。这样,第二节点即可将该公网路由中的公网标签确定为用于向第三节点转发报文的公网标签。
这样的话,第二节点即可基于确定出的业务标签、公网标签以及第二报文的报文负载,生成第三报文。
结合上文所述,如图13所示,图13示出了本申请实施例中所述第三报文的结构示意图。第三报文是当前MPLS的标准报文传输格式。
S806、第二节点向第三节点发送第三报文。
第二节点可以通过MPLS-LDP或SR-MPLS向第三节点发送第三报文、第二节点通过MPLS-LDP或SR-MPLS向第三节点发送第三报文的具体过程,本申请实施例对此不作详述。
S807、第三节点根据接收到的第三报文中的业务标签,确定下一跳地址,以及向该下一跳地址发送包括第三报文的报文负载的业务报文。
响应于S806,第三节点接收到第三报文。第三节点在接收到第三报文后,根据第三报文中的业务标签,以及第三报文的报文负载中的目的地址,确定下一跳地址。接着,第三节点向该下一跳地址发送包括第三报文的报文负载的业务报文。
这样,通过S801-S807所述的方法,实现了当第一报文去往该第一报文的目的地址需要经过第一网络和第二网路时的顺利传输。并且,第一报文的报文负载在支持SRv6的第一网络中传输时,承载该报文负载的第二报文的格式为标准格式,即第一网络中的VAS节点可以对第二报文进行正常解析,从而可以为其提供增值服务。
此外,为实现S801-S807所述的方法,第一网络的PE预先学习第二网络PE公网路由以及业务路由时,只需对第一网络侧的PE进行相关修改和配置。换句话说,本申请提供的面向SRv6演进过程中,第二网络是无感知的。并且,第一网络仅需在PE和SPE上配置IPv4即可,而第一网络的P节点则无需配置IPv4,也就是说,本申请提供的方法能够节省有限的IPv4资源。
参考图14,图14示出了本申请实施例提供的另一种报文传输方法的流程示意图。该方法可以应用于上文所述的第一网络,以及与第一网络连接的第二网络。可选的,执行本申请实施例方法的第一网络中的节点(例如第一节点和第二节点)和第二网络中的节点(例如第三节点)具有如图3所示的硬件结构。该方法可以包括以下步骤。
S901、第三节点接收业务报文。
第三节点所接收的业务报文来自第二网络之外的业务报文。举例说明,这里的业务报文可以是用于承载业务数据的报文,也可以是控制类报文,本申请实施例对此不作限定。作为示例,第三节点所接收的业务报文可以是L3业务类型的业务报文,或者是L2多点业务类型的业务报文,还可以是L2点到点业务类型的业务报文,本申请实施例对此不作限定。
S902、第三节点根据接收到的业务报文生成第四报文。
第三节点可以根据接收到的业务报文的目的地址确定去往该目的地址的路由,并基于该路由生成第四报文。具体的,第三节点可以根据接收到的业务报文的目的地址查询第三节点的业务路由表,以确定去往该目的地址的路由。然后,第三节点基于该路由生成第四报文。作为示例,假设第三节点根据接收到的业务报文中的目的地址是10.1.1.1,则第三节点基于该目的地址查询第三节点的业务路由表,从而确定表3所示的业务路由2是用于转发该业务报文的路由。这样,第三节点则根据业务路由2和接收到的业务报文的报文负载,生成第四报文。
下文中以第三节点所接收到的业务报文的目的地址是上文中所述第二业务路由中的目的地址为例进行说明。当第三节点所接收到的业务报文的目的地址是上文中所述第二业务路由中的目的地址,则去往该目的地址的路由即为上文所述的第二业务路由。这样的话,第三节点可以基于第二业务路由和该业务报文的报文负载,生成第四报文。
第三节点可以先将第二业务路由中的业务标签确定为第四报文的业务标签,以及根据第二业务路由中的下一跳地址确定用于转发第四报文的公网标签。
其中,第三节点根据第二业务路由中的下一跳地址确定用于转发第四报文的公网标签的具体过程可以包括:第三节点根据第二业务路由中的下一跳地址查询公网路由表,确定去往该下一跳地址的公网路由。然后,第三节点可以将该公网路由中的公网标签,确定为用于转发第四报文的公网标签。
作为示例,假设第二业务路由是表3所示的业务路由2:目的地址10.1.1.1,下一跳地址1.1.1.1(即第一节点的IPv4地址),业务标签40001,则第三节点可以将业务路由2中的业务标签40001确定为第四报文的业务标签。并且,第三节点根据业务路由2中的下一跳地址1.1.1.1查询公网路由表,确定去往该下一跳地址1.1.1.1的公网路由为:目的地址1.1.1.1(第一节点的IPv4地址),下一跳(P21)地址4.4.4.4,公网标签41004(P21的公网标签)。这种情况下,第三节点则将该公网路由中的IPv4公网标签41004确定为用于转发第四报文的公网标签。
这样,第三节点基于确定的业务标签、公网标签以及接收到的业务报文的负载,生成第四报文。其中,第三节点所确定的业务标签和公网标签即作为第四报文的MPLS报文头。例如,第四报文的MPLS报文头上述示例中确定的公网标签41004和业务标签40001。
S903、第三节点向第二节点发送第四报文。
第三节点可以通过第四报文中的公网标签,在第二网络中传输第四报文,从而将第四报文发送至第二节点。
作为示例,以第三节点生成的第四报文中的公网标签是第二网络中P21的公网标签41004为例,则第三节点可以将第四报文发送至P21。接着,P21通过查询路由表,可以确定与P21的公网标签41004对应的公网标签是第二节点为第一节点分配的公网标签41001(P21的路由表中,包括有第三节点通过P21学习其他网络中PE(例如第一节点)的公网路由时的路由信息)。因此,P21可以将第四报文中的公网标签替换为第二节点为第一节点分配的公网标签41001,并将替换公网标签后的第四报文发送至第二节点。
S904、第二节点接收到第四报文,并基于第四报文生成第五报文。
响应与于S903,第二节点接收到第四报文。第二节点接收到第四报文后,根据第四报文生成第五报文。具体的,第二节点可以根据接收到的第四报文中的公网标签,确定该公网标签是第二节点预先为第一节点分配的公网标签,则第二节点可以将第一节点确定为接收第五报文的目的节点。这样,第二节点可以根据第一节点的公网标签和上文所述的第三对应关系,确定第一节点的IPv6地址。进一步的,第二节点可以根据第一节点的IPv6地址和第二节点的IPv6地址,生成第五报文的IPv6报文头。
作为示例,假设第二节点接收到的P21发送的第四报文的公网标签为41001,且第二节点预先为第一节点分配的公网标签也是41001,则第二节点将第一节点确定为接收第五报文的目的节点。然后,第二节点根据第一节点的公网标签41001和上文所述的第三对应关系,确定第一节点的IPv6地址的0000::1.1.1.1,假设第二节点的IPv6地址是0000::2.2.2.2,则第二节点可以将第一节点的IPv6地址的0000::1.1.1.1确定为第五报文的IPv6报文头的目的地址,并将第二节点的IPv6地址是0000::2.2.2.2确定为第五报文的IPv6报文头的源地址。
此外,第二节点还可以根据第一节点的IPv6地址和接收到的第四报文中的业务标签,生成第五报文的SID list。具体的,第二节点可以基于接收到的第四报文中的业务标签和预置的第四对应关系,确定与第四报文中的业务标签对应的第三SID。其中,第四对应关系用于指示该业务标签和第三SID的对应关系。进一步的,第二节点可以将第一节点的IPv6地址和确定出的第三SID确定为第五报文的SID list,也即,第五报文的SID list包括第一节点的IPv6地址和第三SID。
举例说明,在S901之前,当第三节点学习第一节点的第二业务路由时,第二节点可以在向第三节点转发第一节点的第二业务路由时,为第二业务路由中的业务标签分配对应的第三SID,并建立指示该业务标签和第三SID对应关系的第四对应关系。并且,第二节点还将第四对应关系发送至第一节点,以便第一节点根据第四对应关系,确定与所接收到的报文中的第三SID对应的业务标签。
或者,在S901之前,第三节点学习第一节点的业务路由时,第一节点可以为自己的第二业务路由中的业务标签分配对应的第三SID,并建立指示该业务标签和第三SID对应关系的第四对应关系。并且,第一节点还将第四对应关系发送至第二节点,以便第二节点根据第四对应关系,确定与所接收到的报文中的业务标签对应的第三SID。
其中,第二节点/第一节点为第二业务路由中的业务标签分配对应的第三SID的详细说明,可以参考第一节点为第一业务路由中的业务标签分配第一SID的描述,不再赘述。
作为示例,假设第二节点接收到的第四报文的业务标签为40001,则第二节点可以基于第四对应关系,确定与业务标签为40001对应的第三SID是FFFE::40001。这样的话,假设第二节点根据第四报文确定的第一节点的IPv6地址是0000::1.1.1.1,则第二节点可以将第一节点的IPv6地址是0000::1.1.1.1和第三SID FFFE::40001确定为第五报文的SIDlist。也即,第五报文的SID list包括:第一节点的IPv6地址是0000::1.1.1.1和第三SIDFFFE::40001。
这样,第二节点根据确定出的第五报文的IPv6报文头、第五报文的SID list以及第四报文的报文负载,生成第五报文。
S905、第二节点向第一节点发送第五报文。
第二节点基于第五报文的IPv6报文头中的目的地址,通过第二节点至第一节点的IPv6隧道,向第一节点发送第五报文。其中,第一节点和第二节点之间可以预先建立第二节点至第一节点的IPv6隧道,具体可以参考上文中建立第二节点至第一节点的IPv6隧道的相关描述,这里不再赘述。
可选的,第二节点至第一节点之间的IPv6隧道途经的路径,例如可以上文所述的由第一网络中控制器规划的第二路径,不再赘述。
S906、第一节点接收到第五报文,并基于第五报文的业务标签确定下一跳节点,以及向该下一跳节点转发包括第五报文的报文负载的业务报文。
响应于S905,第一节点接收到第五报文。
第一节点在接收到第五报文后,根据第五报文中的第三SID和第四对应关系,可以确定与第三SID对应的业务标签。接着,第一节点可以根据该业务标签和第五报文的报文负载中的目的地址,确定下一跳地址。然后,第一节点向该下一跳地址发送包括第五报文的报文负载的业务报文。
这样,通过S901-S906所述的方法,实现了当业务报文去往该业务报文的目的地址需要经过第一网络和第二网路时的顺利传输。并且,该业务报文的报文负载在支持SRv6的第一网络中传输时,承载该报文负载的第五报文的格式为标准格式,即第一网络中的VAS节点可以对第五报文进行正常解析,从而可以为其提供增值服务。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。
为了实现上述功能,如图15所示,图15示出了本申请实施例提供的一种报文传输装置150的结构示意图。报文传输装置150应用于上文所述的第一节点,报文传输装置150用于执行上述的报文传输方法,例如用于执行图4、图5、图6、图7、图8、图9、图10、图11或图14所示的方法。其中,报文传输装置150可以包括接收单元151、确定单元152、生成单元153以及发送单元154。
接收单元151,用于接收第一报文。确定单元152,用于根据第一报文确定用于指示第一报文的业务标签的第一SID。生成单元153,用于根据第一报文和第一SID生成第二报文。发送单元154,用于向第二节点转发第二报文。其中,第二报文的SID list中包括第一SID,第二节点位于第一网络和第二网络的网络边界,第二网络支持MPLS-LDP或SR-MPLS。
作为示例,结合图11,接收单元151可以用于执行S801,确定单元152可以用于执行S802,生成单元153可以用于执行S803,发送单元154可以用于执行S804。
可选的,上述第一报文的业务标签用于指示L3VPN业务、L2多点业务或L2点到点业务中的任一种。
可选的,确定单元152具体用于:根据上述第一报文中的目的地址确定第一路由,并在第一路由中确定第一SID。其中,第一路由是去往第一报文目的地址的业务路由。
作为示例,结合图11,确定单元152可以用于执行S802。
可选的,若第一路由指示的下一跳是位于第二网络边界的第三节点,则确定单元152还用于根据第一路由中的下一跳地址确定第二路由。生成单元153具体用于根据第一报文、第一SID以及第二路由中的第二SID。生成第二报文,其中,第二路由是去往第三节点的公网路由,第二SID是第三节点的SID,第二报文的SID list中包括第二SID。
作为示例,结合图11,确定单元152和生成单元153可以用于执行S803。
可选的,在接收单元151接收第一报文之前,报文传输装置150还包括:获取单元155,用于获取第一路由。
作为示例,结合图4,获取单元155可以用于执行S102。结合图5,获取单元155可以用于执行S204。
可选的,接收单元151,还用于接收路由反射器发送的第一路由,其中,第一路由是路由反射器基于第三节点发布的去往第一报文目的地址的业务路由以及为业务路由中的业务标签分配的第一SID而生成的路由。
作为示例,结合图5,接收单元151可以用于执行S204。
可选的,接收单元151,还用于接收第三节点发布的去往第一报文目的地址的业务路由。生成单元153,具体用于为该业务路由中的业务标签分配第一SID,以生成第一路由。
作为示例,结合图4,接收单元151和生成单元153可以用于执行S102。
可选的,获取单元155,还用于获取第二路由。报文传输装置150还包括建立单元156,用于根据第二路由建立与第三节点之间的邻居关系。接收单元151,具体用于基于该邻居关系,接收第三节点发布的业务路由。
作为示例,结合图7,获取单元155可以用于执行S404。结合图8,获取单元155可以用于执行S505。结合图4,接收单元151可以用于执行S102。
可选的,上述的第二网络支持MPLS-LDP时,接收单元151还用于接收第二节点发送的第二路由。其中,第二路由为第二节点基于第三节点发布的公网路由以及为第三节点的公网路由的目的地址分配的第二ID而生成的路由。
作为示例,结合图7,接收单元151可以用于执行S404。
可选的,上述的第二网络支持SR-MPLS时,接收单元151还用于接收第一网络的控制器发送的第二路由。其中。第二路由为控制器基于第三节点发布的公网路由以及为第三节点的公网路由的目的地址分配的第二ID而生成的路由。
作为示例,结合图8,接收单元151可以用于执行S505。
可选的,发送单元154,还用于通过第二节点,向第三节点发布第一节点的IPv4公网路由和第一节点的业务路由。
作为示例,结合图9,发送单元154可以用于执行S601。结合图10,发送单元154可以用于执行S701。结合图4,发送单元154可以用于执行S103。
关于上述可选方式的具体描述可以参见前述的方法实施例,此处不再赘述。此外,上述提供的任一种报文传输装置150的解释以及有益效果的描述均可参考上述对应的方法实施例,不再赘述。
作为示例,结合图3,报文传输装置150中的确定单元152、生成单元153、建立单元156所实现的功能可以通过图3中的处理器31执行图3中的存储器32中的程序代码实现。接收单元151、发送单元154以及获取单元155所实现的功能可以通过图3中的网络接口33实现。
如图16所示,图16示出了本申请实施例提供的一种报文传输装置160的结构示意图。报文传输装置160应用于上文所述的第二节点,报文传输装置160用于执行上述的报文传输方法,例如用于执行图4、图5、图6、图7、图8、图9、图10、图11或图14所示的方法。其中,报文传输装置160可以包括接收单元161、确定单元162以及发送单元163。
接收单元161,用于接收第一节点发送的第二报文,第二报文的SID list中包括第一SID和第二SID。确定单元162,用于根据第一SID确定对应的业务标签,以及,根据第二SID确定对应的公网标签。发送单元163,用于向第三节点发送包括该业务标签和该公网标签第三报文。其中,第一节点位于第一网络的网络边界,第一SID和第二SID是第一节点根据接收到的第一报文确定的。并且,确定单元162根据第一SID确定的业务标签是第二报文的业务标签,确定单元162根据第二SID确定的公网标签用于向第三节点转发报文,其中,第三节点位于第二网络的网络边界。
作为示例,结合图11,接收单元161和确定单元162可以用于执行S805,发送单元163可以用于执行S806。
可选的,上述的第二报文的业务标签用于指示L3VPN业务、L2多点业务或L2点到点业务中的任一种。
可选的,确定单元162,具体用于基于第一SID确定业务标签,该业务标签为去除第一SID的第一预设前缀而获得的值。
作为示例,结合图11,确定单元162可以用于执行S805。
可选的,确定单元162,具体用于根据第一SID和第一对应关系,确定业务标签。其中,第一对应关系用于指示第一SID和业务标签的对应关系。
作为示例,结合图11,确定单元162可以用于执行S805。
可选的,确定单元162还具体用于:基于第二SID确定与第二SID对应的第三节点的地址,第三节点的地址为去除第二SID的第二预设前缀而获得的值。以及,基于第三节点的地址和去往第三节点的公网路由,确定去往第三节点的下一跳节点的公网标签。
作为示例,结合图11,确定单元162可以用于执行S805。
可选的,确定单元162,还具体用于根据第二SID和第二对应关系,确定去往第三节点的下一跳节点的公网标签。其中,第二对应关系用于指示第二SID和第三节点公网标签的对应关系。
作为示例,结合图11,确定单元162可以用于执行S805。
可选的,在接收单元161接收第一节点发送的第二报文之前,发送单元163还用于:向第三节点发布第一节点的IPv4公网路由和第一节点的业务路由。
作为示例,结合图9,发送单元163可以用于执行S602。结合图10,发送单元163可以用于执行S702。
可选的,在接收单元161接收第一节点发送的第二报文之前,接收单元161还用于接收第三节点发布的公网路由。报文传输装置160还包括生成单元164,用于为第三节点发布的公网路由的目的地址分配第二SID,以生成去往第三节点的公网路由。发送单元163还用于向第一节点发送去往第三节点的公网路由。
作为示例,结合图7,接收单元161和生成单元164可以用于执行S402,发送单元163可以用于执行S403。
可选的,接收单元161,还用于接收来自第三节点的第四报文,其中,第四报文包括第一节点的IPv4公网标签和第四报文的业务标签。确定单元162,还用于根据第一节点的IPv4公网标签确定第一节点的IPv6地址;以及,根据第四报文的业务标签确定对应的第三SID。发送单元163,还用于向第一节点转发第五报文,其中,第五报文的SID list中包括第一节点的IPv6地址和第三SID。
作为示例,结合图14,接收单元161和确定单元162可以用于执行S904,发送单元163可以用于执行S905。
关于上述可选方式的具体描述可以参见前述的方法实施例,此处不再赘述。此外,上述提供的任一种报文传输装置160的解释以及有益效果的描述均可参考上述对应的方法实施例,不再赘述。
作为示例,结合图3,报文传输装置160中的确定单元162和生成单元164所实现的功能可以通过图3中的处理器31执行图3中的存储器32中的程序代码实现。接收单元161和发送单元163所实现的功能可以通过图3中的网络接口33实现。
本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
需要说明的是,图15或图16中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,还可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
本申请实施例还提供了一种第一网络,其中,第一网络支持SRv6,第一网络包括第一节点和第二节点。第一节点位于第一网络的网络边界,并用于执行上文图4、图5、图6、图7、图8、图9、图10、图11或图14所述的报文传输方法中由第一节点执行的部分。第二节点位于第一网络和第二网络的网络边界,并用于执行上文图4、图5、图6、图7、图8、图9、图10、图11或图14所述的报文传输方法中由第二节点执行的部分。其中,第二网络支持MPLS-LDP或SR-MPLS。
本申请实施例还提供一种芯片系统170,如图17所示,该芯片系统170包括至少一个处理器和至少一个接口电路。作为示例,当该芯片系统170包括一个处理器和一个接口电路时,则该一个处理器可以是图17中实线框所示的处理器171(或者是虚线框所示的处理器171),该一个接口电路可以是图17中实线框所示的接口电路172(或者是虚线框所示的接口电路172)。当该芯片系统170包括两个处理器和两个接口电路时,则该两个处理器包括图17中实线框所示的处理器171和虚线框所示的处理器171,该两个接口电路包括图17中实线框所示的接口电路172和虚线框所示的接口电路172。对此不作限定。
处理器171和接口电路172可通过线路互联。例如,接口电路172可用于接收信号(例如接收第一/第二业务路由等)。又例如,接口电路172可用于向其它装置(例如处理器171)发送信号。示例性的,接口电路172可读取存储器中存储的指令,并将该指令发送给处理器171。当该指令被处理器171执行时,可使得报文传输装置执行上述实施例中的各个步骤。当然,该芯片系统170还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机程序产品,以及用于存储该计算机程序产品的计算机可读存储介质。该计算机程序产品可以包括一个或多个程序指令,当该一个或多个程序指令被一个或多个处理器运行时可以提供以上针对图4、图5、图6、图7、图8、图9、图10、图11或图14描述的功能或者部分功能。因此,例如,参考图11中S801~S807的一个或多个特征可以由该计算机程序产品中的一个或多个指令来承担。
在一些示例中,诸如针对图15或图16描述的报文传输装置可以被配置为,响应于通过计算机可读存储介质中存储的一个或多个程序指令,提供各种操作、功能、或者动作。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上和执行计算机执行指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (43)
1.一种报文传输方法,其特征在于,应用于第一网络的网络边界处的第一节点,所述第一网络支持基于互联网协议第6版的段路由SRv6,所述方法包括:
接收第一报文;
根据所述第一报文确定第一段标识SID,所述第一SID用于指示所述第一报文的业务标签;
根据所述第一报文和所述第一SID生成第二报文,所述第二报文的段标识列表中包括所述第一SID;
向第二节点转发所述第二报文,所述第二节点位于所述第一网络和第二网络的网络边界,所述第二网络支持多协议标签交换-标签分发协议MPLS-LDP或段路由-多协议标签交换SR-MPLS。
2.根据权利要求1所述的方法,其特征在于,所述第一报文的业务标签用于指示3层虚拟专用网L3VPN业务、2层L2多点业务或2层L2点到点业务中的任一种。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述第一报文确定第一段标识SID包括:
根据所述第一报文中的目的地址确定第一路由,所述第一路由是去往所述目的地址的业务路由;
在所述第一路由中确定所述第一SID。
4.根据权利要求3所述的方法,其特征在于,若所述第一路由指示的下一跳是位于所述第二网络边界的第三节点,则所述根据所述第一报文和所述第一SID生成第二报文包括:
根据所述第一路由中的下一跳地址确定第二路由,所述第二路由是去往所述第三节点的公网路由;
根据所述第一报文、所述第一SID以及所述第二路由中的第二SID,生成所述第二报文,所述第二SID是所述第三节点的SID,所述第二报文的段标识列表中包括所述第二SID。
5.根据权利要求4所述的方法,其特征在于,在所述接收第一报文之前,所述方法还包括:
获取所述第一路由。
6.根据权利要求5述的方法,其特征在于,所述获取所述第一路由包括:
接收路由反射器发送的所述第一路由,所述第一路由是所述路由反射器基于所述第三节点发布的去往所述目的地址的业务路由以及为所述业务路由中的业务标签分配的所述第一SID而生成的路由。
7.根据权利要求5所述的方法,其特征在于,所述获取所述第一路由包括:
接收所述第三节点发布的去往所述目的地址的业务路由;
为所述业务路由中的业务标签分配所述第一SID,以生成所述第一路由。
8.根据权利要求7所述的方法,其特征在于,所述接收所述第三节点发布的去往所述目的地址的业务路由包括:
获取所述第二路由;
根据所述第二路由建立与所述第三节点之间的邻居关系;
基于所述邻居关系,接收所述第三节点发布的所述业务路由。
9.根据权利要求8所述的方法,其特征在于,所述第二网络支持MPLS-LDP,所述获取所述第二路由包括:
接收所述第二节点发送的所述第二路由,所述第二路由为所述第二节点基于所述第三节点发布的公网路由以及为所述第三节点的公网路由的目的地址分配的所述第二ID而生成的路由。
10.根据权利要求8所述的方法,其特征在于,所述第二网络支持SR-MPLS,所述获取所述第二路由包括:
接收所述第一网络的控制器发送的所述第二路由,所述第二路由为所述控制器基于所述第三节点发布的公网路由以及为所述第三节点的公网路由的目的地址分配的所述第二ID而生成的路由。
11.根据权利要求8-10中任一项所述的方法,其特征在于,所述方法还包括:
通过所述第二节点,向所述第三节点发布所述第一节点的IPv4公网路由和所述第一节点的业务路由。
12.一种报文传输方法,其特征在于,应用于第一网络和第二网络的网络边界处的第二节点,所述第一网络支持基于互联网协议第6版的段路由SRv6,所述第二网络支持多协议标签交换-标签分发协议MPLS-LDP或段路由-多协议标签交换SR-MPLS;所述方法包括:
接收第一节点发送的第二报文,所述第一节点位于所述第一网络的网络边界,所述第二报文的段标识列表中包括第一段标识SID和第二SID,所述第一SID和所述第二SID是所述第一节点根据接收到的第一报文确定的;
根据所述第一SID确定对应的业务标签,所述业务标签是所述第二报文的业务标签;
根据所述第二SID确定对应的公网标签,所述公网标签用于向所述第三节点转发报文,所述第三节点位于所述第二网络的网络边界;
向所述第三节点发送第三报文,所述第三报文包括所述业务标签和所述公网标签。
13.根据权利要求12所述的方法,其特征在于,所述第二报文的业务标签用于指示3层虚拟专用网L3VPN业务、2层L2多点业务或2层L2点到点业务中的任一种。
14.根据权利要求12或13所述的方法,其特征在于,所述根据所述第一SID确定对应的业务标签,包括:
基于所述第一SID确定所述业务标签,所述业务标签为去除所述第一SID的第一预设前缀而获得的值。
15.根据权利要求12或13所述的方法,其特征在于,所述根据所述第一SID确定对应的业务标签,包括:
根据所述第一SID和第一对应关系,确定所述业务标签;所述第一对应关系用于指示所述第一SID和所述业务标签的对应关系。
16.根据权利要求12-15中任一项所述的方法,其特征在于,所述根据所述第二SID确定对应的公网标签包括:
基于所述第二SID确定与所述第二SID对应的第三节点的地址,所述第三节点的地址为去除所述第二SID的第二预设前缀而获得的值;
基于所述第三节点的地址和去往所述第三节点的公网路由,确定去往所述第三节点的下一跳节点的公网标签。
17.根据权利要求12-15中任一项所述的方法,其特征在于,所述根据所述第二SID确定对应的公网标签包括:
根据所述第二SID和第二对应关系,确定去往所述第三节点的下一跳节点的公网标签,所述第二对应关系用于指示所述第二SID和所述第三节点公网标签的对应关系。
18.根据权利要求12-17中任一项所述的方法,其特征在于,在所述接收第一节点发送的所述第二报文之前,所方法还包括:
向所述第三节点发布所述第一节点的IPv4公网路由和所述第一节点的业务路由。
19.根据权利要求12-18中任一项所述的方法,其特征在于,在所述接收第一节点发送的所述第二报文之前,所述方法还包括:
接收所述第三节点发布的公网路由;
为所述第三节点发布的公网路由的目的地址分配所述第二SID,以生成去往所述第三节点的公网路由;
向所述第一节点发送所述去往第三节点的公网路由。
20.根据权利要求12-19中任一项所述的方法,其特征在于,所述方法还包括:
接收来自所述第三节点的第四报文,所述第四报文包括所述第一节点的IPv4公网标签和所述第四报文的业务标签;
根据所述第一节点的IPv4公网标签确定所述第一节点的IPv6地址;
根据所述第四报文的业务标签确定对应的第三SID;
向所述第一节点转发第五报文,所述第五报文的段标识列表中包括所述第一节点的IPv6地址和所述第三SID。
21.一种报文传输装置,其特征在于,应用于第一网络的网络边界处的第一节点,所述第一网络支持基于互联网协议第6版的段路由SRv6,所述装置包括:
接收单元,用于接收第一报文;
确定单元,用于根据所述第一报文确定第一段标识SID,所述第一SID用于指示所述第一报文的业务标签;
生成单元,用于根据所述第一报文和所述第一SID生成第二报文,所述第二报文的段标识列表中包括所述第一SID;
发送单元,用于向第二节点转发所述第二报文,所述第二节点位于所述第一网络和第二网络的网络边界,所述第二网络支持多协议标签交换-标签分发协议MPLS-LDP或段路由-多协议标签交换SR-MPLS。
22.根据权利要求21所述的装置,其特征在于,所述第一报文的业务标签用于指示3层虚拟专用网L3VPN业务、2层L2多点业务或2层L2点到点业务中的任一种。
23.根据权利要求21或22所述的装置,其特征在于,所述确定单元具体用于:
根据所述第一报文中的目的地址确定第一路由,所述第一路由是去往所述目的地址的业务路由;
在所述第一路由中确定所述第一SID。
24.根据权利要求23所述的装置,其特征在于,若所述第一路由指示的下一跳是位于所述第二网络边界的第三节点,则
所述确定单元,还用于根据所述第一路由中的下一跳地址确定第二路由,所述第二路由是去往所述第三节点的公网路由;
所述生成单元,具体用于根据所述第一报文、所述第一SID以及所述第二路由中的第二SID,生成所述第二报文,所述第二SID是所述第三节点的SID,所述第二报文的段标识列表中包括所述第二SID。
25.根据权利要求24所述的装置,其特征在于,在所述接收单元接收第一报文之前,所述装置还包括:
获取单元,用于获取所述第一路由。
26.根据权利要求25所述的装置,其特征在于,
所述接收单元,还用于接收路由反射器发送的所述第一路由,所述第一路由是所述路由反射器基于所述第三节点发布的去往所述目的地址的业务路由以及为所述业务路由中的业务标签分配的所述第一SID而生成的路由。
27.根据权利要求25所述的装置,其特征在于,
所述接收单元,还用于接收所述第三节点发布的去往所述目的地址的业务路由;
所述生成单元,具体用于为所述业务路由中的业务标签分配所述第一SID,以生成所述第一路由。
28.根据权利要求27所述的装置,其特征在于,
所述获取单元,还用于获取所述第二路由;
所述装置还包括建立单元,用于根据所述第二路由建立与所述第三节点之间的邻居关系;
所述接收单元,具体用于基于所述邻居关系,接收所述第三节点发布的所述业务路由。
29.根据权利要求28所述的装置,其特征在于,所述第二网络支持MPLS-LDP,
所述接收单元,还用于接收所述第二节点发送的所述第二路由,所述第二路由为所述第二节点基于所述第三节点发布的公网路由以及为所述第三节点的公网路由的目的地址分配的所述第二ID而生成的路由。
30.根据权利要求28所述的装置,其特征在于,所述第二网络支持SR-MPLS,
所述接收单元,还用于接收所述第一网络的控制器发送的所述第二路由,所述第二路由为所述控制器基于所述第三节点发布的公网路由以及为所述第三节点的公网路由的目的地址分配的所述第二ID而生成的路由。
31.根据权利要求28-30中任一项所述的装置,其特征在于,
所述发送单元,还用于通过所述第二节点,向所述第三节点发布所述第一节点的IPv4公网路由和所述第一节点的业务路由。
32.一种报文传输装置,其特征在于,应用于第一网络和第二网络的网络边界处的第二节点,所述第一网络支持基于互联网协议第6版的段路由SRv6,所述第二网络支持多协议标签交换-标签分发协议MPLS-LDP或段路由-多协议标签交换SR-MPLS;所述装置包括:
接收单元,用于接收第一节点发送的第二报文,所述第一节点位于所述第一网络的网络边界,所述第二报文的段标识列表中包括第一段标识SID和第二SID,所述第一SID和所述第二SID是所述第一节点根据接收到的第一报文确定的;
确定单元,用于根据所述第一SID确定对应的业务标签,所述业务标签是所述第二报文的业务标签;以及,根据所述第二SID确定对应的公网标签,所述公网标签用于向所述第三节点转发报文,所述第三节点位于所述第二网络的网络边界;
发送单元,用于向所述第三节点发送第三报文,所述第三报文包括所述业务标签和所述公网标签。
33.根据权利要求32所述的装置,其特征在于,所述第二报文的业务标签用于指示3层虚拟专用网L3VPN业务、2层L2多点业务或2层L2点到点业务中的任一种。
34.根据权利要求32或33所述的装置,其特征在于,
所述确定单元,具体用于基于所述第一SID确定所述业务标签,所述业务标签为去除所述第一SID的第一预设前缀而获得的值。
35.根据权利要求32或33所述的装置,其特征在于,
所述确定单元,具体用于根据所述第一SID和第一对应关系,确定所述业务标签;所述第一对应关系用于指示所述第一SID和所述业务标签的对应关系。
36.根据权利要求32-35中任一项所述的装置,其特征在于,所述确定单元还具体用于:
基于所述第二SID确定与所述第二SID对应的第三节点的地址,所述第三节点的地址为去除所述第二SID的第二预设前缀而获得的值;
基于所述第三节点的地址和去往所述第三节点的公网路由,确定去往所述第三节点的下一跳节点的公网标签。
37.根据权利要求32-35中任一项所述的装置,其特征在于,
所述确定单元,还具体用于根据所述第二SID和第二对应关系,确定去往所述第三节点的下一跳节点的公网标签,所述第二对应关系用于指示所述第二SID和所述第三节点公网标签的对应关系。
38.根据权利要求32-37中任一项所述的装置,其特征在于,在所述接收单元接收第一节点发送的所述第二报文之前,所述发送单元还用于:
向所述第三节点发布所述第一节点的IPv4公网路由和所述第一节点的业务路由。
39.根据权利要求32-38中任一项所述的装置,其特征在于,在所述接收单元接收第一节点发送的所述第二报文之前,
所述接收单元,还用于接收所述第三节点发布的公网路由;
所述装置还包括生成单元,用于为所述第三节点发布的公网路由的目的地址分配所述第二SID,以生成去往所述第三节点的公网路由;
所述发送单元,还用于向所述第一节点发送所述去往第三节点的公网路由。
40.根据权利要求32-39中任一项所述的装置,其特征在于,
所述接收单元,还用于接收来自所述第三节点的第四报文,所述第四报文包括所述第一节点的IPv4公网标签和所述第四报文的业务标签;
所述确定单元,还用于根据所述第一节点的IPv4公网标签确定所述第一节点的IPv6地址;以及,根据所述第四报文的业务标签确定对应的第三SID;
所述发送单元,还用于向所述第一节点转发第五报文,所述第五报文的段标识列表中包括所述第一节点的IPv6地址和所述第三SID。
41.一种报文传输装置,其特征在于,包括:存储器、网络接口和一个或多个处理器,所述一个或多个处理器通过所述网络接口接收或发送数据,所述一个或多个处理器被配置为读取存储在所述存储器中的程序指令,以执行如权利要求1-11或12-20中任一项所述的方法。
42.一种第一网络,其特征在于,所述第一网络支持基于互联网协议第6版的段路由SRv6,所述第一网络包括第一节点和第二节点,其中,
所述第一节点位于所述第一网络的网络边界,并用于执行如权利要求1-11中任一项所述的方法;
所述第二节点位于所述第一网络和第二网络的网络边界,并用于执行如权利要求12-20中任一项所述的方法;所述第二网络支持多协议标签交换-标签分发协议MPLS-LDP或段路由-多协议标签交换SR-MPLS。
43.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括程序指令,当所述程序指令在计算机或处理器上运行时,使得所述计算机或所述处理器执行权利要求1-11或12-20中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2022/131753 WO2023109398A1 (zh) | 2021-12-13 | 2022-11-14 | 一种报文传输方法及装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111513686 | 2021-12-13 | ||
CN2021115136860 | 2021-12-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116264589A true CN116264589A (zh) | 2023-06-16 |
Family
ID=86722789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210192475.XA Pending CN116264589A (zh) | 2021-12-13 | 2022-02-28 | 一种报文传输方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116264589A (zh) |
WO (1) | WO2023109398A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110830352B (zh) * | 2018-08-07 | 2022-09-23 | 中兴通讯股份有限公司 | 一种vpn跨域的实现方法、装置和边界节点 |
WO2020048493A1 (en) * | 2018-09-05 | 2020-03-12 | Huawei Technologies Co., Ltd. | Segment routing in mpls network |
US11134002B2 (en) * | 2018-10-22 | 2021-09-28 | Cisco Technology, Inc. | Packet network interworking including segment routing |
CN110266592B (zh) * | 2019-06-21 | 2021-07-30 | Ut斯达康通讯有限公司 | Srv6网络与ip mpls网络的通信方法及装置 |
-
2022
- 2022-02-28 CN CN202210192475.XA patent/CN116264589A/zh active Pending
- 2022-11-14 WO PCT/CN2022/131753 patent/WO2023109398A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023109398A1 (zh) | 2023-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111742525B (zh) | 多云vpc路由和注册 | |
US10938714B2 (en) | Communication between distinct network domains | |
CN111865898B (zh) | 基于流规则协议的通信方法、设备和系统 | |
CN113411243B (zh) | 数据传输方法及装置 | |
CN112087386B (zh) | 一种报文处理的方法、设备和系统 | |
CN110912796B (zh) | 一种通信方法、设备和系统 | |
CN113259238B (zh) | 分段标识的处理方法及设备 | |
WO2015192501A1 (zh) | 地址信息的发布方法及装置 | |
CN112511444A (zh) | 一种组播流量传输方法、装置、通信节点及存储介质 | |
CN108718269B (zh) | 报文处理方法及装置 | |
US20230300070A1 (en) | Packet Sending Method, Device, and System | |
EP4102807A1 (en) | Tunnel establishment method, apparatus, and system | |
EP3054634A1 (en) | Scheme for performing one-pass tunnel forwarding function on two-layer network structure | |
WO2022110535A1 (zh) | 一种报文发送方法、设备及系统 | |
CN113206787B (zh) | 分段标识的处理方法及设备 | |
JP2020529762A (ja) | アドレス空間統合を通じた仮想化されたネットワーク機能 | |
WO2023045871A1 (zh) | 报文处理方法、网络设备及系统 | |
CN112511427A (zh) | 段路由业务处理方法、装置、路由设备及存储介质 | |
WO2023011149A1 (zh) | 一种基于第6版互联网协议的段路由SRv6的通信方法 | |
CN112737954B (zh) | 报文处理方法、装置、系统、设备及存储介质 | |
US8929366B2 (en) | Method and apparatus for transporting packets with specific traffic flows having strict packet ordering requirements over a network using multipath techniques | |
WO2021073357A1 (zh) | 报文处理方法、装置、系统、设备及存储介质 | |
CN114598635A (zh) | 报文传输的方法和装置 | |
CN116264589A (zh) | 一种报文传输方法及装置 | |
CN115550252A (zh) | 路由发布和转发报文的方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |