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

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

Info

Publication number
WO2021179732A1
WO2021179732A1 PCT/CN2020/138124 CN2020138124W WO2021179732A1 WO 2021179732 A1 WO2021179732 A1 WO 2021179732A1 CN 2020138124 W CN2020138124 W CN 2020138124W WO 2021179732 A1 WO2021179732 A1 WO 2021179732A1
Authority
WO
WIPO (PCT)
Prior art keywords
sid
uet
node
srh
message
Prior art date
Application number
PCT/CN2020/138124
Other languages
English (en)
French (fr)
Inventor
彭少富
刘爱华
冯军
Original Assignee
中兴通讯股份有限公司
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 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Priority to US17/910,451 priority Critical patent/US12015551B2/en
Publication of WO2021179732A1 publication Critical patent/WO2021179732A1/zh

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

Definitions

  • the embodiments of the present disclosure relate to the field of data communication, and specifically, to a method for encapsulating a message, a method for forwarding a message, a UET notification method, an electronic device, and a computer-readable storage medium.
  • Segment Routing technology is a routing method based on the source node.
  • the source node attaches a layer of ordered instructions (or called the ordered segment identifier (SID, Segment) to the data message).
  • ID ordered segment identifier
  • segment list information on the data plane, the shortest path forwarding is performed segment by segment according to the above-mentioned ordered SID list information.
  • SID list is very long, the message will have a very long segment routing header (SRH, Segment Routing Header), which reduces the load efficiency of the message.
  • the embodiments of the present disclosure provide a message encapsulation method, a message forwarding method, a UET notification method, an electronic device, and a computer-readable storage medium.
  • embodiments of the present disclosure provide a message encapsulation method, including:
  • the SID list is generated according to the segment identifier SID of each node in the SR-TE path, where each node supports multiple universal SID encapsulation type UETs, and multiple UETs of the node correspond to SIDs of different lengths.
  • SID list at least the SID of a node that is an intermediate node of the SR-TE path is the SID with a non-longest length among the multiple SIDs corresponding to the node;
  • the SRH is used to encapsulate the initial message to obtain the final message.
  • the embodiments of the present disclosure provide a method for forwarding a message, including:
  • the final message After receiving the final message sent by the previous node, the final message is parsed to obtain the SID list of each node in the SR-TE path, wherein the final message is the encapsulation method of claim 1 The final message obtained;
  • the final message is forwarded to the next hop node according to the SID list.
  • the embodiments of the present disclosure provide a UET notification method, including:
  • the present disclosure implements an electronic device, which includes:
  • One or more processors are One or more processors;
  • a storage device has one or more programs stored thereon, and when the one or more programs are executed by the one or more processors, the one or more processors implement the foregoing method.
  • embodiments of the present disclosure provide a computer-readable storage medium on which a computer program is stored, and the program is executed by a processor to implement the foregoing method.
  • the SID list includes the SID with the non-longest length among the multiple SIDs of each node. Therefore, the length of the SID list is relatively short, and the resulting SRH is also It is relatively short, thereby improving the load efficiency in the final message.
  • Fig. 1 is a flowchart of a message encapsulation method provided by an embodiment of the present disclosure
  • FIG. 2 is a schematic diagram of the newly added UET Flag in the ISIS SRv6 Capabilities sub-TLV provided in the embodiments of the present disclosure indicating different SID compression capabilities;
  • FIG. 3 is a schematic diagram of the newly added UET Flag in the OSPFv3SRv6CapabilitiesTLV provided in an embodiment of the present disclosure indicating different SID compression capabilities;
  • FIG. 4 is a schematic diagram of an SRv6 domain composed of different compressed domains provided in an embodiment of the present disclosure
  • FIG. 5 is a schematic diagram of the newly added UET Flag in the ISIS SRv6 End SID sub-TLV provided in the embodiments of the present disclosure indicating the allocation and notification of each SID per UET;
  • FIG. 6 is a schematic diagram of the newly added UET Flag in the OSPFv3 SRv6 End SID Sub-TLV provided in the embodiments of the present disclosure indicating the allocation and notification of each SID per UET;
  • FIG. 7 is a diagram of the encapsulation format of the extended SRv6 SRH newly added UET Flag and mixed SIDs of different lengths provided in the embodiments of the present disclosure
  • Figure 8 is a network topology diagram of specific embodiments one and two of the present disclosure.
  • FIG. 9 is a network topology diagram of the third embodiment of the present disclosure.
  • Figure 10 is a network topology diagram of the fourth embodiment of the present disclosure
  • Fig. 11 is a flowchart of a message forwarding method provided by the present disclosure.
  • segment routing can be applied to the data plane of Multi-Protocol Label Switching (MPLS, Multi-Protocol Label Switching) and the data plane of IPv6.
  • MPLS Multi-Protocol Label Switching
  • IPv6 Segment routing is called SR-MPLS when it is applied to the MPLS data plane
  • SRv6 segment routing is called SRv6 when it is applied to the IPv6 data plane.
  • a standard describes the application of segment routing to the data plane of MPLS by superimposing a layer of ordered segment lists (also known as MPLS label stacks) outside the message.
  • Another standard describes the application of segment routing to the data plane of IPv6 by superimposing a layer of ordered short lists (ie, a string of IPv6 address lists) outside the message.
  • the core idea of the present disclosure is to introduce a shorter SID in SRH, such as 64-bit, or 32-bit, or 16-bit, or 8-bit SID, etc. These short SIDs are called compressed SIDs to replace existing SIDs.
  • the 128-bit classic SRv6 SID compared with the existing 128-bit SID, the 32-bit SID will increase the compression effect by 4 times, and it is more suitable for the current mainstream chip processing capabilities in the industry, and it is also very convenient for the corresponding control plane protocol expansion. Therefore, this patent It is recommended to use a 32-bit short SID and mainly based on this discussion, but the discussed scheme is also applicable to SIDs of other lengths.
  • Another core idea of the present disclosure is to support the mixing of SIDs of various lengths, that is, SRHs contain multiple SIDs of different lengths at the same time to adapt to the reality of the gradual upgrade and transformation of the network.
  • SIDs some of the SIDs are 128 bits.
  • some of the SIDs are 32-bit compressed SIDs, and some of the SIDs are 16-bit compressed SIDs.
  • the SID length change prompt needs to be explicitly given. For this reason, we will discuss how to extend the control plane protocol to facilitate the end-to-end construction of the SID List. Determine the boundary node where the length of the SID in the segment list changes, and the boundary node is responsible for the decapsulation of the SRH to switch from one SID length to another SID length.
  • the message encapsulation method includes:
  • step S110 the segment routing-traffic engineering SR-TE path is determined
  • an SID list is generated according to the segment identifier SID of each node in the SR-TE path, where each node supports multiple universal SID encapsulation type UETs, and multiple UETs of the node correspond to different UETs.
  • SID with a length, in the SID list, at least the SID of a node that is an intermediate node of the SR-TE path is the SID with a non-longest length among the multiple SIDs corresponding to the node;
  • step S130 use the SID list to form a segment routing header SRH
  • step S140 the initial message is encapsulated by the SRH to obtain the final message.
  • the final message is a service message
  • the SR-TE path includes multiple nodes through which the service message is forwarded.
  • the multiple nodes include a head node, at least one intermediate node, and Tail node.
  • the message encapsulation method provided by the present disclosure can be executed by the head node in the SR-TE path.
  • Each node supports multiple UETs, and each node can set SIDs with different lengths for its own different UETs.
  • the SID list includes the SID with the non-longest length among the multiple SIDs of each node. Therefore, the length of the SID list is relatively short, and the resulting SRH is also It is relatively short, thereby improving the load efficiency in the final message.
  • the SR-TE path for forwarding the message is S node ⁇ A node ⁇ B node ⁇ C node ⁇ D node.
  • the SID length of each node in the SR-TE path is 128 bits.
  • the SID length of the A node is 32 bits
  • the SID length of the C node is 64 bits
  • the SID length of the D node can be 128 bits. It can be seen that the length of the SID list finally generated by the generation method provided by the present disclosure is less than the length of the SID list generated in the related technology.
  • each node can configure the SID compression capabilities it supports, and advertise the SID compression capabilities to the outside, so that all nodes in the network can learn the SID compression capabilities of other nodes.
  • This article refers to the SID compression capability as UET (Unified-SID Encapsulation Type).
  • each node can be configured to support the following UET:
  • UET(0) Only supports the use of the existing 128-bit IPv6 address as the SID, that is, the existing classic SRv6 SID.
  • UET(1) In addition to supporting the use of an existing 128-bit IPv6 address as the SID, it also supports the use of a 32-bit IPv4 address or value as the SID.
  • UET(2) In addition to supporting the use of the existing 128-bit IPv6 address as the SID, it also supports the use of the 32-bit MPLS Label as the SID.
  • the upper 20 bits of 32 bits store MPLS Label, and the lower 12 bits store other auxiliary information.
  • UET (3) In addition to supporting the use of the existing 128-bit IPv6 address as the SID, it also supports the use of a 64-bit value as the SID.
  • UET (4) In addition to supporting the use of the existing 128-bit IPv6 address as the SID, it also supports the use of a 16-bit value as the SID.
  • UET (5) In addition to supporting the use of the existing 128-bit IPv6 address as the SID, it also supports the use of an 8-bit value as the SID.
  • a UET notification method including:
  • a certain SRv6 node may be configured to support both UET(0) and UET(1), and another SRv6 node may be configured to support both UET(0) and UET(2). That is, each SRv6 node must support the classic 128-bit SRv6 SID, and on this basis, the ability to support each unique and shorter compressed SID is introduced.
  • a certain SRv6 node such as a border node, may be configured to support richer compression capabilities at the same time: UET(0), UET(1), UET(2), UET(3), UET(4), UET (5) and so on, so as to implement switching of SIDs of different lengths on the boundary node.
  • 0b01 In addition to supporting the use of the existing 128-bit IPv6 address as the SID, it also supports the use of a 32-bit IPv4 address or value as the SID.
  • 0b10 In addition to supporting the use of the existing 128-bit IPv6 address as the SID, it also supports the use of the 32-bit MPLS Label as the SID.
  • the upper 20 bits of 32 bits store MPLS Label, and the lower 12 bits (called Context Field) store other auxiliary information.
  • 0b11 Support all the above capabilities.
  • draft-ietf-idr-bgpls-srv6-ext-02 defines BGP-LS (North-Bound Distribution of Link-State and Traffic Engineering information Using BGP, which uses BGP to advertise link status and TE information, see RFC7752) extends SRv6 to support reporting the SRv6 information of each node in the network to the controller.
  • BGP-LS North-Bound Distribution of Link-State and Traffic Engineering information
  • SID compression capability information will be added to the reported SRv6 capability information, so that when the controller translates the end-to-end path calculation result into an SID List, it can sense the status of all nodes that the path passes through.
  • SID compression capability information identify boundary nodes connecting different compression SID types, and then select the appropriate type of SID.
  • the SRv6 Capabilities TLV defined in BGP-LS and the newly added SID compression capability information are similar to the above IGP, and the specific extensions are not repeated here.
  • each node can apply for an SID according to the SID compression capability supported by itself, according to the allocation method of each SRV6 SID of each SID compression capability, that is, each SRv6 SID has a specific UET attribute, and this has the UET attribute The SID of is notified to the outside, so that all nodes in the network can learn the SID of other nodes.
  • the entire SRv6 domain contains three sub-domains that use compressed SIDs of different lengths. For example, if ABR1 supports both UET(0) and UET(1), it can allocate two types of SIDs for these two UETs. For example, taking END SID as an example, ABR1 can allocate END SID abr1-sid1 for UET(0). UET(1) allocates END SID abr1-sid2; similarly, ABR2 supports both UET(0) and UET(2), then it can allocate END SID abr2-sid1 for UET(0) and END SID for UET(2) abr2-sid2.
  • SIDs such as topology-related SIDs such as END.X, and Service Function-related SIDs
  • topology-related SIDs such as END.X, and Service Function-related SIDs
  • SIDs related to overlay VPN (Virtual Private Network) business types such as SIDs related to L3VPN and EVPN services
  • SIDs related to overlay VPN Virtual Private Network
  • L3VPN and EVPN services are general Appears at the end of the SID List. At this time, it does not involve the processing of SID length changes. Therefore, it is not recommended to allocate different SIDs for different UETs for SIDs related to overlay service types to save SID resources.
  • the SRv6 node After the SRv6 node allocates an SID with a specific UET attribute, it will create a corresponding Local SID entry locally, and the UET attribute will be explicitly given in the Function processing of the Local SID entry.
  • Next SID which compression SID method is used, for example, if the UET attribute value is 0, Next SID It is an existing 128-bit IPv6 address. If the UET attribute value is 1, the Next SID is a 32-bit IPv4 address or value, and if the UET attribute value is 2, the Next SID is a 32-bit MPLS Label, and so on.
  • 0b00 Indicates that the Next SID is a 128-bit IPv6 address.
  • 0b01 Indicates that the Next SID is a 32-bit IPv4 address or value.
  • 0b10 Indicates that the Next SID is a 32-bit MPLS Label.
  • 0b11 reserved, undefined.
  • a new two-bit UET Flag can be defined to indicate the corresponding END.X SID or LAN END. .X
  • the UET attributes of the SID will not be described in detail.
  • the specific structure of the corresponding SID including the length of SRv6 SID Locator Block, the length of SRv6 SID Locator Node, the length of SRv6 SID Function, and the length of SRv6 SID Arguments, are in bits. Therefore, the prior art discloses a very intuitive conversion method, that is, in a 128-bit SRv6 SID of the UET(1) type, the high-bit part is SRv6 SID Locator Block (SRv6 SID Locator Block is The public address part of all nodes in the SRv6 domain), the next 32 bits are composed of SRv6 SID Locator Node, SRv6 SID Function, and SRv6 SID Arguments, and the remaining bits are filled with zeros.
  • a 128-bit classic SRv6 SID sid1 with UET(1) attributes indicates that Next SID sid2 is a 32-bit IPv4 address or value, then Next SID sid2 is converted to a complete 128
  • the classic SRv6 SID sid2' method is that the high-bit part of sid2' is the SRv6 SID Locator Block information provided by the high-bit part of sid1, and the next 32 bits are the SRv6 SID Locator Node, SRv6 SID provided by sid2 Function and SRv6 SID Arguments information (maybe some information itself is 0), and the remaining bits are filled with zeros.
  • Draft-ietf-lsr-ospfv3-srv6-extensions-00 defines OSPFv3 extension to support SRv6, and each node can advertise its assigned SID to the outside.
  • SRv6 Locator LSA and SRv6 Locator TLV are introduced, and SRv6 End SID is included in SRv6 Locator TLV.
  • Sub-TLV carries END SID; SRv6 End.X SID is introduced;
  • Sub-TLV carries END.X SID of point-to-point link; introduced SRv6 LAN End.X SID
  • Sub-TLV carries the LAN END.X SID of the broadcast link.
  • a new two-bit UET Flag is defined to indicate the location of the END SID. Has UET attributes. For the value and meaning of UET Flag, refer to the above ISIS part, and will not be repeated.
  • a new two-bit UET Flag can be defined to indicate the corresponding END.X SID or LAN END. .X
  • the UET attributes of the SID will not be described in detail.
  • draft-ietf-idr-bgpls-srv6-ext-02 defines the BGP-LS extension SRv6 to support reporting the SRv6 information of each node in the network to the controller.
  • SRv6 SID NLRI, SRv6 SID Information TLV, SRv6 Endpoint Behavior TLV are introduced, and END SID is included in SRv6 SID Information TLV, and the attributes of END SID are included in SRv6 Endpoint Behavior TLV; XSRv6 End SID is introduced.
  • the END.X SID is carried in the point-to-point link attribute; the SRv6 LAN End.X SID is introduced to carry the LAN END.X SID in the broadcast link attribute.
  • This patent adds UET attributes to the SRv6 SID information reported above, namely in the Flags field of the SRv6 Endpoint Behavior TLV, the Flags field of the SRv6 End.X SID TLV, and the Flags field of the SRv6 LAN End.X SID TLV.
  • a new two-bit UET Flag is defined to indicate the UET attributes of the corresponding SID.
  • the specific extension is similar to the aforementioned IGP, and will not be repeated.
  • the head node S (or request controller) can calculate an SR-TE (Segment Routing Traffic Engineering) path from the head node S to the destination node D.
  • the path can be To traverse multiple compressed sub-domains with different UETs, the corresponding SR-TE path needs to adopt an appropriate SID List composed of SIDs with specific UET attributes. Assuming that the Segment List corresponding to the SR-TE path from S to D is ⁇ X,ABR1,Y,ABR2,Z,D>, it is composed of multiple loose nodes.
  • this Segment List will be translated into SID List ⁇ 128bits-end-sid-x, 128bits-end-sid-abr1, 128bits-end-sid-y, 128bits-end-sid-ab r2, 128bits-end-sid-z, 128bits-end-sid-d>, however, considering the capabilities of each compression sub-domain discussed in this patent, the head node or controller knows that node S/X/ABR1 has the compression capability of UET(1), and node ABR1/Y /ABR2 has the compression capability of UET(0), and the node ABR2/Z/D has the compression capability of UET(2), it can be inferred that node ABR1 has two different compression domains (UET(1) and UET(0)) Node ABR2 is a boundary node of two different compression domains (UET(0) and UET(2)).
  • this Segment List can actually be expressed as ⁇ X (including UET(1) attribute), ABR1 (including UET(0) attribute), Y (including UET(0) attribute), ABR2 (including UET(2) attribute), Z (including UET(2) attribute) ,D (including UET(0) attribute)>, note that the above UET attribute indicates the type of Next SID, so it can be translated into a SID composed of some shorter SID List ⁇ 32bits-ipv4-x,32bits-ipv4-abr1,128bits -end-sid-y,128bits-end-sid-abr2,32bits-label-z,32bits-label-d>. Further explanation is as follows:
  • the END SID allocated by node X which is 128bits-end-sid-x
  • the UET attribute in the corresponding local SID entry is UET(1)
  • the Next SID which is 32bits-ipv4-abr1, which is a 32-bit IPv4 address or value.
  • the specific conversion method can be 32bits-ipv4-x combined with 128bits-end-sid-s (a complete 128-bit classic SRv6 END SID, and Has UET(1) attribute), that is, the high-bit part of 128bits-end-sid-x is provided by the high-bit part of 128bits-end-sid-s, the next 32 bits are provided by 32bits-ipv4-x, and the rest Zero-padded bits.
  • node S actually already knows that the first SID of SID List is 128bits-end-sid-x, it directly copies 128bits-end-sid-x to the DA field of IPv6Header, only However, the logical first SID in SRH is 32bits-ipv4-x.
  • the END SID allocated by node ABR1 is 128bits-end-sid-abr1
  • the UET attribute in the corresponding local SID entry is UET(0) to prompt Next SID, which is 128bits-end-sid-y, which is a 128 The classic SRv6 SID of bits.
  • the X node also needs to convert the shorter 32bits-ipv4-abr1 to 128bits-end-sid-abr1 and copy it to the DA (Destination Address) field of the IPv6 Header, and then direct the message to be forwarded to the node ABR1.
  • the specific conversion method can be to combine 32bits-ipv4-abr1 with 128bits-end-sid-x (a complete 128-bit classic SRv6 END SID with UET(1) attributes), that is, the high of 128bits-end-sid-abr1
  • the bit part is provided by the high-bit part of 128bits-end-sid-x
  • the next 32 bits are provided by 32bits-ipv4-abr1
  • the remaining bits are filled with zeros.
  • the END SID allocated by node Y which is 128bits-end-sid-y
  • the UET attribute in the corresponding local SID entry is UET(0) to prompt Next SID, which is 128bits-end-sid-abr2, which is a 128 The classic SRv6 SID of bits.
  • the END SID allocated by node ABR2, which is 128bits-end-sid-abr2, and the UET attribute in the corresponding local SID entry is UET(2), to indicate that Next SID, which is 32bits-label-z, is a 32-bit MPLS Label.
  • the MPLS Label assigned by node Z namely 32bits-label-z
  • the Context Field of SID 32bits-label-z stores the corresponding UET attribute as UET(2).
  • Next SID 32bits-label-d
  • the node ABR2 needs to first map the above 32bits-label-z to a 128-bit IPv6 address, copy it to the DA (Destination Address) field of the IPv6 Header, and then direct the message to be forwarded to the Z node.
  • the specific mapping method can be to find the corresponding The ILM (Incoming Label Map) entry of, obtains FEC information from the ILM entry. For example, Prefix FEC provides the IPv6 address to the remote node, and Adjacency FEC provides the IPv6 address to the opposite end interface of the link.
  • Prefix FEC provides the IPv6 address to the remote node
  • Adjacency FEC provides the IPv6 address to the opposite end interface of the link.
  • the MPLS Label allocated by node D namely 32bits-label-d
  • the corresponding UET is stored in the Context Field of SID 32bits-label-d to indicate the type of Next SID.
  • the UET stored in the Context Field of the SID 32bits-label-d is UET(0) at this time.
  • node Z also needs to first map the above 32bits-label-d to a 128-bit IPv6 address, copy it to the DA field of the IPv6 Header, and then direct the message to be forwarded to node D.
  • the controller needs to send the path calculation result (SID List) to the head node S.
  • SID List the UET attributes of each SID should be given to facilitate the head node
  • the compressed SID is used, and these SIDs are assembled in the SRH in an orderly manner.
  • draft-ietf-pce-segment-routing-ipv6-03 defines the PCEP channel to issue SRv6 TE tunnel, which introduces SRv6-ERO Subobject to carry the classic 128-bit SRv6 SID.
  • This patent is in the Flags field.
  • a new two-bit UET Flag is defined to indicate the UET attributes of the corresponding SID, the specific extensions, and the values and meanings of the UET attributes are similar to the foregoing and will not be repeated.
  • RFC8664 defines the PCEP channel to issue SR-MPLS TE tunnel, which introduces SR-ERO Subobject to carry SR-MPLS SID.
  • This patent considers that one SID list that traverses multiple end-to-end SIDs that use different UET compression domains may be It will also include the classic SRv6 SID, the 32-bit IPv4 address or the SID represented by the value, and the 32-bit MPLS Label. For this reason, this patent will also be included in the Flags field of the SR-ERO Subobject.
  • a two-bit UET Flag is defined to indicate the UET attributes of the corresponding SID, the specific extensions, and the values and meanings of the UET attributes are similar to the foregoing and will not be repeated.
  • draft-ietf-idr-segment-routing-te-policy-08 defines BGP channel to issue SR-MPLS policy or SRv6 TE policy, which introduces Segment sub-TLV to carry various types of segments, currently known Is Type A-Type K.
  • this patent newly defines a two-bit UET Flag to indicate the UET attributes, specific extensions, and values of the UET attributes of the corresponding segment. And the meaning is similar to the above, so I won't repeat it.
  • the controller calculates the corresponding Segment List as ⁇ X,ABR1,Y,ABR2,Z,D>, and then according to the compression capabilities of each node and each node For each UET and SID information announced to the outside, send SID to the head node S List ⁇ 128bits-end-sid-x (including UET(1) attribute), 128bits-end-sid-abr1 (including UET(0) attribute), 128bits-end-sid-y (including UET(0) attribute), 128bits-end-sid-abr2 (including UET(2) attribute), 32bits-label-z (including UET(2) attribute), 32bits-label- d (including UET(0) attribute)>, note that the above UET attribute indicates the type of Next SID, then the head node can adopt the SID composed of short-length SIDs when encapsulating the SRH for the message List ⁇ 32bits-ipv4
  • the corresponding Segment List is ⁇ X, ABR1, Y, ABR2, Z, D>.
  • the SID composed of short-length SIDs can be adopted 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.UET a new two-bit UET Flag (denoted as SRH.UET) is newly defined, as shown in Figure 7, to indicate the compression domain type of the current message.
  • SRH.UET The value and meaning of SRH.UET are as follows:
  • 0b00 Indicates that the current compression domain is a compression method that uses a 128-bit IPv6 address as the SID.
  • 0b01 Indicates that the current compression domain is a compression method that uses a 32-bit IPv4 address or value as the SID.
  • 0b10 Indicates that the current compression domain is a compression method that uses 32-bit MPLS Label as the SID.
  • 0b11 reserved, undefined.
  • each adjacent short SID can be assembled together and placed in the 128-bit basic unit, and the free bits are filled with zeros.
  • SID List ⁇ 32bits-ipv4-x,32bits-ipv4-abr1,128bits-end-sid-y,128bits-end-sid-abr2,32bits-label-z,32bits-label-d, A specific package example of 128bits-vpn-sid>.
  • SRH.List[] the SID List in SRH (denoted as SRH.List[]) is stored in reverse order, so the storage in SRH.List[0] is logical
  • the last SID, which is 128bits-vpn-sid, is the logical first SID stored in List[4], which is composed of the entries 32bits-ipv4-x, 32bits-ipv4-abr1 and two zero-padded 32-bit bits Entry composition.
  • SRH.List contains five basic units of 128 bits, and the initial value of Segment Left (denoted as SRH.SL) in SRH is 5.
  • SRH.UET is initially set to 0b01 to reflect the compression type UET(1) used by the logical first SID (ie 32bits-ipv4-x).
  • the UET attribute is set to 0b10, prompting the next SID of 32-bit MPLS Label; in the lower 12-bit Context Field field of 32bits-label-d, set If the UET attribute is 0b00, the next SID is a classic SRv6 SID with 128 bits. See Figure 7.
  • SID represented by the 32-bit IPv4 address can be placed in the same 128-bit basic unit as the SID represented by the 32-bit MPLS Label. This situation will be discussed in the following specific embodiments.
  • the present disclosure also provides a message forwarding method.
  • the message forwarding method includes:
  • step S210 after receiving the final message sent by the previous node, the final message is parsed to obtain the SID list of each node in the SR-TE path. Provide the final message obtained by the above-mentioned encapsulation method;
  • step S220 the final message is forwarded to the next hop node according to the SID list.
  • SRH.UET 0b01
  • each SID only occupies 32 bits, which is only a quarter of the 128-bit classic SRv6 SID.
  • Step1 Decrease SRH.SL by 1, and SRH.SL becomes 19;
  • Step2 Read SRH.List[SRH.SL] to get 32bits-ipv4-x. Note that SRH.UET prompts that it is currently in the compressed domain of type UET(1), so every time you read elements from SRH.List[] When, only 32 bits are read;
  • Step3 Convert 32bits-ipv4-x to 128bits-end-sid-x, and then copy it to the DA field of the outer IPv6 Header, the conversion method is as described above;
  • Step4 According to the DA of the outer IPv6 Header, look up the routing table to forward the message, and the message will be forwarded to node X.
  • Step1 Decrease SRH.SL by 1, SRH.SL becomes 18;
  • Step2 Read SRH.List[SRH.SL] and get 32bits-ipv4-abr1. Note that SRH.UET prompts that it is currently in the compressed domain of type UET(1), so every time you read elements from SRH.List[] When, only 32 bits are read;
  • Step3 Convert 32bits-ipv4-abr1 to 128bits-end-sid-abr1, and then copy it to the DA field of the outer IPv6 Header, the conversion method is described above;
  • Step4 According to the DA of the outer IPv6 Header, look up the routing table to forward the message, and the message will be forwarded to the node ABR1.
  • the message When the message reaches the node ABR1, according to the current DA equal to 128bits-end-sid-abr1, it hits the local SID entry.
  • the local SID entry gives the UET attribute as UET(0), and it is updated to SRH.
  • UET the Next SID is a 128-bit classic SRv6 SID, that is, the compressed domain will be switched to the traditional classic SRv6 domain, so node ABR1 needs to first restore SRH.SL to a 128-bit classic SRv6 SID.
  • Step1 Decrease SRH.SL by 1, SRH.SL becomes 3;
  • Step2 Read SRH.List[SRH.SL], get 128bits-end-sid-y, note that SRH.UET prompt is currently in the compressed domain of type UET(0), so read from SRH.List[] every time When fetching the element, 128 bits will be read;
  • Step3 Copy 128bits-end-sid-y to the DA field of the outer IPv6 Header
  • Step4 According to the DA of the outer IPv6 Header, look up the routing table to forward the message, and the message will be forwarded to node Y.
  • the message arrives at node Y, according to the current DA equal to 128bits-end-sid-y, it hits the local SID entry.
  • the local SID entry gives the UET attribute as UET(0), and it is updated to SRH.
  • UET, the Next SID is still a 128-bit classic SRv6 SID, and the following main codes are executed in sequence:
  • Step1 Decrease SRH.SL by 1, and SRH.SL becomes 2;
  • Step2 Read SRH.List[SRH.SL], get 128bits-end-sid-abr2, note that SRH.UET prompt is currently in the compressed domain of type UET(0), so read from SRH.List[] every time When fetching the element, 128 bits will be read;
  • Step3 Copy 128bits-end-sid-abr2 to the DA field of the outer IPv6 Header;
  • Step4 According to the DA of the outer IPv6 Header, look up the routing table to forward the message, and the message will be forwarded to the node ABR2.
  • the message When the message reaches the node ABR2, according to the current DA equal to 128bits-end-sid-abr2, it hits the local SID entry.
  • the local SID entry gives the UET attribute as UET(2), and it is updated to SRH.
  • UET the Next SID is a 32-bit MPLS Label, that is, the compressed domain will be switched to a domain that uses MPLS label compression. In this type of compressed domain, each SID only occupies 32 bits, and it only has a 128-bit classic SRv6 SID.
  • Step1 Decrease SRH.SL by 1, and SRH.SL becomes 7;
  • Step2 Read SRH.List[SRH.SL] to get 32bits-label-z. Note that SRH.UET prompts that it is currently in the compressed domain of type UET(2), so every time you read elements from SRH.List[] When, only 32 bits are read;
  • Step3 Obtain the UET value 0b10 saved in the Context Field of 32bits-label-z, and update it to SRH.UET;
  • Step4 Map 32bits-label-z to an IPv6 address (this address is a local address on node Z), and then copy it to the DA field of the outer IPv6 Header, the mapping method is as described above;
  • Step5 According to the DA of the outer IPv6 Header, look up the routing table and forward the message, and the message will be forwarded to node Z.
  • Step1 Decrease SRH.SL by 1, SRH.SL becomes 6;
  • Step2 Read SRH.List[SRH.SL] and get 32bits-label-d. Note that SRH.UET prompts that it is currently in the compressed domain of type UET(2), so every time you read elements from SRH.List[] When, only 32 bits are read;
  • Step3 Obtain the UET value 0b00 saved in the Context Field of 32bits-label-d, and update it to SRH.UET, which means that the compressed domain after the message reaches node D will be switched to the traditional classic SRv6 domain, so node Z needs to advance SRH.
  • Step4 Map 32bits-label-d to an IPv6 address, and then copy it to the DA field of the outer IPv6 Header, the conversion method is as described above;
  • Step5 According to the DA of the outer IPv6 Header, look up the routing table to forward the message, and the message will be forwarded to node D.
  • Step1 Decrease SRH.SL by 1, and SRH.SL becomes 0;
  • Step2 Read SRH.List[SRH.SL], get 128bits-vpn-sid, note that SRH.UET prompt is currently in the compressed domain of type UET(0), so every time you read elements from SRH.List[] When, 128 bits will be read;
  • Step3 Copy the 128bits-vpn-sid to the DA field of the outer IPv6 Header
  • Step4 According to the DA of the outer IPv6 Header, look up the routing table to forward the message, the message will hit the local SID entry, and continue to process the message according to the existing technology.
  • This example describes a compression scheme in which the entire SRv6 domain uses a simple 32-bit IPv4 address or value as the SID.
  • Node S allocates END SID end-sid-s-uet0 for UET(0), and allocates END SID end-sid-s-uet1 for UET(1);
  • Node A assigns END SID end-sid-a-uet0 to UET(0), and assigns END SID end-sid-a-uet1 to UET(1);
  • Node B allocates END SID for UET(0) end-sid-b-uet0, allocates END SID for UET(1) end-sid-b-uet1, and also for the three-layer link B->C for UET(0) Assign END.X SID end.x-sid-bc-uet0, assign END.X SID end.x-sid-bc-uet1 for UET(1),
  • Node C allocates END SID end-sid-c-uet0 for UET(0), and allocates END SID end-sid-c-uet1 for UET(1);
  • Node D allocates END SID end-sid-d-uet0 for UET(0), and allocates END SID end-sid-d-uet1 for UET(1);
  • this path may be calculated by the head node itself, or Calculated by requesting the controller.
  • the head node When it is necessary to translate this Segment List into a SID List, the head node (or controller) will check the route nodes (that is, the segments in the Segment List) that the Segment List passes through, and obtain the common compression capabilities of each node. In the example, all nodes have advertised the UET(1) type of compression capability, and also advertised the SID corresponding to UET(1), then the head node (or controller) can use all UET(1) in the SID List.
  • the corresponding SID, namely SID List is ⁇ end-sid-a-uet1,end-sid-b-uet1,end.x-sid-bc-uet1,end-sid-d-uet1>.
  • a SID related to the VPN service needs to be inserted at the end of the above SID List, assuming it is an SID of type END.DT6, end.dt6-sid-d- uet0, this SID is allocated by node D, and is a 128-bit classic SRv6 SID.
  • the above SID List can be optimized to ⁇ end-sid-a-uet1,end.x-sid-bc-uet1,end-sid-d-uet0,end. dt6-sid-d-uet0>.
  • the structure information of the SID indicates that all SIDs are in the same SRv6 SID Locator Block, and in the structure information, the length of SRv6 SID Locator Node + SRv6 SID Function length + SRv6
  • the length of SID Arguments does not exceed 32 bits. for example:
  • the upper 32 bits are 32bits-block, which is SRv6SID Locator Block information, and the next 32 bits are 32bits-ipv4-a-uet1, which is SRv6 SID Locator Node+SRv6 SID Function information;
  • end-sid-b-uet1 the upper 32 bits are 32bits-block, and the next 32 bits are 32bits-ipv4-b-uet1;
  • end.x-sid-bc-uet1 the upper 32 bits are 32bits-block, and the next 32 bits are 32bits-ipv4-bc-uet1;
  • end-sid-d-uet0 the upper 32 bits are 32bits-block, and the next 32 bits are 32bits-ipv4-d-uet0;
  • the head node S When the head node S encapsulates the SRH for the message, it can use a short 32-bit IPv4 address or value as the SID, that is, the compressed SID List is ⁇ 32bits-ipv4-a-uet1, 32bits-ipv4-bc-uet1 ,32bits-ipv4-d-uet0,end.dt6-sid-d-uet0>.
  • the first 3 SIDs are assembled in a 128-bit basic unit, and the extra space is filled with zeros.
  • the initial value of SRH.SL is 2, and SRH.UET is set to 0b01.
  • Step1 Decrease SRH.SL by 1, and SRH.SL becomes 7;
  • Step2 Read SRH.List[SRH.SL], get 32bits-ipv4-a-uet1, only read 32 bits;
  • Step3 Convert 32bits-ipv4-a-uet1 to end-sid-a-uet1, and then copy it to the DA field of the outer IPv6 Header.
  • the conversion method is described above;
  • Step4 According to the DA of the outer IPv6 Header, look up the routing table to forward the message, and the message will be forwarded to node A.
  • Step1 Decrease SRH.SL by 1, SRH.SL becomes 6;
  • Step2 Read SRH.List[SRH.SL], get 32bits-ipv4-bc-uet1, only read 32 bits;
  • Step3 Convert 32bits-ipv4-bc-uet1 to end.x-sid-bc-uet1, and then copy it to the DA field of the outer IPv6 Header, the conversion method is as described above;
  • Step4 According to the DA of the outer IPv6 Header, look up the routing table and forward the message, and the message will be forwarded to Node B.
  • Step1 Decrease SRH.SL by 1, and SRH.SL becomes 5;
  • Step2 Read SRH.List[SRH.SL], get 32bits-ipv4-d-uet0, only read 32 bits;
  • Step3 Convert 32bits-ipv4-d-uet0 to end-sid-d-uet0, and then copy it to the DA field of the outer IPv6 Header.
  • the conversion method is described above;
  • Step4 The message is forwarded along the link corresponding to end.x-sid-bc-uet1.
  • Step1 Decrease SRH.SL by 1, and SRH.SL becomes 0;
  • Step2 Read SRH.List[SRH.SL], get end.dt6-sid-d-uet0, read 128 bits;
  • Step3 Copy end.dt6-sid-d-uet0 to the DA field of the outer IPv6 Header;
  • Step4 According to the DA of the outer IPv6 Header, look up the routing table to forward the message. The message will hit the local local SID entry, remove the outer IPv6 header and SRH, and continue to process the inner IPv6 payload.
  • Node S allocates END SID end-sid-s-uet0 for UET(0), and allocates END SID end-sid-s-uet2 for UET(2);
  • this path may be calculated by the head node itself, or Calculated by requesting the controller.
  • the head node When it is necessary to translate this Segment List into SID List, the head node (or controller) will check the route nodes that this Segment List passes through, and obtain the common compression capabilities of each route node. In this example, all nodes are notified to the outside. With the compression capability of the UET(2) type, the head node (or controller) can use all MPLS Labels in the SID List, that is, the SID List is ⁇ s.label-a,a.label-b,b.label- bc,c.label-d>.
  • s.label-a represents the label assigned locally to prefix-A (such as the loopback route of node A) on node S
  • a.label-b represents the local prefix-B on node A (such as the loopback route of node B)
  • the assigned label b.label-bc represents the label locally assigned for adjacency-BC on node B
  • c.label-d represents the label assigned locally for prefix-D (such as the loopback route of node D) on node C.
  • the existing SR-MPLS control plane protocol can be deployed in the SRv6 domain to advertise the above-mentioned MPLS Label, or the SRv6 control plane protocol can be directly extended to introduce a simplified version of the label notification capability. This part of the content is beyond the scope of this patent. Inside.
  • SID List ⁇ s.label-a,a.label-b,b.label-bc,c.label-d,end.dt6-sid is obtained -d-uet0>.
  • the first 4 SIDs are assembled in a 128-bit basic unit, and the UET Flag in the Context Field of s.label-a, a.label-b, and b.label-bc is 0b10, And the UET Flag in the Context Field of c.label-d is 0b00.
  • the initial value of SRH.SL is 2, and SRH.UET is set to 0b10.
  • Step1 Decrease SRH.SL by 1, and SRH.SL becomes 7;
  • Step2 Read SRH.List[SRH.SL], get s.label-a, only read 32 bits;
  • Step3 Obtain the UET value 0b10 saved in the Context Field of s.label-a, and update it to SRH.UET;
  • Step4 Map s.label-a to prefix-A, and then copy it to the DA field of the outer IPv6Header;
  • Step5 According to the DA of the outer IPv6 Header, look up the routing table to forward the message (or directly obtain the forwarding information according to the ILM mapping table entry), and the message will be forwarded to node A.
  • Step1 Decrease SRH.SL by 1, SRH.SL becomes 6;
  • Step2 Read SRH.List[SRH.SL], get a.label-b, only read 32 bits;
  • Step3 Obtain the UET value 0b10 saved in the Context Field of a.label-b, and update it to SRH.UET;
  • Step4 Map a.label-b to prefix-B, and then copy it to the DA field of the outer IPv6Header;
  • Step5 According to the DA of the outer IPv6 Header, look up the routing table to forward the message (or directly obtain the forwarding information according to the ILM mapping table entry), and the message will be forwarded to Node B.
  • Step1 Decrease SRH.SL by 1, and SRH.SL becomes 5;
  • Step2 Read SRH.List[SRH.SL], get b.label-bc, only read 32 bits;
  • Step3 Obtain the UET value 0b10 saved in the Context Field of b.label-bc, and update it to SRH.UET;
  • Step4 Map b.label-bc to the opposite interface IPv6 address of adjacency-BC, and then copy it to the DA field of the outer IPv6 Header;
  • Step5 According to the DA of the outer IPv6 Header, look up the routing table to forward the message (or directly obtain the forwarding information according to the ILM mapping table entry), and the message will be forwarded to Node B.
  • Step1 Decrease SRH.SL by 1, and SRH.SL becomes 4;
  • Step2 Read SRH.List[SRH.SL], get c.label-d, only read 32 bits;
  • Step3 Obtain the UET value 0b00 saved in the Context Field of c.label-d, and update it to SRH.UET, which means that the compressed domain after the message reaches node D will be switched to the traditional classic SRv6 domain, so node C needs to advance SRH.
  • Step4 Map c.label-d to prefix-D, and then copy it to the DA field of the outer IPv6Header;
  • Step5 According to the DA of the outer IPv6 Header, look up the routing table to forward the message (or directly obtain the forwarding information according to the ILM mapping table entry), and the message will be forwarded to node D.
  • Step1 Decrease SRH.SL by 1, and SRH.SL becomes 0;
  • Step2 Read SRH.List[SRH.SL], get end.dt6-sid-d-uet0, read 128 bits;
  • Step3 Copy end.dt6-sid-d-uet0 to the DA field of the outer IPv6 Header;
  • Step4 According to the DA of the outer IPv6 Header, look up the routing table to forward the message. The message will hit the local local SID entry, remove the outer IPv6 header and SRH, and continue to process the inner IPv6 payload.
  • This embodiment describes a scenario where the entire SRv6 domain is composed of three different compressed domains.
  • SID mixing solutions for different compressed domains have been involved.
  • This embodiment mainly examines UET(1) and In the case of UET(2) type compression domains adjacent to each other, both compression domains use 32-bit SIDs. In SRH, they can be assembled into the same 128-bit basic unit.
  • the network shown in Figure 9 runs the ISIS protocol. Nodes S, X, and ABR1 are all configured to support UET(0), nodes ABR1, Y, and ABR2 are all configured to support UET(1), and nodes ABR2, Z, and D are all configured to support UET. (2).
  • Each node includes the corresponding UET Flag in the external flooding SRv6 capability information. All nodes allocate 128-bit classic SRv6 SID per UET per SID, such as:
  • Node ABR1 allocates END SID end-sid-abr1-uet0 for UET(0), and allocates END SID end-sid-abr1-uet1 for UET(1);
  • Node ABR2 allocates END SID end-sid-abr2-uet0 for UET(0), END SID end-sid-abr2-uet1 for UET(1), and END SID end-sid-abr2-uet2 for UET(2);
  • prefix-Z such as the loopback route of node Z
  • prefix-D such as the loopback route of node D
  • the head node When the Segment List needs to be translated into a SID List, the head node (or controller) will check the route nodes that this Segment List passes through, and obtain the common compression capabilities of each route node.
  • the head node or the controller Knowing that node S/X/ABR1 has the compression capability of UET(0), node ABR1/Y/ABR2 has the compression capability of UET(1), and node ABR2/Z/D has the compression capability of UET(2), it can be inferred
  • the outgoing node ABR1 is the boundary node of two different compression domains (UET(0) and UET(1)), and the node ABR2 is the boundary node of two different compression domains (UET(1) and UET(2)).
  • this Segment List can finally be translated into SID List (including SID related to VPN services) as: ⁇ 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>.
  • the four SIDs, 32bits-ipv4-y-uet1, 32bits-ipv4-abr2-uet2, abr2.label-z, and z.label-d are assembled in a 128-bit basic unit.
  • the UET Flag in the Context Field of abr2.label-z is 0b10
  • the UET Flag in the Context Field of z.label-d is 0b00.
  • the initial value of SRH.SL is 4, and SRH.UET is set to 0b00.
  • SRH.SL will be quadrupled.
  • SRH.UET will be set to 0b01; after that, the message will read the Next SID every 32 bits, especially on ABR2, the message will switch from the compressed domain of UET(1) type to the compressed domain of UET(2) type
  • SRH.SL is still counted based on the original 32-bit SID, but simply modified SRH.UET to 0b10; the message is not processed until the MPLS Label SID is processed on node D, SRH.SL It is restored to a count based on the classic SRv6 SID of every 128 bits, and then SRH.UET is modified to 0b00, and the classic SRv6 SRH processing flow is entered.
  • this embodiment discusses the interconnection and intercommunication between two compressed domains with different SRv6 SID Locator Blocks that use simple 32-bit IPv4 addresses or values as SIDs.
  • SRv6 SID Locator Blocks that use simple 32-bit IPv4 addresses or values as SIDs.
  • All nodes are assigned 128-bit classic SRv6 SID per UET per SID, where the SID assigned by node S/X/ABR is in the same SRv6 SID Locator Block block 1, and the SID assigned by node ABR/Y/D is the same
  • SRv6 SID Locator Block block 2 for example:
  • Node S allocates END SID end-sid-block1-s-uet0 for UET(0) and END SID end-sid-block1-s-uet1 for UET(1), and these SIDs are all in block1.
  • Node X allocates END SID end-sid-block1-x-uet0 for UET(0) and END SID end-sid-block1-x-uet1 for UET(1), and these SIDs are all in block1.
  • Node ABR assigns END SID to UET(0) end-sid-block1-abr-uet0, and assigns END SID to UET(1) end-sid-block1-abr-uet1. These SIDs are all in block1; Node ABR also targets UET (0) Assign END SID end-sid-block2-abr-uet0, assign END SID end-sid-block2-abr-uet1 for UET(1), and these SIDs are all in block2.
  • Node Y allocates END SID end-sid-block2-y-uet0 for UET(0) and END SID end-sid-block2-y-uet1 for UET(1), and these SIDs are all in block2.
  • Node D allocates END SID end-sid-block2-d-uet0 for UET(0) and END SID end-sid-block2-d-uet1 for UET(1), and these SIDs are all in block2.
  • this path may be calculated by the head node itself, or requested by the controller Calculated.
  • the head node When it is necessary to translate this Segment List into a SID List, the head node (or controller) will check the route nodes (that is, the segments in the Segment List) that the Segment List passes through, and obtain the common compression capabilities of each node. In the example, all nodes have advertised the UET(1) type of compression capability, and also advertised the SID corresponding to UET(1), then the head node (or controller) can use all UET(1) in the SID List. The corresponding SID.
  • the SID structure information prompts that end-sid-block1-s-uet1, end-sid-block1-x-uet1 and end-sid-block1-abr-uet1 are all in the same SRv6 SID Locator In block 1, end-sid-block2-abr-uet1, end-sid-block2-y-uet1 and end-sid-block2-d-uet1 are in the same SRv6 SID Locator Block block2, and the structure information is SRv6
  • the length of SID Locator Node + SRv6 SID Function length + SRv6 SID Arguments length does not exceed 32 bits. for example:
  • end-sid-block1-x-uet1 the upper 32 bits are block1, and the next 32 bits are 32bits-ipv4-block1-x-uet1, which is SRv6 SID Locator Node+SRv6 SID Function information;
  • end-sid-block1-abr-uet1 the upper 32 bits are block1, and the next 32 bits are 32bits-ipv4-block1-abr-uet1;
  • end-sid-block2-abr-uet1 the upper 32 bits are block2, and the next 32 bits are 32bits-ipv4-block2-abr-uet1;
  • the head node S When the head node S encapsulates the SRH for the message, it can use a short 32-bit IPv4 address or value as the SID, and perceive the ABR as the boundary node of two different block1 and block2, then the compressed SIDList is ⁇ 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 the first two SIDs mentioned above are assembled in a 128-bit basic unit, and the extra space is filled with zeros; the last two SIDs are assembled in a 128-bit basic unit, and the extra space is filled with zeros.
  • the initial value of SRH.SL is 3, and SRH.UET is set to 0b01.
  • the above SID List can be optimized to ⁇ 32bits-ipv4-block1-x-uet0,end-sid-block2-abr-uet1,32bits-ipv4-block2-y-uet1,32bits-ipv4-block2-d-uet1>, that is Switch the compressed domain type on node X in advance to avoid inserting the SID related to the ABR of the two nodes.
  • SRH the above-mentioned first SID is assembled in a 128-bit basic unit, and the extra space is filled with zeros; the last two SIDs are assembled in a 128-bit basic unit, and the extra space is filled with zeros.
  • the initial value of SRH.SL is 3, and SRH.UET is set to 0b01.
  • the embodiments of the present disclosure also provide an electronic device, which includes:
  • One or more processors are One or more processors;
  • the memory has one or more programs stored thereon, and when the one or more programs are executed by one or more processors, the one or more processors implement the above methods provided in the present disclosure.
  • the processor is a device with data processing capabilities, including but not limited to a central processing unit (CPU), etc.
  • the memory is a device with data storage capabilities, including but not limited to random access memory (RAM, more specifically such as SDRAM). , DDR, etc.), read-only memory (ROM), charged erasable programmable read-only memory (EEPROM), flash memory (FLASH).
  • RAM random access memory
  • ROM read-only memory
  • EEPROM charged erasable programmable read-only memory
  • FLASH flash memory
  • the embodiment of the present disclosure provides a computer-readable medium on which a computer program is stored, and the program is executed by a processor to implement the above-mentioned method provided by the present disclosure.
  • Such software may be distributed on a computer-readable medium, and the computer-readable medium may include a computer storage medium (or a non-transitory medium) and a communication medium (or a transitory medium).
  • the term computer storage medium includes volatile and non-volatile memory implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules, or other data). Sexual, removable and non-removable media.
  • Computer storage media include but are not limited to RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical disk storage, magnetic cassette, tape, magnetic disk storage or other magnetic storage device, or Any other medium used to store desired information and that can be accessed by a computer.
  • a communication medium usually contains computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transmission mechanism, and may include any information delivery medium. .

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,Segment Identifier),简称段)列表信息,在数据面,根据上述有序的SID列表信息逐段进行最短路径转发。当SID列表很长时,会导致报文具有很长的分段路由头(SRH,Segment Routing Header),降低报文的载荷效率。
公开内容
本公开实施例提供一种报文封装方法、一种报文转发方法、一种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是本公开实施例中所提供的OSPFv3SRv6Capabilities 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-Protocol Label Switching)的数据平面、以及IPv6的数据平面。分段路由应用于MPLS的数据平面时被称为SR-MPLS,分段路由应用于IPv6的数据平面时被称为SRv6。在一标准中描述了通过在报文外叠加一层有序的段列表(也被称为MPLS标签栈)的方式,将分段路由应用于MPLS的数据面。在另一标准中描述了通过在报文外叠加一层有序的短列表(即,一串IPv6地址列表)的方式,将分段路由应用于IPv6的数据面。可以看出,当指令列表较长时,上述两种技术都会导致报文头过长,严重降低报文的载荷效率。特别是对于SRv6,在报文头中引入SRH时包含一串必选的IPv6地址列表,很大程度地限制了具体产品的实现。
本公开的核心思想是在SRH中引入一种更短小的SID,如64比特、或32比特、或16比特、或8比特的SID等,这些短小的SID称之为压缩SID,以替代现有的128比特的经典SRv6 SID。其中,采用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(Intermediate System to Intermediate System中间系统至中间系统协议)扩展支持SRv6,各节点可对外通告自身的SRv6能力,这是通过在RFC7981中定义的router capabilities TLV中包含一个新的SRv6Capabilities sub-TLV。本专利将在SRv6Capabilities sub-TLV中,继续携带SID压缩能力信息。如图2所示,在SRv6Capabilities 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比特(称为Context Field)存放其它辅助信息。
0b11:支持上述所有能力。
2)draft-ietf-lsr-ospfv3-srv6-extensions-00定义了OSPFv3(Open Shortest Path First开放最短路径优先)扩展支持SRv6,各节点可对外通告自身的SRv6能力,这是通过在RFC7770中定义的OSPFv3 Router Information LSA中包含一个新的SRv6 Capabilities TLV。本专利将在SRv6Capabilities TLV中,继续携带SID压缩能力信息。如图3所示,在SRv6 Capabilities TLV的Flags字段中,新定义一个占两个比特的UET Flag,以支持通告各种典型的SID压缩能力,UET Flag的取值和含义参考上述ISIS部分,不再赘述。
3)类似地,draft-ietf-idr-bgpls-srv6-ext-02定义了BGP-LS(North-Bound Distribution 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)分配END SID 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 SID sub-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 End SID 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、SRv6 SID 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以及SRv6 SID 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 SID Sub-TLV携带点到点链路的END.X SID;引入SRv6 LAN End.X SID Sub-TLV携带广播链路的LAN END.X SID。本专利继续在现有的SID通告中新增UET属性,如图6所示,在SRv6 End SID Sub-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,在SRv6 Endpoint Behavior TLV中包含END SID所具有的属性;引入SRv6 End.X SID TLV在点到点链路属性中携带END.X SID;引入SRv6 LAN End.X SID TLV在广播链路属性中携带LAN END.X SID。本专利在上述上报的SRv6 SID信息中新增UET属性,即分别在SRv6Endpoint Behavior TLV的Flags字段中,SRv6 End.X SID TLV的Flags字段中,以及SRv6 LAN End.X SID 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-ab r2,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拷贝到IPv6Header的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比特的经典SRv6 SID。
比如节点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的SID List中,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(Destination Address)字段中,然后引导报文向Z节点转发,具体映射方法可以是查找相应的ILM(Incoming Label Map,入标签映射)表项,从ILM表项中获取FEC信息,比如Prefix FEC提供了至远端节点的IPv6地址,Adjacency FEC提供了至链路对端接口的IPv6地址。
比如节点D分配的MPLS Label,即32bits-label-d,其本身与UET无关,在SRH的SID List中,SID 32bits-label-d的Context Field中存放了相应的UET以提示Next SID的类型。比如,如果在SRH的SID List的尾部还存在一个VPN业务相关的128比特的经典SRv6 SID,则此时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 TE tunnel,其中引入了SRv6-ERO Subobject以携带经典128比特的SRv6 SID,本专利在其中的Flags字段中,新定义一个占两个比特的UET Flag,以表示相应SID所具有的UET属性,具体扩展以及UET属性的取值与含义,与前述类似,不再赘述。
另外,RFC8664定义了PCEP通道下发SR-MPLS TE tunnel,其中引入了SR-ERO Subobject以携带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-MPLS policy或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中的SID List(记为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的Context Field字段中,设置了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比特的经典SRv6SID需要处理,所以首先需要将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,然后拷贝到外层IPv6 Header的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, 然后拷贝到外层IPv6 Header的DA字段中,转换方法见前所述;
Step4:根据外层IPv6 Header的DA,查找路由表转发报文,报文将向节点ABR1转发。
报文到达节点ABR1时,根据当前DA等于128bits-end-sid-abr1,命中本地的local SID表项,此local SID表项中给出了UET属性为UET(0),将它更新至SRH.UET,则Next SID为一个128比特的经典SRv6 SID,即压缩域将切换为传统经典SRv6域,所以节点ABR1需要先将SRH.SL还原成以128比特的经典SRv6SID为单位的计数,只需将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,命中本地的local SID表项,此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拷贝到IPv6 Header的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]元素,并拷贝到IPv6 Header的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,是SRv6SID Locator Block信息,接下来的32比特为32bits-ipv4-a-uet1,是SRv6 SID Locator Node+SRv6 SID Function信息;
类似的,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,然后拷贝到外层IPv6 Header的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,然后拷贝到外层IPv6 Header的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,然后 拷贝到外层IPv6 Header的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的Context Field中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,然后拷贝到外层IPv6Header的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,然后拷贝到外层IPv6Header的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,然后拷贝到外层IPv6Header的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 SID end-sid-abr1-uet1;
节点ABR2针对UET(0)分配END SID end-sid-abr2-uet0,针对UET(1)分配END SID end-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最终可翻译成SID List(含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处于相同的SRv6 SID Locator Block block2中,比如:
节点S针对UET(0)分配END SID end-sid-block1-s-uet0,针对UET(1)分配END SID end-sid-block1-s-uet1,这些SID均处于block1中。
节点X针对UET(0)分配END SID end-sid-block1-x-uet0,针对UET(1)分配END SID 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)分配END SID end-sid-block2-y-uet1,这些SID均处于block2中。
节点D针对UET(0)分配END SID end-sid-block2-d-uet0,针对UET(1)分配END SID 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 Block block1中,而end-sid-block2-abr-uet1、end-sid-block2-y-uet1和end-sid-block2-d-uet1均处于相同的SRv6 SID Locator Block block2中,并且结构信息中SRv6 SID Locator 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中任意一项所述的方法。
PCT/CN2020/138124 2020-03-10 2020-12-21 报文封装方法、报文转发方法、通告方法、电子设备、和存储介质 WO2021179732A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/910,451 US12015551B2 (en) 2020-03-10 2020-12-21 Packet encapsulation method, packet forwarding method, announcement method, electronic device, and storage medium

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
WO2021179732A1 true WO2021179732A1 (zh) 2021-09-16

