CN112511428A - 报文封装方法、报文转发方法、通告方法、电子设备、和存储介质 - Google Patents

报文封装方法、报文转发方法、通告方法、电子设备、和存储介质 Download PDF

Info

Publication number
CN112511428A
CN112511428A CN202010163666.4A CN202010163666A CN112511428A CN 112511428 A CN112511428 A CN 112511428A CN 202010163666 A CN202010163666 A CN 202010163666A CN 112511428 A CN112511428 A CN 112511428A
Authority
CN
China
Prior art keywords
sid
uet
node
srh
message
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
Application number
CN202010163666.4A
Other languages
English (en)
Inventor
彭少富
刘爱华
冯军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN202010163666.4A priority Critical patent/CN112511428A/zh
Priority to PCT/CN2020/138124 priority patent/WO2021179732A1/zh
Priority to US17/910,451 priority patent/US20230126801A1/en
Publication of CN112511428A publication Critical patent/CN112511428A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/17Shortcut routing, e.g. using next hop resolution protocol [NHRP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/122Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • H04L45/566Routing instructions carried by the data packet, e.g. active networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开提供了一种报文封装方法,包括:确定分段路由‑流量工程SR‑TE路径;根据所述SR‑TE路径中的各个节点的段标识SID生成SID列表,其中,每个所述节点支持多个通用SID封装类型UET,所述节点的多个UET分别对应不同长度的SID,在所述SID列表中,至少作为所述SR‑TE路径的中间节点的节点的SID为该节点对应的多个SID中长度非最长的SID;利用所述SID列表形成分段路由头SRH;利用所述SRH封装初始报文,以获得最终报文。本公开还提供了一种报文转发方法、一种UET通告方法、一种电子设备和一种计算机可读存储介质。所述报文封装方法封装获得的最终报文载荷率较高。

Description

报文封装方法、报文转发方法、通告方法、电子设备、和存储 介质
技术领域
本公开实施例涉及数据通信领域,具体地,涉及一种报文封装方法、一种报文转发方法、一种UET通告方法、一种电子设备和一种计算机可读存储介质。
背景技术
分段路由(SR,Segment Routing)技术室一种基于源节点进行路由的方法,通常,源节点在数据报文外附加一层有序的指令(或者称为有序的段标识(SID,SegmentIdentifier),简称段)列表信息,在数据面,根据上述有序的SID列表信息逐段进行最短路径转发。当SID列表很长时,会导致报文具有很长的分段路由头(SRH,Segment RoutingHeader),降低报文的载荷效率。
公开内容
本公开实施例提供一种报文封装方法、一种报文转发方法、一种UET通告方法、一种电子设备和一种计算机可读存储介质。
第一方面,本公开实施例提供一种报文封装方法,包括:
确定分段路由-流量工程SR-TE路径;
根据所述SR-TE路径中的各个节点的段标识SID生成SID列表,其中,每个所述节点支持多个通用SID封装类型UET,所述节点的多个UET分别对应不同长度的SID,在所述SID列表中,至少作为所述SR-TE路径的中间节点的节点的SID为该节点对应的多个SID中长度非最长的SID;
利用所述SID列表形成分段路由头SRH;
利用所述SRH封装初始报文,以获得最终报文。
第二方面,本公开实施例提供一种报文转发方法,包括:
接收到上一节点发送的最终报文后,对所述最终报文进行解析,以获得SR-TE路径中各个节点的SID列表,其中,所述最终报文为权利要求1所述的封装方法所获得的最终报文;
按照所述SID列表将所述最终报文转发至下一跳节点。
第三方面,本公开实施例提供一种UET通告方法,包括:
将携带有当前节点的UET能力信息通告至网络中;
将携带有当前节点的相应UET能力的SID信息通告至网络中。
第四方面,本公开实施提供一种电子设备,其包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述方法。
第五方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述方法。
在本公开所提供的报文封装方法中,SID列表中所包括的是各个节点多个SID中长度非最长的SID,因此,所述SID列表的长度也相对较短,最终形成的SRH也相对较短,从而提高了所述最终报文中的载荷效率。
附图说明
附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其它特征和优点对本领域技术人员将变得更加显而易见,在附图中:
图1是本公开实施例所提供的报文封装方法的流程图;
图2是ISIS SRv6 Capabilities sub-TLV中新增UET Flag表示不同的SID压缩能力;
图3是OSPFv3 SRv6 Capabilities TLV中新增UET Flag表示不同的SID压缩能力;
图4是由不同压缩域组成的SRv6 domain;
图5是ISIS SRv6 End SID sub-TLV中新增UET Flag表示每UET每SID的分配和通告;
图6是OSPFv3 SRv6 End SID Sub-TLV中新增UET Flag表示每UET每SID的分配和通告;
图7是扩展SRv6 SRH新增UET Flag以及混编不同长度的SID的封装格式图;
图8是具体实施例一、二的网络拓扑图;
图9是具体实施例三的网络拓扑图;
图10是具体实施例四的网络拓扑图
图11是本公开所提供的报文转发方法的流程图。
具体实施方式
为使本领域的技术人员更好地理解本公开的技术方案,下面结合附图对本公开提供的一种报文封装方法、一种报文转发方法、一种UET通告方法、一种电子设备和一种计算机可读存储介质进行详细描述。
在下文中将参考附图更充分地描述示例实施例,但是所述示例实施例可以以不同形式来体现且不应当被解释为限于本文阐述的实施例。反之,提供这些实施例的目的在于使本公开透彻和完整,并将使本领域技术人员充分理解本公开的范围。
在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
在相关技术中,分段路由可以应用于多协议标签交换(MPLS,Multi-ProtocolLabel Switching)的数据平面、以及IPv6的数据平面。分段路由应用于MPLS的数据平面时被称为SR-MPLS,分段路由应用于IPv6的数据平面时被称为SRv6。在一标准中描述了通过在报文外叠加一层有序的段列表(也被称为MPLS标签栈)的方式,将分段路由应用于MPLS的数据面。在另一标准中描述了通过在报文外叠加一层有序的短列表(即,一串IPv6地址列表)的方式,将分段路由应用于IPv6的数据面。可以看出,当指令列表较长时,上述两种技术都会导致报文头过长,严重降低报文的载荷效率。特别是对于SRv6,在报文头中引入SRH时包含一串必选的IPv6地址列表,很大程度地限制了具体产品的实现。
本公开的核心思想是在SRH中引入一种更短小的SID,如64比特、或32比特、或16比特、或8比特的SID等,这些短小的SID称之为压缩SID,以替代现有的128比特的经典SRv6SID。其中,采用32比特的SID相比于现有128比特的SID,压缩效果将提升4倍,并且更适用于当前业界的主流芯片处理能力,也十分便于相应的控制面的协议扩展,因此本专利建议采用32比特的短小SID并主要基于此讨论,但是讨论的方案同样适用于其它长度的SID。
本公开的另一核心思想是支持多种长度的SID的混编,即SRH中同时包含多种不同长度的SID,以适应网络逐步升级改造的现实,如SID List中,一部分SID为128比特的经典SRv6 SID,一部分SID为32比特的压缩SID,一部分SID为16比特的压缩SID。为了达到这种灵活的混编效果,发生SID长度变化的边界节点上,需要显式的给出SID长度变化提示,为此,我们将讨论如何扩展控制面协议,便于端到端构建SID List时确定段列表内的SID长度发生变化的边界节点,并由边界节点负责对SRH的解封装从一种SID长度切换到另一种SID长度。
有鉴于此,作为本公开的第一个方面,提供一种报文封装方法,如图1所示,所述报文封装方法包括:
在步骤S110中,确定分段路由-流量工程SR-TE路径;
在步骤S120中,根据所述SR-TE路径中的各个节点的段标识SID生成SID列表,其中,每个所述节点支持多个通用SID封装类型UET,所述节点的多个UET分别对应不同长度的SID,在所述SID列表中,至少作为所述SR-TE路径的中间节点的节点的SID为该节点对应的多个SID中长度非最长的SID;
在步骤S130中,利用所述SID列表形成分段路由头SRH;
在步骤S140中,利用所述SRH封装初始报文,以获得最终报文。
需要指出的是,所述最终报文为业务报文,所述SR-TE路径包括转发所述业务报文时所经过的多个节点,这多个节点包括头结点、至少一个中间节点和尾节点。
本公开所提供的报文封装方法可以由SR-TE路径中的头结点执行。每个节点都支持多个UET,并且,每个节点可以为自身不同的UET设置长度不同的SID。
在本公开所提供的报文封装方法中,SID列表中所包括的是各个节点多个SID中长度非最长的SID,因此,所述SID列表的长度也相对较短,最终形成的SRH也相对较短,从而提高了所述最终报文中的载荷效率。
下面参照图8对本公开所提供的生成方法进行解释。
如图8中所示,转发报文的SR-TE路径为S节点→A节点→B节点→C节点→D节点。
在相关技术中,SR-TE路径中的每个节点的SID长度均为128比特。在本公开所提供的生成方法中,SR-TE路径中,A节点的SID长度为32比特,C节点的SID长度为64比特,D节点的SID长度可以为128比特。由此可知,利用本公开所提供的生成方法最终生成的SID列表的长度小于相关技术中生成的SID列表的长度。
下面以SRv6网络为例,对本公开进行详细的介绍。
SRv6网络中,各节点可以配置自身所支持的SID压缩能力,并将SID压缩能力对外通告,使得网络中所有节点都能学习到其它节点的SID压缩能力。本文将SID压缩能力称之为UET(Unified-SID Encapsulation Type,通用SID封装类型),例如,各个节点可以配置支持以下UET:
UET(0):仅支持采用现有的128比特的IPv6地址作为SID,即现有的经典SRv6 SID。
UET(1):除了支持采用现有的128比特的IPv6地址作为SID,还支持采用32比特的IPv4地址或数值作为SID。
UET(2):除了支持采用现有的128比特的IPv6地址作为SID,还支持采用32比特的MPLS Label作为SID。32比特的高20比特存放MPLS Label,低12比特存放其它辅助信息。
UET(3):除了支持采用现有的128比特的IPv6地址作为SID,还支持采用64比特的数值作为SID。
UET(4):除了支持采用现有的128比特的IPv6地址作为SID,还支持采用16比特的数值作为SID。
UET(5):除了支持采用现有的128比特的IPv6地址作为SID,还支持采用8比特的数值作为SID。
当然,本公开并不限于此。
作为本公开的另一个方面,提供一种UET通告方法,包括:
将携带有当前节点UET的属性广播至网络中。
如前所述,考虑到当前业内芯片能力以及控制面协议的扩展便利,采用32比特的短小SID更具优势。所以一般情况下,某个SRv6节点可能会配置同时支持压缩能力UET(0)和UET(1),另外某个SRv6节点可能会配置同时支持压缩能力UET(0)和UET(2)。即各SRv6节点对经典的128比特的SRv6 SID是必须支持的,在此基础上再引入支持各有特色的更短小的压缩SID的能力。当然,理论上,某个SRv6节点,比如边界节点,可能会配置同时支持更丰富的压缩能力UET(0)、UET(1)、UET(2)、UET(3)、UET(4)、UET(5)等,以便于该边界节点上实施不同长度的SID的切换。
在控制平面扩展现有协议以通告SID压缩能力的具体实施方式如下:
1)draft-ietf-lsr-isis-srv6-extensions-05定义了ISIS(IntermediateSystem to Intermediate System中间系统至中间系统协议)扩展支持SRv6,各节点可对外通告自身的SRv6能力,这是通过在RFC7981中定义的router capabilities TLV中包含一个新的SRv6 Capabilities sub-TLV。本专利将在SRv6 Capabilities sub-TLV中,继续携带SID压缩能力信息。如图2所示,在SRv6 Capabilities sub-TLV的Flags字段中,新定义一个占两个比特的UET Flag,以支持通告各种典型的SID压缩能力,UET Flag的取值和含义如下:
0b00:仅支持采用现有的128比特的IPv6地址作为SID。
0b01:除了支持采用现有的128比特的IPv6地址作为SID以外,还支持采用32比特的IPv4地址或数值作为SID。
0b10:除了支持采用现有的128比特的IPv6地址作为SID以外,还支持采用32比特的MPLS Label作为SID。32比特的高20比特存放MPLS Label,低12比特(称为ContextField)存放其它辅助信息。
0b11:支持上述所有能力。
2)draft-ietf-lsr-ospfv3-srv6-extensions-00定义了OSPFv3(Open ShortestPath First开放最短路径优先)扩展支持SRv6,各节点可对外通告自身的SRv6能力,这是通过在RFC7770中定义的OSPFv3 Router Information LSA中包含一个新的SRv6Capabilities TLV。本专利将在SRv6 Capabilities TLV中,继续携带SID压缩能力信息。如图3所示,在SRv6 Capabilities TLV的Flags字段中,新定义一个占两个比特的UET Flag,以支持通告各种典型的SID压缩能力,UET Flag的取值和含义参考上述ISIS部分,不再赘述。
3)类似地,draft-ietf-idr-bgpls-srv6-ext-02定义了BGP-LS(North-BoundDistribution of Link-State and Traffic Engineering information Using BGP,使用BGP通告链路状态与TE信息,见RFC7752)扩展SRv6,以支持将网络中各节点SRv6信息上报给控制器。本公开所提供的通告方法中,将在上报的SRv6能力信息中新增携带SID压缩能力信息,便于控制器在将端到端的路径计算结果翻译成SID List时,感知路径所经过的所有节点的SID压缩能力信息,识别出连接不同压缩SID类型的边界节点,然后选择合适类型的SID。BGP-LS中定义的SRv6 Capabilities TLV以及新增携带SID压缩能力信息与上述IGP类似,具体扩展不再赘述。
SRv6网络中,各节点可根据自身所支持的SID压缩能力,按照每SID压缩能力每SRV6 SID的分配方式来申请SID,即每个SRv6 SID都有特定的UET属性,并将这种具有UET属性的SID对外通告,使得网络中所有节点都能学习到其它节点的SID。
如图4所示,整个SRv6 domain中,由于网络中局部区域升级支持压缩能力,使得整个SRv6 domain中包含三个使用不同长度的压缩SID的sub-domain。比如,ABR1同时支持UET(0)和UET(1),则它可以针对这两种UET分配两类SID,比如以END SID为例,ABR1可以针对UET(0)分配END SID abr1-sid1,针对UET(1)分配END SID abr1-sid2;类似的,ABR2同时支持UET(0)和UET(2),则它可以针对UET(0)分配END SID abr2-sid1,针对UET(2)分配ENDSID abr2-sid2。其它类型的SID,如END.X等与拓扑相关的SID,以及与Service Function相关的SID,都可以针对不同UET分配不同的SID。理论上,所有类型的SID都可以针对不同UET分配不同的SID,但是考虑到实际情况,与overlay VPN(Virtual Private Network虚拟私有网络)业务类型相关的SID(如L3VPN、EVPN业务相关的SID)一般出现在SID List尾部,此时并不涉及到处理SID长度发生变化的情况,所以与overlay业务类型相关的SID不建议针对不同UET分配不同的SID,以节约SID资源。
SRv6节点在分配具有特定UET属性的SID后,将在本地创建相应的Local SID表项,在Local SID表项的Function处理中,明确的给出UET属性。
SRH中所包含的SID List中,对于某个具有特定UET属性的SID,将提示了跟在它之后的SID,即Next SID,是采用哪种压缩SID方式,比如UET属性值为0则Next SID为现有的128比特的IPv6地址,UET属性值为1则Next SID为32比特的IPv4地址或数值,UET属性值为2则Next SID为32比特的MPLS Label,等等。
在控制平面扩展现有协议以通告每UET每SID的具体实施方式如下:
1)draft-ietf-lsr-isis-srv6-extensions-05定义了ISIS扩展支持SRv6,各节点可对外通告自身分配的SID。其中,引入SRv6 Locator TLV,并在其中包含SRv6 End SIDsub-TLV携带END SID;引入SRv6 End.X SID sub-TLV携带点到点链路的END.X SID;引入SRv6 LAN End.X SID sub-TLV携带广播链路的LAN END.X SID。本公开继续在现有的SID通告中新增UET属性,如图5所示,在SRv6 End SID sub-TLV的Flags字段中,新定义一个占两个比特的UET Flag,以表示该END SID所具有的UET属性。UET Flag的取值和含义如下:
0b00:表明Next SID为128比特的IPv6地址。
0b01:表明Next SID为32比特的IPv4地址或数值。
0b10:表明Next SID为32比特的MPLS Label。
0b11:保留,未定义。
类似的,可分别在SRv6 End.X SID sub-TLV和SRv6 LAN End.X SID sub-TLV的Flags字段中,新定义一个占两个比特的UET Flag,以表示相应END.X SID或LAN END.X SID所具有的UET属性,具体不再赘述。
说明:对于UET(1)类型的SID通告,还应该提供将32比特的IPv4地址或数值转换成128比特的经典SRv6 SID的方法的信息,当前draft-ietf-lsr-isis-srv6-extensions-05中已经定义了SRv6 SID Structure Sub-Sub-TLV,作为sub-sub-TLV包含于上述SRv6 EndSID sub-TLV、SRv6 End.X SID sub-TLV和SRv6 LAN End.X SID sub-TLV中,提供了相应SID的具体结构,包括SRv6 SID Locator Block的长度、SRv6 SID Locator Node的长度、SRv6 SID Function的长度、SRv6 SID Arguments的长度,以比特为单位。所以现有技术揭示了一种很直观的转换方法,就是在特定的地址规划下,UET(1)类型的128比特的SRv6 SID中,高比特位部分为SRv6 SID Locator Block(SRv6 SID Locator Block是SRv6 domain内所有节点具有的公共地址部分),紧接着的32比特就是由SRv6 SID Locator Node、SRv6SID Function以及SRv6 SID Arguments三者构成,其余位补零。换句话说,在SID List中,某个具有UET(1)属性的128比特的经典SRv6 SID sid1,提示了Next SID sid2是一个32比特的IPv4地址或数值,则将Next SID sid2转换成完整128比特的经典SRv6 SID sid2’的方法是,sid2’的高比特位部分由sid1的高比特位部分提供的SRv6 SID Locator Block信息,紧接着的32比特是由sid2提供的SRv6 SID Locator Node、SRv6 SID Function以及SRv6SID Arguments信息(可能有些信息本身为0),其余位补零。
2)draft-ietf-lsr-ospfv3-srv6-extensions-00定义了OSPFv3扩展支持SRv6,各节点可对外通告自身分配的SID。其中,引入SRv6 Locator LSA以及SRv6 Locator TLV,并在SRv6 Locator TLV中包含SRv6 End SID Sub-TLV携带END SID;引入SRv6 End.X SIDSub-TLV携带点到点链路的END.X SID;引入SRv6 LAN End.X SID Sub-TLV携带广播链路的LAN END.X SID。本专利继续在现有的SID通告中新增UET属性,如图6所示,在SRv6 End SIDSub-TLV的Flags字段中,新定义一个占两个比特的UET Flag,以表示该END SID所具有的UET属性。UET Flag的取值和含义参考上述ISIS部分,不再赘述。
类似的,可分别在SRv6 End.X SID Sub-TLV和SRv6 LAN End.X SID Sub-TLV的Flags字段中,新定义一个占两个比特的UET Flag,以表示相应END.X SID或LAN END.X SID所具有的UET属性,具体不再赘述。
3)draft-ietf-idr-bgpls-srv6-ext-02定义了BGP-LS扩展SRv6,以支持将网络中各节点SRv6信息上报给控制器。其中,引入了SRv6 SID NLRI、SRv6 SID Information TLV、SRv6 Endpoint Behavior TLV,并在SRv6 SID Information TLV中包含END SID,在SRv6Endpoint Behavior TLV中包含END SID所具有的属性;引入SRv6 End.X SID TLV在点到点链路属性中携带END.X SID;引入SRv6 LAN End.X SID TLV在广播链路属性中携带LANEND.X SID。本专利在上述上报的SRv6 SID信息中新增UET属性,即分别在SRv6 EndpointBehavior TLV的Flags字段中,SRv6 End.X SID TLV的Flags字段中,以及SRv6 LAN End.XSID TLV的Flags字段中,新定义一个占两个比特的UET Flag,以表示相应SID所具有的UET属性,具体扩展与前述IGP类似,不再赘述。使得控制器在将端到端的路径计算结果翻译成SID List时,可以根据需要选择合适的具有特定UET属性的SID。
对于使用UET(2)(即采用32比特的MPLS Label作为SID)的压缩域内的节点,理论上也可以类似上述SRv6 SID的分配一样,按照每UET每SR-MPLS SID的分配方式来申请SR-MPLS SID,比如图4中,ABR2节点可以针对UET(0)分配SR-MPLS Prefix-SID abr2-node-sid1,针对UET(2)分配SR-MPLS Prefix-SID abr2-node-sid2,但是这种方式将十分浪费宝贵的MPLS标签资源。实际上,在SRH的SID List中,每个MPLS Label类型的SID只占20比特,剩下的12比特(Context Field)中可以存放UET信息,以提示Next SID是什么类型的SID,具体可参考图7。
SRv6网络中,如图4所示,头节点S(或请求控制器)可以计算一条从头节点S至目的节点D的SR-TE(Segment Routing Traffic Engineering分段路由流量工程)路径,所述路径可以穿越多个具有不同UET的压缩sub-domain,相应的SR-TE路径需要采用合适的具有特定UET属性的SID组成的SID List。假设从S至D的SR-TE路径对应的Segment List为<X,ABR1,Y,ABR2,Z,D>,由多个松散节点组成,在没有采用任何压缩方案的现有技术中,这条Segment List会被翻译成SID List<128bits-end-sid-x,128bits-end-sid-abr1,128bits-end-sid-y,128bits-end-sid-abr2,128bits-end-sid-z,128bits-end-sid-d>,然而,考虑本专利所讨论的各压缩sub-domain的能力,头节点或控制器知道节点S/X/ABR1具备UET(1)的压缩能力,节点ABR1/Y/ABR2具备UET(0)的压缩能力,以及节点ABR2/Z/D具备UET(2)的压缩能力,即可推断出节点ABR1是两种不同压缩域(UET(1)和UET(0))的边界节点,节点ABR2是两种不同压缩域(UET(0)和UET(2))的边界节点,再根据各节点对外通告的每UET每SID信息,则这条Segment List实际上可表示为<X(含UET(1)属性),ABR1(含UET(0)属性),Y(含UET(0)属性),ABR2(含UET(2)属性),Z(含UET(2)属性),D(含UET(0)属性)>,注意上述UET属性提示了Next SID的类型,因此可以翻译成由部分更短小SID组成的SID List<32bits-ipv4-x,32bits-ipv4-abr1,128bits-end-sid-y,128bits-end-sid-abr2,32bits-label-z,32bits-label-d>。进一步解释如下:
比如节点X分配的END SID,即128bits-end-sid-x,相应的local SID表项中其UET属性为UET(1),以提示Next SID,即32bits-ipv4-abr1,是一个32比特的IPv4地址或数值。
注意S节点上需要先将上述更短小的32bits-ipv4-x(一个32比特的IPv4地址)转换成128bits-end-sid-x(一个完整的128比特的经典SRv6 END SID)后拷贝到IPv6 Header的DA(Destination Address)字段中,然后引导报文向X节点转发,具体转换方法可以是将32bits-ipv4-x结合128bits-end-sid-s(一个完整的128比特的经典SRv6 END SID,且具有UET(1)属性),即128bits-end-sid-x的高比特位部分由128bits-end-sid-s的高比特位部分提供,紧接着的32比特由32bits-ipv4-x提供,其余位补零。或者更简洁的一种具体实现是,节点S其实已经知道SID List的第一个SID是128bits-end-sid-x,它直接将128bits-end-sid-x拷贝到IPv6 Header的DA字段中,只不过在SRH中的逻辑上的第一个SID填写的是32bits-ipv4-x。
比如节点ABR1分配的END SID,即128bits-end-sid-abr1,相应的local SID表项中其UET属性为UET(0),以提示Next SID,即128bits-end-sid-y,是一个128比特的经典SRv6 SID。注意X节点上同样也需要先将上述更短小的32bits-ipv4-abr1转换成128bits-end-sid-abr1后拷贝到IPv6 Header的DA(Destination Address)字段中,然后引导报文向节点ABR1转发。具体转换方法可以是将32bits-ipv4-abr1结合128bits-end-sid-x(一个完整的128比特的经典SRv6 END SID,且具有UET(1)属性),即128bits-end-sid-abr1的高比特位部分由128bits-end-sid-x的高比特位部分提供,紧接着的32比特由32bits-ipv4-abr1提供,其余位补零。
比如节点Y分配的END SID,即128bits-end-sid-y,相应的local SID表项中其UET属性为UET(0),以提示Next SID,即128bits-end-sid-abr2,是一个128比特的经典SRv6SID。
比如节点ABR2分配的END SID,即128bits-end-sid-abr2,相应的local SID表项中其UET属性为UET(2),以提示Next SID,即32bits-label-z,是一个32比特的MPLS Label。
比如节点Z分配的MPLS Label,即32bits-label-z,其本身与UET无关,在SRH的SIDList中,SID 32bits-label-z的Context Field中存放了相应的UET属性为UET(2),以提示Next SID,即32bits-label-d,是一个32比特的MPLS Label。注意节点ABR2需要先将上述32bits-label-z映射成128比特的IPv6地址后,拷贝到IPv6 Header的DA(DestinationAddress)字段中,然后引导报文向Z节点转发,具体映射方法可以是查找相应的ILM(Incoming Label Map,入标签映射)表项,从ILM表项中获取FEC信息,比如Prefix FEC提供了至远端节点的IPv6地址,Adjacency FEC提供了至链路对端接口的IPv6地址。
比如节点D分配的MPLS Label,即32bits-label-d,其本身与UET无关,在SRH的SIDList中,SID 32bits-label-d的Context Field中存放了相应的UET以提示Next SID的类型。比如,如果在SRH的SID List的尾部还存在一个VPN业务相关的128比特的经典SRv6SID,则此时SID 32bits-label-d的Context Field中存放的UET为UET(0)。注意节点Z同样需要先将上述32bits-label-d映射成128比特的IPv6地址后,拷贝到IPv6 Header的DA字段中,然后引导报文向D节点转发。
如果SR-TE路径是由控制器计算,则控制器需要将路径计算结果(SID List)下发给头节点S,在下发的SID List中,要给出每个SID的UET属性,便于头节点在为报文封装SRH时采用压缩后的SID,并将这些SID有序的拼装在SRH中。
扩展SDN南向通道使得从控制器下发路径计算结果中携带UET属性的具体实施方式如下:
1)draft-ietf-pce-segment-routing-ipv6-03定义了PCEP通道下发SRv6 TEtunnel,其中引入了SRv6-ERO Subobject以携带经典128比特的SRv6 SID,本专利在其中的Flags字段中,新定义一个占两个比特的UET Flag,以表示相应SID所具有的UET属性,具体扩展以及UET属性的取值与含义,与前述类似,不再赘述。
另外,RFC8664定义了PCEP通道下发SR-MPLS TE tunnel,其中引入了SR-EROSubobject以携带SR-MPLS SID,本专利认为一条穿越多个采用不同UET压缩域的端到端的SID List中,可能会同时包含经典SRv6 SID,32比特长度的IPv4地址或数值表示的SID,以及32比特长度的MPLS Label表示的SID,基于这种原因,本专利也将在SR-ERO Subobject的Flags字段中,新定义一个占两个比特的UET Flag,以表示相应SID所具有的UET属性,具体扩展以及UET属性的取值与含义,与前述类似,不再赘述。
2)draft-ietf-idr-segment-routing-te-policy-08定义了BGP通道下发SR-MPLSpolicy或SRv6 TE policy,其中引入了Segment sub-TLV以携带各种类型的Segment,当前已知的为Type A~Type K,本专利在这些类型的Segment的Flags字段中,均新定义一个占两个比特的UET Flag,以表示相应Segment所具有的UET属性,具体扩展以及UET属性的取值与含义,与前述类似,不再赘述。
比如针对图4所示的从S至D的SR-TE路径,控制器计算得到对应的Segment List为<X,ABR1,Y,ABR2,Z,D>,然后根据各节点的压缩能力以及各节点对外通告的每UET每SID信息,向头节点S下发SID List<128bits-end-sid-x(含UET(1)属性),128bits-end-sid-abr1(含UET(0)属性),128bits-end-sid-y(含UET(0)属性),128bits-end-sid-abr2(含UET(2)属性),32bits-label-z(含UET(2)属性),32bits-label-d(含UET(0)属性)>,注意上述UET属性提示了Next SID的类型,则头节点在为报文封装SRH时,可采取短小长度的SID组成的SID List<32bits-ipv4-x,32bits-ipv4-abr1,128bits-end-sid-y,128bits-end-sid-abr2,32bits-label-z,32bits-label-d>。
SRv6网络中,如图4所示,针对上述从S至D的SRv6-TE路径,其对应的Segment List为<X,ABR1,Y,ABR2,Z,D>。VPN业务报文在沿该SR-TE路径转发时,头节点S将为报文封装SRH时,可以采取短小长度的SID组成的SID List<32bits-ipv4-x,32bits-ipv4-abr1,128bits-end-sid-y,128bits-end-sid-abr2,32bits-label-z,32bits-label-d,128bits-vpn-sid>。在SRH封装时,为了兼容现有的SRv6基于128比特长度SID的封装方式,本专利提出如下的封装方法:
1)在现有SRH的Flags字段中,新定义一个占两个比特的UET Flag(记为SRH.UET),见图7,以表示当前报文所处的压缩域类型。SRH.UET的取值和含义如下:
0b00:表明当前压缩域为采用128比特的IPv6地址作为SID的压缩方式。
0b01:表明当前压缩域为采用32比特的IPv4地址或数值作为SID的压缩方式。
0b10:表明当前压缩域为采用32比特的MPLS Label作为SID的压缩方式。
0b11:保留,未定义。
2)以经典的128比特为基本单元,各相邻的短小SID可以拼装在一起放在128比特的基本单元中,空闲的位补零。
如图7所示,是SID List<32bits-ipv4-x,32bits-ipv4-abr1,128bits-end-sid-y,128bits-end-sid-abr2,32bits-label-z,32bits-label-d,128bits-vpn-sid>的具体封装示例。注意按照draft-ietf-6man-segment-routing-header-26的定义,SRH中的SIDList(记为SRH.List[])采用逆序存放,所以SRH.List[0]中存放是的逻辑上的最后一个SID,即128bits-vpn-sid,List[4]中存放是的逻辑上的第一个SID,即由条目32bits-ipv4-x、32bits-ipv4-abr1以及两个补零的32位比特条目组成。此时表明SRH.List中包含有5个128比特的基本单元,则SRH中的Segment Left(记为SRH.SL)初始值为5。SRH.UET将初始设置为0b01,以反映逻辑上第一个SID(即32bits-ipv4-x)所采用的压缩类型UET(1)。
注意在32bits-label-z的低12bit的Context Field字段中,设置了UET属性为0b10,提示下一个SID为32比特的MPLS Label;在32bits-label-d的低12bit的ContextField字段中,设置了UET属性为0b00,提示下一个SID为128比特的经典SRv6 SID。见图7所示。
注意32比特的IPv4地址表示的SID可以和32比特的MPLS Label表示的SID放在同一个128比特的基本单元中,后续的具体实施例中,将讨论这种情况。
本公开还提供一种报文转发方法,具体地,如图11所示,所述报文转发方法包括:
在步骤S210中,接收到上一节点发送的最终报文后,对所述最终报文进行解析,以获得SR-TE路径中各个节点的SID列表,其中,所述最终报文为本公开所提供的上述封装方法所获得的最终报文;
在步骤S220中,按照所述SID列表将所述最终报文转发至下一跳节点。
接下来将详细讨论报文从头节点S出发向逻辑上第一个Segment Node(即节点X)转发的情况。由于SRH.UET为0b01,表示当前处于UET(1)类型的压缩域中,此类型的压缩域中,每个SID只占32比特,它只有128比特的经典SRv6 SID的四分之一,而初始SRH.SL(等于5)的值表示的是剩余有多少个128比特的经典SRv6 SID需要处理,所以首先需要将SRH.SL翻4倍后更新其值,即SRH.SL=SRH.SL*4,得到SRH.SL=20。
然后获取SRH中的逻辑上的第一个SID,即顺序执行以下主要代码:
Step1:将SRH.SL减1,SRH.SL变为19;
Step2:读取SRH.List[SRH.SL],得到32bits-ipv4-x,注意SRH.UET提示当前处于UET(1)类型的压缩域中,所以每次从SRH.List[]中读取元素时,只读取32比特;
Step3:将32bits-ipv4-x转换成128bits-end-sid-x,然后拷贝到外层IPv6Header的DA字段中,转换方法见前所述;
Step4:根据外层IPv6 Header的DA,查找路由表转发报文,报文将向节点X转发。
报文到达节点X时,根据当前DA等于128bits-end-sid-x,命中本地的local SID表项,此local SID表项中给出了UET属性为UET(1),将它更新至SRH.UET,则Next SID仍然为一个32比特的IPv4地址,所以节点X将顺序执行以下主要代码:
Step1:将SRH.SL减1,SRH.SL变为18;
Step2:读取SRH.List[SRH.SL],得到32bits-ipv4-abr1,注意SRH.UET提示当前处于UET(1)类型的压缩域中,所以每次从SRH.List[]中读取元素时,只读取32比特;
Step3:将32bits-ipv4-abr1转换成128bits-end-sid-abr1,然后拷贝到外层IPv6Header的DA字段中,转换方法见前所述;
Step4:根据外层IPv6 Header的DA,查找路由表转发报文,报文将向节点ABR1转发。
报文到达节点ABR1时,根据当前DA等于128bits-end-sid-abr1,命中本地的localSID表项,此local SID表项中给出了UET属性为UET(0),将它更新至SRH.UET,则Next SID为一个128比特的经典SRv6 SID,即压缩域将切换为传统经典SRv6域,所以节点ABR1需要先将SRH.SL还原成以128比特的经典SRv6 SID为单位的计数,只需将SRH.SL除以4后取整更新其值,即SRH.SL=SRH.SL/4,得到SRH.SL=4,然后顺序执行以下主要代码:
Step1:将SRH.SL减1,SRH.SL变为3;
Step2:读取SRH.List[SRH.SL],得到128bits-end-sid-y,注意SRH.UET提示当前处于UET(0)类型的压缩域中,所以每次从SRH.List[]中读取元素时,将读取128比特;
Step3:将128bits-end-sid-y拷贝到外层IPv6 Header的DA字段中;
Step4:根据外层IPv6 Header的DA,查找路由表转发报文,报文将向节点Y转发。
说明:以上代码实际上就是当前经典SRv6对SRH的处理,本专利完全兼容之,即UET(0)类型的压缩域中的节点完全感知不到SRH中存在不同长度的SID混编的情况。
报文到达节点Y时,根据当前DA等于128bits-end-sid-y,命中本地的local SID表项,此local SID表项中给出了UET属性为UET(0),将它更新至SRH.UET,则Next SID仍然为一个128比特的经典SRv6 SID,顺序执行以下主要代码:
Step1:将SRH.SL减1,SRH.SL变为2;
Step2:读取SRH.List[SRH.SL],得到128bits-end-sid-abr2,注意SRH.UET提示当前处于UET(0)类型的压缩域中,所以每次从SRH.List[]中读取元素时,将读取128比特;
Step3:将128bits-end-sid-abr2拷贝到外层IPv6 Header的DA字段中;
Step4:根据外层IPv6 Header的DA,查找路由表转发报文,报文将向节点ABR2转发。
说明:以上代码实际上就是当前经典SRv6对SRH的处理。
报文到达节点ABR2时,根据当前DA等于128bits-end-sid-abr2,命中本地的localSID表项,此local SID表项中给出了UET属性为UET(2),将它更新至SRH.UET,则Next SID为一个32比特的MPLS Label,即压缩域将切换为采用MPLS标签压缩的域,此类型的压缩域中,每个SID只占32比特,它只有128比特的经典SRv6 SID的四分之一,而当前SRH.SL(等于2)的值表示的是剩余有多少个128比特的经典SRv6 SID需要处理,所以首先需要将SRH.SL翻4倍后更新其值,即SRH.SL=SRH.SL*4,得到SRH.SL=8,然后顺序执行以下主要代码:
Step1:将SRH.SL减1,SRH.SL变为7;
Step2:读取SRH.List[SRH.SL],得到32bits-label-z,注意SRH.UET提示当前处于UET(2)类型的压缩域中,所以每次从SRH.List[]中读取元素时,只读取32比特;
Step3:获取32bits-label-z的Context Field中保存的UET值0b10,更新至SRH.UET;
Step4:将32bits-label-z映射成IPv6地址(该地址是节点Z上的一个本地地址),然后拷贝到外层IPv6 Header的DA字段中,映射方法见前所述;
Step5:根据外层IPv6 Header的DA,查找路由表转发报文,报文将向节点Z转发。
报文到达节点Z时,根据当前DA命中本地的地址路由表项,不存在对SRH.UET的更新。继续解析SRH,根据SRH.UET为0b10,则Next SID仍然为一个32比特的MPLS Label,则顺序执行以下主要代码:
Step1:将SRH.SL减1,SRH.SL变为6;
Step2:读取SRH.List[SRH.SL],得到32bits-label-d,注意SRH.UET提示当前处于UET(2)类型的压缩域中,所以每次从SRH.List[]中读取元素时,只读取32比特;
Step3:获取32bits-label-d的Context Field中保存的UET值0b00,更新至SRH.UET,表示报文到达节点D之后的压缩域将切换为传统经典SRv6域,所以节点Z需要预先将SRH.SL还原成以128比特的经典SRv6 SID为单位的计数,只需将SRH.SL除以4后取整更新其值,即SRH.SL=SRH.SL/4,得到SRH.SL=1;
Step4:将32bits-label-d映射成IPv6地址,然后拷贝到外层IPv6 Header的DA字段中,转换方法见前所述;
Step5:根据外层IPv6 Header的DA,查找路由表转发报文,报文将向节点D转发。
报文到达节点D时,根据当前DA命中本地的地址路由表项,不存在对SRH.UET的更新。继续解析SRH,根据SRH.UET为0b00,则Next SID为一个128比特的经典SRv6 SID,则顺序执行以下主要代码:
Step1:将SRH.SL减1,SRH.SL变为0;
Step2:读取SRH.List[SRH.SL],得到128bits-vpn-sid,注意SRH.UET提示当前处于UET(0)类型的压缩域中,所以每次从SRH.List[]中读取元素时,将读取128比特;
Step3:将128bits-vpn-sid拷贝到外层IPv6 Header的DA字段中;
Step4:根据外层IPv6 Header的DA,查找路由表转发报文,报文将命中本地的local SID表项,继续按照现有技术处理报文。
根据以上各节点上的处理行为,将通用处理流程的伪代码总结如下,以下仅涉及与本专利相关的关键处理流程:
头节点发送报文的处理流程:
S01.设置SRH.UET的初始值,以反映逻辑上第一个SID所采用的压缩方式;
S02.设置SRH.SL的初始值,等于SRH.List[]中以128比特为单位的SID计数;
S03.if(SRH.UET==0b00){
S04.将SRH.SL减1;
S05.读取128比特的SRH.List[SRH.SL]元素,并拷贝到IPv6 Header的DA字段中;或者头节点在封装SRH之前已经知道SID List信息,则直接拿第一个SID拷贝到IPv6Header的DA字段中;
S06.根据外层IPv6 Header的DA,查找路由表转发报文;
S07.}
S08.else if(SRH.UET==0b01){
S09.将SRH.SL乘以4;
S10.将SRH.SL减1;
S11.读取32比特的SRH.List[SRH.SL]元素,转换成128比特的SRv6 SID后再拷贝到IPv6 Header的DA字段中;或者头节点在封装SRH之前已经知道SID List信息,则直接拿第一个SID拷贝到IPv6 Header的DA字段中;
S12.根据外层IPv6 Header的DA,查找路由表转发报文;
S13.}
S14.else if(SRH.UET==0b10){
S15.将SRH.SL乘以4;
S16.将SRH.SL减1;
S17.读取32比特的SRH.List[SRH.SL]元素,查ILM表将其映射成128比特的IPv6地址后,再拷贝到IPv6 Header的DA字段中;或者头节点在封装SRH之前已经知道SID List信息,则直接拿第一个SID拷贝到IPv6 Header的DA字段中;
S18.根据外层IPv6 Header的DA,查找路由表转发报文;或者直接从匹配的ILM表项中获取转发信息以转发报文;
S19.}
中间节点或尾节点接收报文的处理流程:
S01.根据报文的DA查路由表。如果匹配到local SID表项,则将local SID表项中的UET属性更新到SRH.UET中,如果SRH.UET是从0b00更新到0b01或0b10,则SRH.SL乘以4,如果SRH.UET从0b01或0b10更新到0b00,则SRH.SL除以4;如果匹配到普通的地址路由表项,则SRH.UET无更新;
S02.if(SRH.SL==0){
S03.处理SRH所封装的内层载荷;
S04.}
S05.else{
S06.if(SRH.UET==0b00){
S07.将SRH.SL减1;
S08.读取128比特的SRH.List[SRH.SL]元素,并拷贝到IPv6Header的DA字段中;
S09.根据外层IPv6 Header的DA,查找路由表转发报文;
S10.}
S11.else if(SRH.UET==0b01){
S12.将SRH.SL减1;
S13.读取32比特的SRH.List[SRH.SL]元素,转换成128比特的SRv6 SID后再拷贝到IPv6 Header的DA字段中;
S14.根据外层IPv6 Header的DA,查找路由表转发报文;
S15.}
S16.else if(SRH.UET==0b10){
S17.将SRH.SL减1;
S18.读取32比特的SRH.List[SRH.SL]元素,查ILM表将其映射成128比特的IPv6地址后再拷贝到IPv6 Header的DA字段中;
S19.获取SRH.List[SRH.SL]元素的Context Field中的UET,更新到SRH.UET,如果SRH.UET从0b10更新到0b00,则SRH.SL除以4。
S20.根据外层IPv6 Header的DA,查找路由表转发报文;或者直接从匹配的ILM表项中获取转发信息以转发报文;
S21.}
S22.}
需要说明的是,在上述步骤中,当多个32比特的SID存放在一个128比特的基本单元中时,涉及到将SRH.SL乘以4或除以4的操作。显然易见的是,如果是多个16比特的SID存放在一个128比特的基本单元中,则涉及到将SRH.SL乘以8或者除以8的操作;如果是多个64比特的SID存放在一个128比特的基本单元中,则涉及到将SRH.SL乘以2或者除以2的操作;如果是多个8比特的SID存放在一个128比特的基本单元中,则涉及到将SRH.SL乘以16或者除以16的操作。
具体实施例一
本实例描述整个SRv6 domain采用单纯的32位比特的IPv4地址或数值作为SID的压缩方案。如图8所示的SRv6网络中,运行ISIS协议,所有节点均配置支持UET(0)和UET(1),并在对外泛洪的SRv6能力信息中包含UET Flag=0b01。所有节点均按照每UET每SID分配128比特的经典SRv6 SID,比如:
节点S针对UET(0)分配END SID end-sid-s-uet0,针对UET(1)分配END SID end-sid-s-uet1;
节点A对UET(0)分配END SID end-sid-a-uet0,针对UET(1)分配END SID end-sid-a-uet1;
节点B针对UET(0)分配END SID end-sid-b-uet0,针对UET(1)分配END SID end-sid-b-uet1,另外还为三层链路B->C针对UET(0)分配END.X SID end.x-sid-bc-uet0,针对UET(1)分配END.X SID end.x-sid-bc-uet1,
节点C针对UET(0)分配END SID end-sid-c-uet0,针对UET(1)分配END SID end-sid-c-uet1;
节点D针对UET(0)分配END SID end-sid-d-uet0,针对UET(1)分配END SID end-sid-d-uet1;
假设建立一条从头节点S至尾节点D的SR-TE路径,其Segment List为<node A,node B,link B->C,node D>,这条路径可能有头节点自身计算而得,或者请求控制器计算而得。
当需要将此Segment List翻译成SID List时,头节点(或控制器)将检查此Segment List沿途经过的航路节点(即处于Segment List中的Segment),获取各节点均具备的公共压缩能力,此例中,所有节点均对外通告了UET(1)类型的压缩能力,并且也通告了UET(1)对应的SID,则头节点(或控制器)就可以在SID List中全部使用UET(1)对应的SID,即SID List为<end-sid-a-uet1,end-sid-b-uet1,end.x-sid-bc-uet1,end-sid-d-uet1>。
不过,如果有VPN业务需要承载在该SR-TE路径上,则上述SID List的尾部还需要插入一个与VPN业务相关的SID,假设为END.DT6类型的SID,end.dt6-sid-d-uet0,这个SID由节点D分配,是一个128比特的经典SRv6 SID。需要注意的是,将end.dt6-sid-d-uet0插入到上述SID List尾部后,原来处于尾部的end-sid-d-uet1要用end-sid-d-uet0替换,则得到SID List<end-sid-a-uet1,end-sid-b-uet1,end.x-sid-bc-uet1,end-sid-d-uet0,end.dt6-sid-d-uet0>。
由于END.X类型的SRv6 SID本身也是可路由的,所以上述SID List可以优化为<end-sid-a-uet1,end.x-sid-bc-uet1,end-sid-d-uet0,end.dt6-sid-d-uet0>。
假设上述所有END或END.X类型的SID的通告中,SID的结构信息中提示所有SID均处于相同的SRv6 SID Locator Block,并且结构信息中SRv6 SID Locator Node的长度+SRv6 SID Function的长度+SRv6 SID Arguments的长度不超过32比特。比如:
end-sid-a-uet1的结构中,高32比特为32bits-block,是SRv6 SID LocatorBlock信息,接下来的32比特为32bits-ipv4-a-uet1,是SRv6 SID Locator Node+SRv6 SIDFunction信息;
类似的,end-sid-b-uet1的结构中,高32比特为32bits-block,接下来的32比特为32bits-ipv4-b-uet1;
end.x-sid-bc-uet1的结构中,高32比特为32bits-block,接下来的32比特为32bits-ipv4-bc-uet1;
end-sid-d-uet0的结构中,高32比特为32bits-block,接下来的32比特为32bits-ipv4-d-uet0;
则头节点S在为报文封装SRH时,就可以采用短小的32比特的IPv4地址或数值作为SID,即压缩后的SID List为<32bits-ipv4-a-uet1,32bits-ipv4-bc-uet1,32bits-ipv4-d-uet0,end.dt6-sid-d-uet0>。在SRH中,前3个SID被拼装在一个128比特的基本单元中,多余的空间补零。SRH.SL初始值为2,SRH.UET设置为0b01。
接下来介绍报文沿该SR-TE路径的转发过程:
1)报文从头节点S出发向逻辑上第一个Segment Node(即节点A)转发。由于SRH.UET为0b01,表示当前处于UET(1)类型的压缩域中,此类型的压缩域中,每个SID只占32比特,所以首先需要将SRH.SL翻4倍后更新其值,即SRH.SL=SRH.SL*4,得到SRH.SL=8。
然后获取SRH中的逻辑上的第一个SID,即顺序执行以下主要代码:
Step1:将SRH.SL减1,SRH.SL变为7;
Step2:读取SRH.List[SRH.SL],得到32bits-ipv4-a-uet1,只读取32比特;
Step3:将32bits-ipv4-a-uet1转换成end-sid-a-uet1,然后拷贝到外层IPv6Header的DA字段中,转换方法见前所述;
Step4:根据外层IPv6 Header的DA,查找路由表转发报文,报文将向节点A转发。
2)报文到达节点A时,根据当前DA等于end-sid-a-uet1,命中本地的local SID表项,此local SID表项中给出了UET属性为UET(1),将它更新至SRH.UET,然后顺序执行以下主要代码:
Step1:将SRH.SL减1,SRH.SL变为6;
Step2:读取SRH.List[SRH.SL],得到32bits-ipv4-bc-uet1,只读取32比特;
Step3:将32bits-ipv4-bc-uet1转换成end.x-sid-bc-uet1,然后拷贝到外层IPv6Header的DA字段中,转换方法见前所述;
Step4:根据外层IPv6 Header的DA,查找路由表转发报文,报文将向节点B转发。
3)报文到达节点B时,根据当前DA等于end.x-sid-bc-uet1,命中本地的local SID表项,此local SID表项中给出了UET属性为UET(1),将它更新至SRH.UET,然后顺序执行以下主要代码:
Step1:将SRH.SL减1,SRH.SL变为5;
Step2:读取SRH.List[SRH.SL],得到32bits-ipv4-d-uet0,只读取32比特;
Step3:将32bits-ipv4-d-uet0转换成end-sid-d-uet0,然后拷贝到外层IPv6Header的DA字段中,转换方法见前所述;
Step4:报文沿end.x-sid-bc-uet1对应的链路转发。
3)报文到达节点D时,根据当前DA等于end-sid-d-uet0,命中本地的local SID表项,此local SID表项中给出了UET属性为UET(0),将它更新至SRH.UET,即压缩域将切换为传统经典SRv6域,节点D先将SRH.SL还原成以128比特的经典SRv6 SID为单位的计数,即SRH.SL=SRH.SL/4,得到SRH.SL=1,然后顺序执行以下主要代码:
Step1:将SRH.SL减1,SRH.SL变为0;
Step2:读取SRH.List[SRH.SL],得到end.dt6-sid-d-uet0,读取128比特;
Step3:将end.dt6-sid-d-uet0拷贝到外层IPv6 Header的DA字段中;
Step4:根据外层IPv6 Header的DA,查找路由表转发报文,报文将命中本地的local SID表项,移除外层IPv6 header以及SRH,继续处理内层IPv6载荷。
具体实施例二
本实例描述整个SRv6 domain采用单纯的32位比特的MPLS Label作为SID的压缩方案。仍然如图8所示的SRv6网络,运行ISIS协议,所有节点均配置支持UET(0)和UET(2),并在对外泛洪的SRv6能力信息中包含UET Flag=0b10。所有节点均按照每UET每SID分配128比特的经典SRv6 SID,比如:
节点S针对UET(0)分配END SID end-sid-s-uet0,针对UET(2)分配END SID end-sid-s-uet2;
其它节点也类似分配SID以及如此命名。
假设建立一条从头节点S至尾节点D的SR-TE路径,其Segment List为<node A,node B,link B->C,node D>,这条路径可能有头节点自身计算而得,或者请求控制器计算而得。
当需要将此Segment List翻译成SID List时,头节点(或控制器)将检查此Segment List沿途经过的航路节点,获取各航路节点均具备的公共压缩能力,此例中,所有节点均对外通告了UET(2)类型的压缩能力,则头节点(或控制器)就可以在SID List中全部使用MPLS Label,即SID List为<s.label-a,a.label-b,b.label-bc,c.label-d>。其中,s.label-a表示节点S上本地为prefix-A(比如节点A的loopback路由)分配的标签,a.label-b表示节点A上本地为prefix-B(比如节点B的loopback路由)分配的标签,b.label-bc表示节点B上本地为adjacency-BC分配的标签,c.label-d表示节点C上本地为prefix-D(比如节点D的loopback路由)分配的标签。
需要说明的是,在SRv6 domain中可以部署现有的SR-MPLS控制面协议通告上述MPLS Label,也可以直接扩展SRv6控制面协议引入简化版的标签通告能力,这部分内容不在本专利讨论范围之内。
如果有VPN业务需要承载在该SR-TE路径上,则上述SID List的尾部还需要插入一个与VPN业务相关的SID,假设为END.DT6类型的SID,end.dt6-sid-d-uet0,这个SID由节点D分配,是一个128比特的经典SRv6 SID,则得到SID List<s.label-a,a.label-b,b.label-bc,c.label-d,end.dt6-sid-d-uet0>。
为报文封装的SRH中,前4个SID被拼装在一个128比特的基本单元中,且s.label-a、a.label-b、b.label-bc的Context Field中UET Flag为0b10,而c.label-d的ContextField中UET Flag为0b00。SRH.SL初始值为2,SRH.UET设置为0b10。
接下来介绍报文沿该SR-TE路径的转发过程:
1)报文从头节点S出发向逻辑上第一个Segment Node(即节点A)转发。由于SRH.UET为0b10,表示当前处于UET(2)类型的压缩域中,此类型的压缩域中,每个SID只占32比特,所以首先需要将SRH.SL翻4倍后更新其值,即SRH.SL=SRH.SL*4,得到SRH.SL=8。
然后获取SRH中的逻辑上的第一个SID,即顺序执行以下主要代码:
Step1:将SRH.SL减1,SRH.SL变为7;
Step2:读取SRH.List[SRH.SL],得到s.label-a,只读取32比特;
Step3:获取s.label-a的Context Field中保存的UET值0b10,更新至SRH.UET;
Step4:将s.label-a映射成prefix-A,然后拷贝到外层IPv6 Header的DA字段中;
Step5:根据外层IPv6 Header的DA,查找路由表转发报文(或直接根据ILM映射表项获取转发信息),报文将向节点A转发。
2)报文到达节点A时,根据当前DA等于prefix-A,命中本地的地址路由表项,不存在对SRH.UET的更新。根据SRH.UET为0b10,顺序执行以下主要代码:
Step1:将SRH.SL减1,SRH.SL变为6;
Step2:读取SRH.List[SRH.SL],得到a.label-b,只读取32比特;
Step3:获取a.label-b的Context Field中保存的UET值0b10,更新至SRH.UET;
Step4:将a.label-b映射成prefix-B,然后拷贝到外层IPv6 Header的DA字段中;
Step5:根据外层IPv6 Header的DA,查找路由表转发报文(或直接根据ILM映射表项获取转发信息),报文将向节点B转发。
3)报文到达节点B时,根据当前DA等于prefix-B,命中本地的地址路由表项,不存在对SRH.UET的更新。根据SRH.UET为0b10,顺序执行以下主要代码:
Step1:将SRH.SL减1,SRH.SL变为5;
Step2:读取SRH.List[SRH.SL],得到b.label-bc,只读取32比特;
Step3:获取b.label-bc的Context Field中保存的UET值0b10,更新至SRH.UET;
Step4:将b.label-bc映射成adjacency-BC的对端接口IPv6地址,然后拷贝到外层IPv6 Header的DA字段中;
Step5:根据外层IPv6 Header的DA,查找路由表转发报文(或直接根据ILM映射表项获取转发信息),报文将向节点B转发。
4)报文到达节点C时,根据当前DA等于adjacency-BC的本端接口IPv6地址,命中本地的地址路由表项,不存在对SRH.UET的更新。根据SRH.UET为0b10,顺序执行以下主要代码:
Step1:将SRH.SL减1,SRH.SL变为4;
Step2:读取SRH.List[SRH.SL],得到c.label-d,只读取32比特;
Step3:获取c.label-d的Context Field中保存的UET值0b00,更新至SRH.UET,表示报文到达节点D之后的压缩域将切换为传统经典SRv6域,所以节点C需要预先将SRH.SL还原成以128比特的经典SRv6 SID为单位的计数,只需将SRH.SL除以4后取整更新其值,即SRH.SL=SRH.SL/4,得到SRH.SL=1;;
Step4:将c.label-d映射成prefix-D,然后拷贝到外层IPv6 Header的DA字段中;
Step5:根据外层IPv6 Header的DA,查找路由表转发报文(或直接根据ILM映射表项获取转发信息),报文将向节点D转发。
5)报文到达节点D时,根据当前DA命中本地的地址路由表项,不存在对SRH.UET的更新。继续解析SRH,根据SRH.UET为0b00,则Next SID为一个128比特的经典SRv6 SID,则顺序执行以下主要代码:
Step1:将SRH.SL减1,SRH.SL变为0;
Step2:读取SRH.List[SRH.SL],得到end.dt6-sid-d-uet0,读取128比特;
Step3:将end.dt6-sid-d-uet0拷贝到外层IPv6 Header的DA字段中;
Step4:根据外层IPv6 Header的DA,查找路由表转发报文,报文将命中本地的local SID表项,移除外层IPv6 header以及SRH,继续处理内层IPv6载荷。
具体实施例三
本实施例中描述整个SRv6 domain由三种不同的压缩域组成的场景,上文中已经在技术方案部分涉及到了多种不同压缩域的SID混编方案,本实施例则主要考察UET(1)与UET(2)类型的压缩域相邻的情况,这两种压缩域均采用32比特的SID,在SRH中它们是可以被拼装到同一128比特的基本单元中的。如图9所示的网络中运行ISIS协议,节点S、X、ABR1均配置支持UET(0),节点ABR1、Y、ABR2均配置支持UET(1),节点ABR2、Z、D均配置支持UET(2)。各节点在对外泛洪SRv6能力信息中包含相应的UET Flag。所有节点均按照每UET每SID分配128比特的经典SRv6 SID,比如:
节点ABR1针对UET(0)分配END SID end-sid-abr1-uet0,针对UET(1)分配END SIDend-sid-abr1-uet1;
节点ABR2针对UET(0)分配END SID end-sid-abr2-uet0,针对UET(1)分配END SIDend-sid-abr2-uet1,针对UET(2)分配END SID end-sid-abr2-uet2;
其它节点也类似分配SID以及如此命名。对于UET(1)类型的压缩域内的32位比特的IPv4地址的命名可参考实施例一。
另外,节点ABR2上本地为prefix-Z(比如节点Z的loopback路由)分配的标签abr2.label-z,节点Z上本地为prefix-D(比如节点D的loopback路由)分配的标签z.label-d。
假设建立一条从头节点S至尾节点D的SR-TE路径,其Segment List为<node X,node ABR1,node Y,node ABR2,node Z,node D>,这条路径可能有头节点自身计算而得,或者请求控制器计算而得。
当需要将此Segment List翻译成SID List时,头节点(或控制器)将检查此Segment List沿途经过的航路节点,获取各航路节点均具备的公共压缩能力,此例中,头节点或控制器知道节点S/X/ABR1具备UET(0)的压缩能力,节点ABR1/Y/ABR2具备UET(1)的压缩能力,以及节点ABR2/Z/D具备UET(2)的压缩能力,即可推断出节点ABR1是两种不同压缩域(UET(0)和UET(1))的边界节点,节点ABR2是两种不同压缩域(UET(1)和UET(2))的边界节点,再根据各节点对外通告的每UET每SID信息,则这条Segment List最终可翻译成SIDList(含VPN业务相关的SID)为:<end-sid-x-uet0,end-sid-abr1-uet0,32bits-ipv4-y-uet1,32bits-ipv4-abr2-uet2,abr2.label-z,z.label-d,end.dt6-sid-d-uet0>。
为报文封装的SRH中,32bits-ipv4-y-uet1、32bits-ipv4-abr2-uet2、abr2.label-z、z.label-d这四个SID被拼装在一个128比特的基本单元中,且abr2.label-z的Context Field中UET Flag为0b10,而z.label-d的Context Field中UET Flag为0b00。SRH.SL初始值为4,SRH.UET设置为0b00。
报文沿该SR-TE路径的转发过程与前述实施例是类似的,需要关注的地方是,当报文从节点ABR1进入UET(1)类型的压缩域时,SRH.SL将翻4倍,SRH.UET将被设置为0b01;此后报文将按照每32比特读取Next SID,特别是在ABR2上,报文将从UET(1)类型的压缩域切换至UET(2)类型的压缩域,此时SRH.SL仍然为按原来的每32比特SID为单位的计数,只是简单的将SRH.UET修改为0b10;报文直到节点D上把MPLS Label类型的SID处理完后,SRH.SL才还原成按每128比特的经典SRv6 SID为单位的计数,然后SRH.UET被修改为0b00,进入经典的SRv6 SRH处理流程。
具体实施例四
本实施例基于实施例一,讨论两个具有不同SRv6 SID Locator Block的采用单纯的32位比特的IPv4地址或数值作为SID的压缩域之间的互联互通。如图10所示的SRv6网络中,运行ISIS协议,所有节点均配置支持UET(0)和UET(1),并在对外泛洪的SRv6能力信息中包含UET Flag=0b01。所有节点均按照每UET每SID分配128比特的经典SRv6 SID,其中,节点S/X/ABR所分配的SID处于相同的SRv6 SID Locator Block block1中,节点ABR/Y/D所分配的SID处于相同的SRv6SID Locator Block block2中,比如:
节点S针对UET(0)分配END SID end-sid-block1-s-uet0,针对UET(1)分配ENDSID end-sid-block1-s-uet1,这些SID均处于block1中。
节点X针对UET(0)分配END SID end-sid-block1-x-uet0,针对UET(1)分配ENDSID end-sid-block1-x-uet1,这些SID均处于block1中。
节点ABR针对UET(0)分配END SID end-sid-block1-abr-uet0,针对UET(1)分配END SID end-sid-block1-abr-uet1,这些SID均处于block1中;节点ABR还针对UET(0)分配END SID end-sid-block2-abr-uet0,针对UET(1)分配END SID end-sid-block2-abr-uet1,这些SID均处于block2中。
节点Y针对UET(0)分配END SID end-sid-block2-y-uet0,针对UET(1)分配ENDSID end-sid-block2-y-uet1,这些SID均处于block2中。
节点D针对UET(0)分配END SID end-sid-block2-d-uet0,针对UET(1)分配ENDSID end-sid-block2-d-uet1,这些SID均处于block2中。
假设建立一条从头节点S至尾节点D的SR-TE路径,其Segment List为<node X,node ABR,node Y,node D>,这条路径可能有头节点自身计算而得,或者请求控制器计算而得。
当需要将此Segment List翻译成SID List时,头节点(或控制器)将检查此Segment List沿途经过的航路节点(即处于Segment List中的Segment),获取各节点均具备的公共压缩能力,此例中,所有节点均对外通告了UET(1)类型的压缩能力,并且也通告了UET(1)对应的SID,则头节点(或控制器)就可以在SID List中全部使用UET(1)对应的SID。
假设上述所有SID的通告中,SID的结构信息中提示end-sid-block1-s-uet1、end-sid-block1-x-uet1和end-sid-block1-abr-uet1均处于相同的SRv6 SID Locator Blockblock1中,而end-sid-block2-abr-uet1、end-sid-block2-y-uet1和end-sid-block2-d-uet1均处于相同的SRv6 SID Locator Block block2中,并且结构信息中SRv6 SIDLocator Node的长度+SRv6 SID Function的长度+SRv6 SID Arguments的长度不超过32比特。比如:
end-sid-block1-x-uet1的结构中,高32比特为block1,接下来的32比特为32bits-ipv4-block1-x-uet1,是SRv6 SID Locator Node+SRv6 SID Function信息;
类似的,end-sid-block1-abr-uet1的结构中,高32比特为block1,接下来的32比特为32bits-ipv4-block1-abr-uet1;
end-sid-block2-abr-uet1的结构中,高32比特为block2,接下来的32比特为32bits-ipv4-block2-abr-uet1;
则头节点S在为报文封装SRH时,就可以采用短小的32比特的IPv4地址或数值作为SID,并感知ABR作为两个不同的block1和block2的边界节点,则压缩后的SID List为<32bits-ipv4-block1-x-uet1,32bits-ipv4-block1-abr-uet0,end-sid-block2-abr-uet1,32bits-ipv4-block2-y-uet1,32bits-ipv4-block2-d-uet1>。在SRH中,上述前2个SID被拼装在一个128比特的基本单元中,多余的空间补零;后2个SID被拼装在一个128比特的基本单元中,多余的空间补零。SRH.SL初始值为3,SRH.UET设置为0b01。
或者上述SID List可以优化为<32bits-ipv4-block1-x-uet0,end-sid-block2-abr-uet1,32bits-ipv4-block2-y-uet1,32bits-ipv4-block2-d-uet1>,即提前在节点X上切换压缩域类型,避免插入两个节点ABR相关的SID。此时在SRH中,上述第一个SID被拼装在一个128比特的基本单元中,多余的空间补零;后2个SID被拼装在一个128比特的基本单元中,多余的空间补零。SRH.SL初始值为3,SRH.UET设置为0b01。
具体报文转发过程不再赘述。
本公开实施例还提供一种电子设备,其包括:
一个或多个处理器;
存储器,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本公开所提供的上述方法。
其中,处理器为具有数据处理能力的器件,其包括但不限于中央处理器(CPU)等;存储器为具有数据存储能力的器件,其包括但不限于随机存取存储器(RAM,更具体如SDRAM、DDR等)、只读存储器(ROM)、带电可擦可编程只读存储器(EEPROM)、闪存(FLASH)。
本公开实施例提供一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现本公开所提供的上述方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其它的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其它传输机制之类的调制数据信号中的其它数据,并且可包括任何信息递送介质。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其它实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。