Family

ID=74953286

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/138124 WO2021179732A1 (zh) 2020-03-10 2020-12-21 报文封装方法、报文转发方法、通告方法、电子设备、和存储介质

Country Status (3)

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

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113872866A (zh) * 2021-09-28 2021-12-31 中国电信股份有限公司 报文转发方法、系统以及存储介质
CN113992558A (zh) * 2021-10-26 2022-01-28 新华三信息安全技术有限公司 路由发布的方法、装置、电子设备及介质
CN114124781A (zh) * 2021-11-23 2022-03-01 中国联合网络通信集团有限公司 SRv6中报文的转发方法、系统、电子设备及存储介质
CN114157601A (zh) * 2021-11-29 2022-03-08 中国联合网络通信集团有限公司 一种报文传输方法、装置及存储介质
CN115022415A (zh) * 2022-05-23 2022-09-06 烽火通信科技股份有限公司 一种多层sid报文终结方法及装置
CN115412512A (zh) * 2022-10-31 2022-11-29 浙江九州云信息科技有限公司 一种基于IPv6的多云跨网互通方法及装置

Families Citing this family (10)

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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105471737A (zh) * 2014-09-05 2016-04-06 华为技术有限公司 一种标签栈的压缩方法及装置、标签栈的解压缩方法及装置
US9660897B1 (en) * 2013-12-04 2017-05-23 Juniper Networks, Inc. BGP link-state extensions for segment routing
CN108512758A (zh) * 2018-03-07 2018-09-07 华为技术有限公司 报文处理方法、控制器以及转发设备
CN109218189A (zh) * 2017-07-03 2019-01-15 中兴通讯股份有限公司 跨域的路径的标识信息的确定方法、装置及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10148560B2 (en) * 2016-07-28 2018-12-04 Cisco Technology, Inc. Enhanced error signaling and error handling in a network environment with segment routing
CN113872859A (zh) * 2017-07-14 2021-12-31 华为技术有限公司 IPv6分段路由隧道建立方法
CN113132229B (zh) * 2019-12-30 2022-10-28 华为技术有限公司 段标识的确定方法和设备

Patent Citations (4)

* 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
CN105471737A (zh) * 2014-09-05 2016-04-06 华为技术有限公司 一种标签栈的压缩方法及装置、标签栈的解压缩方法及装置
CN109218189A (zh) * 2017-07-03 2019-01-15 中兴通讯股份有限公司 跨域的路径的标识信息的确定方法、装置及存储介质
CN108512758A (zh) * 2018-03-07 2018-09-07 华为技术有限公司 报文处理方法、控制器以及转发设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PREVIDI S: "IPv6 Segment Routing Header (SRH) draft-previdi-6man-segment-routing-header-08", NETWORK WORKING GROUP INTERNET-DRAFT, 2 October 2015 (2015-10-02), pages 1 - 30, XP015108672 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113872866A (zh) * 2021-09-28 2021-12-31 中国电信股份有限公司 报文转发方法、系统以及存储介质
CN113992558A (zh) * 2021-10-26 2022-01-28 新华三信息安全技术有限公司 路由发布的方法、装置、电子设备及介质
CN114124781A (zh) * 2021-11-23 2022-03-01 中国联合网络通信集团有限公司 SRv6中报文的转发方法、系统、电子设备及存储介质
CN114157601A (zh) * 2021-11-29 2022-03-08 中国联合网络通信集团有限公司 一种报文传输方法、装置及存储介质
CN114157601B (zh) * 2021-11-29 2024-03-29 中国联合网络通信集团有限公司 一种报文传输方法、装置及存储介质
CN115022415A (zh) * 2022-05-23 2022-09-06 烽火通信科技股份有限公司 一种多层sid报文终结方法及装置
CN115022415B (zh) * 2022-05-23 2023-08-25 烽火通信科技股份有限公司 一种多层sid报文终结方法及装置
CN115412512A (zh) * 2022-10-31 2022-11-29 浙江九州云信息科技有限公司 一种基于IPv6的多云跨网互通方法及装置
CN115412512B (zh) * 2022-10-31 2023-03-24 浙江九州云信息科技有限公司 一种基于IPv6的多云跨网互通方法及装置