Claims (5)

1.一种报文封装方法,包括:
确定分段路由-流量工程SR-TE路径;
根据所述SR-TE路径中的各个节点的段标识SID生成SID列表,其中,每个所述节点支持多个通用SID封装类型UET,所述节点的多个UET分别对应不同长度的SID,在所述SID列表中,至少作为所述SR-TE路径的中间节点的节点的SID为该节点对应的多个SID中长度非最长的SID;
利用所述SID列表形成分段路由头SRH;
利用所述SRH封装初始报文,以获得最终报文。
2.一种报文转发方法,包括:
接收到上一节点发送的最终报文后,对所述最终报文进行解析,以获得SR-TE路径中各个节点的SID列表,其中,所述最终报文为权利要求1所述的封装方法所获得的最终报文;
按照所述SID列表将所述最终报文转发至下一跳节点。
3.一种UET通告方法,包括:
将携带有当前节点的UET能力信息通告至网络中;
将携带有当前节点的相应UET能力的SID信息通告至网络中。
4.一种电子设备,其包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现根据权利要求1至3中任意一项所述的方法。
5.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现根据权利要求1至3中任意一项所述的方法。
CN202010163666.4A 2020-03-10 2020-03-10 报文封装方法、报文转发方法、通告方法、电子设备、和存储介质 Pending CN112511428A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010163666.4A CN112511428A (zh) 2020-03-10 2020-03-10 报文封装方法、报文转发方法、通告方法、电子设备、和存储介质
PCT/CN2020/138124 WO2021179732A1 (zh) 2020-03-10 2020-12-21 报文封装方法、报文转发方法、通告方法、电子设备、和存储介质
US17/910,451 US20230126801A1 (en) 2020-03-10 2020-12-21 Packet encapsulation method, packet forwarding method, announcement method, electronic device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010163666.4A CN112511428A (zh) 2020-03-10 2020-03-10 报文封装方法、报文转发方法、通告方法、电子设备、和存储介质