Also Published As

Publication number Publication date
US20230126801A1 (en) 2023-04-27
US12015551B2 (en) 2024-06-18
CN112511428A (zh) 2021-03-16

Similar Documents

Publication Publication Date Title
WO2021179732A1 (zh) 报文封装方法、报文转发方法、通告方法、电子设备、和存储介质
CN111541613B (zh) 一种基于SRv6的数据处理方法及相关设备
CN110912795B (zh) 一种传输控制方法、节点、网络系统及存储介质
CN113595913B (zh) 报文转发的方法、发送报文的装置和接收报文的装置
WO2018188464A1 (zh) 一种实现ioam的方法、装置及存储介质
EP2320611B1 (en) Number automatic routing method, updating method, withdrawing method, router and device
CN106656781B (zh) 一种报文传输的方法、装置和系统
EP2187581B1 (en) Summarization and longest-prefix match within mpls networks
US8589573B2 (en) Technique for preventing routing loops by disseminating BGP attribute information in an OSPF-configured network
WO2016188501A1 (zh) 一种实现比特位索引显示复制的方法及比特位转发路由器
CN111355657B (zh) 一种流量工程路径建立方法及装置和系统
WO2016177087A1 (zh) 一种传输bier报文的方法及装置
WO2016066072A1 (zh) 实现nvo3网络与mpls网络之间通信的方法和装置
WO2021196717A1 (zh) 组播流量传输方法、装置、通信节点及存储介质
WO2021189993A1 (zh) 路由方法、路由装置及计算机可读存储介质
WO2015192501A1 (zh) 地址信息的发布方法及装置
WO2018072704A1 (zh) 报文传输方法、装置、节点和计算机存储介质
WO2016188502A1 (zh) 一种bier网络中流量工程信息通告的方法和装置
CN110896379B (zh) 报文的发送方法、绑定关系的通告方法、装置及存储介质
WO2022184169A1 (zh) 报文转发方法、系统、存储介质及电子装置
WO2017177756A1 (zh) 一种信息传递方法、装置及系统
WO2020098597A1 (zh) 一种组播的方法及路由设备
EP4020903A1 (en) Method and apparatus for preventing traffic bypassing
WO2021073357A1 (zh) 报文处理方法、装置、系统、设备及存储介质
WO2018177273A1 (zh) 一种基于bier信息的处理及装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20924337

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 16/02/2023)

122 Ep: pct application non-entry in european phase

Ref document number: 20924337

Country of ref document: EP

Kind code of ref document: A1