Publications (1)

Publication Number Publication Date
CN112511428A true CN112511428A (zh) 2021-03-16

Family

ID=74953286

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010163666.4A Pending CN112511428A (zh) 2020-03-10 2020-03-10 报文封装方法、报文转发方法、通告方法、电子设备、和存储介质

Country Status (3)

Country Link
US (1) US20230126801A1 (zh)
CN (1) CN112511428A (zh)
WO (1) WO2021179732A1 (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112787927A (zh) * 2021-03-26 2021-05-11 新华三信息安全技术有限公司 一种分段路由报文转发方法、装置及预设逻辑电路单元
CN113411259A (zh) * 2021-06-30 2021-09-17 新华三技术有限公司 一种报文转发方法、装置及设备
CN113726654A (zh) * 2021-08-13 2021-11-30 新华三信息安全技术有限公司 Srv6协议的报文转发方法、装置、电子设备及介质
CN113810276A (zh) * 2021-08-31 2021-12-17 锐捷网络股份有限公司 一种段路由故障处理方法、装置、电子设备及存储介质
CN113904985A (zh) * 2021-11-03 2022-01-07 迈普通信技术股份有限公司 一种段列表获取方法、报文转发方法、装置及电子设备
CN113904972A (zh) * 2021-11-22 2022-01-07 迈普通信技术股份有限公司 路径检测方法、装置、控制器及pe设备
CN114124781A (zh) * 2021-11-23 2022-03-01 中国联合网络通信集团有限公司 SRv6中报文的转发方法、系统、电子设备及存储介质
CN114448881A (zh) * 2022-02-25 2022-05-06 烽火通信科技股份有限公司 一种跨sr mpls与srv6域互操作通信的方法和系统
WO2022228533A1 (zh) * 2021-04-29 2022-11-03 华为技术有限公司 处理报文的方法、装置、系统及存储介质
CN116915685A (zh) * 2023-09-06 2023-10-20 新华三技术有限公司 报文传输方法、装置及电子设备
WO2024032187A1 (zh) * 2022-08-09 2024-02-15 华为技术有限公司 一种路由信息传输方法及装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4111650A1 (en) * 2020-04-16 2023-01-04 Huawei Technologies Co., Ltd. Mixing segments with different sizes for segment routing
CN113872866B (zh) * 2021-09-28 2023-04-07 中国电信股份有限公司 报文转发方法、系统以及存储介质
CN113992558B (zh) * 2021-10-26 2023-04-18 新华三信息安全技术有限公司 路由发布的方法、装置、电子设备及介质
CN114157601B (zh) * 2021-11-29 2024-03-29 中国联合网络通信集团有限公司 一种报文传输方法、装置及存储介质
CN115022415B (zh) * 2022-05-23 2023-08-25 烽火通信科技股份有限公司 一种多层sid报文终结方法及装置
CN115412512B (zh) * 2022-10-31 2023-03-24 浙江九州云信息科技有限公司 一种基于IPv6的多云跨网互通方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9660897B1 (en) * 2013-12-04 2017-05-23 Juniper Networks, Inc. BGP link-state extensions for segment routing
CN105471737B (zh) * 2014-09-05 2019-05-10 华为技术有限公司 一种标签栈的压缩方法及装置、标签栈的解压缩方法及装置
US10148560B2 (en) * 2016-07-28 2018-12-04 Cisco Technology, Inc. Enhanced error signaling and error handling in a network environment with segment routing
CN109218189B (zh) * 2017-07-03 2022-04-29 中兴通讯股份有限公司 跨域的路径的标识信息的确定方法、装置及存储介质
KR102415794B1 (ko) * 2017-07-14 2022-06-30 후아웨이 테크놀러지 컴퍼니 리미티드 Ipv6 터널에 대한 세그먼트 라우팅을 구축하기 위한 방법
CN108512758B (zh) * 2018-03-07 2021-09-14 华为技术有限公司 报文处理方法、控制器以及转发设备
CN113132229B (zh) * 2019-12-30 2022-10-28 华为技术有限公司 段标识的确定方法和设备

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112787927B (zh) * 2021-03-26 2022-03-22 新华三信息安全技术有限公司 一种分段路由报文转发方法、装置及预设逻辑电路单元
CN112787927A (zh) * 2021-03-26 2021-05-11 新华三信息安全技术有限公司 一种分段路由报文转发方法、装置及预设逻辑电路单元
WO2022228533A1 (zh) * 2021-04-29 2022-11-03 华为技术有限公司 处理报文的方法、装置、系统及存储介质
CN113411259A (zh) * 2021-06-30 2021-09-17 新华三技术有限公司 一种报文转发方法、装置及设备
CN113726654A (zh) * 2021-08-13 2021-11-30 新华三信息安全技术有限公司 Srv6协议的报文转发方法、装置、电子设备及介质
CN113810276A (zh) * 2021-08-31 2021-12-17 锐捷网络股份有限公司 一种段路由故障处理方法、装置、电子设备及存储介质
CN113904985A (zh) * 2021-11-03 2022-01-07 迈普通信技术股份有限公司 一种段列表获取方法、报文转发方法、装置及电子设备
CN113904972B (zh) * 2021-11-22 2023-12-19 迈普通信技术股份有限公司 路径检测方法、装置、控制器及pe设备
CN113904972A (zh) * 2021-11-22 2022-01-07 迈普通信技术股份有限公司 路径检测方法、装置、控制器及pe设备
CN114124781A (zh) * 2021-11-23 2022-03-01 中国联合网络通信集团有限公司 SRv6中报文的转发方法、系统、电子设备及存储介质
CN114124781B (zh) * 2021-11-23 2023-05-16 中国联合网络通信集团有限公司 SRv6中报文的转发方法、系统、电子设备及存储介质
CN114448881A (zh) * 2022-02-25 2022-05-06 烽火通信科技股份有限公司 一种跨sr mpls与srv6域互操作通信的方法和系统
CN114448881B (zh) * 2022-02-25 2023-06-09 烽火通信科技股份有限公司 一种跨sr mpls与srv6域互操作通信的方法和系统
WO2024032187A1 (zh) * 2022-08-09 2024-02-15 华为技术有限公司 一种路由信息传输方法及装置
CN116915685A (zh) * 2023-09-06 2023-10-20 新华三技术有限公司 报文传输方法、装置及电子设备
CN116915685B (zh) * 2023-09-06 2023-12-12 新华三技术有限公司 报文传输方法、装置及电子设备

Also Published As

Publication number Publication date
WO2021179732A1 (zh) 2021-09-16
US20230126801A1 (en) 2023-04-27

Similar Documents

Publication Publication Date Title
CN112511428A (zh) 报文封装方法、报文转发方法、通告方法、电子设备、和存储介质
CN111541613B (zh) 一种基于SRv6的数据处理方法及相关设备
US9444677B2 (en) Scalable edge node protection using IPv6 segment routing extension header
CN106572023B (zh) 一种实现比特位索引显示复制的方法及比特位转发路由器
US7929557B2 (en) Summarization and longest-prefix match within MPLS networks
CN111355657B (zh) 一种流量工程路径建立方法及装置和系统
WO2021008497A1 (zh) 数据传输方法、网络节点及存储介质
WO2016188502A1 (zh) 一种bier网络中流量工程信息通告的方法和装置
WO2021135624A1 (zh) 基于虚电路的数据报文处理方法、转发表项的构建方法
CN110417655B (zh) 一种数据报文转发的方法及装置
CN112511988B (zh) 报文转发方法、设备、系统、网络设备和存储介质
CN113037527B (zh) 网络切片创建方法、报文转发方法及其装置
CN110896379A (zh) 报文的发送方法、绑定关系的通告方法、装置及存储介质
CN112511429A (zh) 信息发送和处理的方法、节点、控制器、计算机可读介质
US6865611B1 (en) Communications system, apparatus and method therefor
CN115102900A (zh) 报文转发方法、系统、存储介质及电子装置
CN113904981B (zh) 一种路由信息处理方法、装置、电子设备和存储介质
CN114726775B (zh) 一种路由信息发送方法、报文发送方法及相关装置
WO2021189993A1 (zh) 路由方法、路由装置及计算机可读存储介质
CN117354221A (zh) 报文转发处理方法及相关装置
CN113438160B (zh) 路由方法、路由装置及计算机可读存储介质
WO2023050981A1 (zh) 虚拟专用网络业务标识的分配方法、报文处理方法及装置
WO2022188488A1 (zh) 路径建立方法及其装置、节点、计算机可读存储介质
RU2795936C1 (ru) Способ и устройство для сжатия заголовка сегментной маршрутизации, способ и устройство для обработки услуги
WO2024098731A1 (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