EP3907942A1 - Data forwarding method and related device - Google Patents

Data forwarding method and related device Download PDF

Info

Publication number
EP3907942A1
EP3907942A1 EP20749251.3A EP20749251A EP3907942A1 EP 3907942 A1 EP3907942 A1 EP 3907942A1 EP 20749251 A EP20749251 A EP 20749251A EP 3907942 A1 EP3907942 A1 EP 3907942A1
Authority
EP
European Patent Office
Prior art keywords
node
sid
sid list
forwarded
dcn
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP20749251.3A
Other languages
German (de)
French (fr)
Other versions
EP3907942A4 (en
Inventor
Yongkang Zhang
Shixing Liu
Xinhai XU
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of EP3907942A1 publication Critical patent/EP3907942A1/en
Publication of EP3907942A4 publication Critical patent/EP3907942A4/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • 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
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical 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/12Shortest path evaluation
    • H04L45/123Evaluation of link metrics
    • 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/42Centralised 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/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/825Involving tunnels, e.g. MPLS

Definitions

  • This application relates to the field of data communications technologies, and in particular, to a data forwarding method and a related apparatus.
  • Data information is sent by a terminal device of a user to an access device of a data transmission network, and then is transmitted to a backbone network of the data transmission network via the access device.
  • the data transmission network needs to determine a target forwarding path of the data information based on a service requirement of the data information.
  • the data transmission network needs to encapsulate a packet header for the data information at a controlled start node, where the controlled start node may be referred to as a head node, and the packet header carries the target forwarding path.
  • a length of a target forwarding path may be greater than a maximum path supported by a device in a data transmission network. Consequently, data information may fail to be normally transmitted in the data transmission network.
  • This application provides a data forwarding method and a related apparatus, to resolve a problem that data information fails to be normally transmitted in a data transmission network because a target forwarding path is excessively long.
  • this application provides a data forwarding method.
  • the method includes:
  • the target forwarding path includes M nodes, the first SID list is generated based on first N nodes in the M nodes, the first SID list is replaced with a second SID list at an intermediate node, and the second SID list is generated based on an X th node to a Y th node in the M nodes, where M is greater than N, N is greater than or equal to 1, X is greater than or equal to N, and Y is less than or equal to M.
  • the M nodes related in the target forwarding path are classified into at least two subpaths, the SID list that is added by the head node in front of the to-be-forwarded data is generated based on a part of the M nodes, and a first subpath includes the first N nodes.
  • the method before the obtaining a first SID list corresponding to the to-be-forwarded data, includes: receiving, by the head node, an SR policy sent by a controller, where the SR policy includes the first SID list; and the obtaining a first SID list corresponding to the to-be-forwarded data includes: obtaining, by the head node based on a service attribute of the to-be-forwarded data, an SR policy corresponding to the to-be-forwarded data; and determining a SID list included in the SR policy as the first SID list corresponding to the to-be-forwarded data.
  • the obtaining a first SID list corresponding to the to-be-forwarded data includes: obtaining, by the head node, a SID of the head node, and reading a function function field and a parameter argument field in the SID, where the function field is used to indicate to encapsulate, in front of the to-be-forwarded data, the packet header including the first SID list, and the argument field is used to indicate the first SID list.
  • the head node is connected to an ingress edge node in a DCN through a basic forwarding network
  • a SID of an internal node in the DCN network can be prevented from being exposed in the basic forwarding network, so that the data forwarding method provided in this application can be applied to a scenario such as a telco cloud network.
  • the head node is connected to an ingress edge node in a first DCN subnet in a DCN through a first basic forwarding network in a basic forwarding network, and an egress edge node in the first DCN subnet is connected to an ingress edge node in a second DCN subnet in the DCN through a second basic forwarding network in the basic forwarding network;
  • the head node is a PRE-AGG
  • the first DCN subnet is an EDC network
  • the second DCN subnet is an RDC network
  • both an ingress edge node and an egress edge node in the EDC network are PE-AGGs
  • both an ingress edge node and an egress edge node in the RDC network are DCGWs.
  • a SID of the ingress edge node and a SID of the egress edge node in the EDC network are a SID 1 and a SID 2 of the PE-AGGs respectively
  • a SID of the ingress edge node and a SID of the egress edge node in the RDC network are a SID 1 and a SID 2 of the DCGWs respectively.
  • the at least one SF node in the first DCN subnet and the at least one SF node in the second DCN subnet are SF nodes in a telco cloud network; and the first basic forwarding network is a metro network, and the second basic forwarding network is a core network.
  • an M th node in the target forwarding path is a target node of a VPN service corresponding to the to-be-forwarded data
  • the to-be-forwarded packet is an SRv6 packet.
  • this application provides a data forwarding method.
  • the method includes:
  • the first SID list and the second SID list are separately generated based on SIDs of a part of nodes in a target forwarding path; and the target forwarding path includes M nodes, the first SID list is generated based on SIDs of an X th node to a Y th node in the M nodes, and the second SID list is generated based on SIDs of a (Y+1) th node to a Z th node in the M nodes, where X is greater than or equal to 1, Y is greater than or equal to X, and Z is less than or equal to M.
  • the to-be-forwarded packet is an SRv6 packet.
  • the intermediate node is the Y th node in the M nodes.
  • the method before the obtaining a second SID list corresponding to the to-be-forwarded packet, the method includes: receiving, by the intermediate node, an SR policy sent by a controller, where the SR policy includes the second SID list;
  • the obtaining a second SID list corresponding to the to-be-forwarded data includes: obtaining, by the intermediate node, a SID of the intermediate node, and reading a function function field and a parameter argument field in the SID, where the function field is used to indicate to replace the first SID list with the second SID list, and the argument field is used to indicate the second SID list.
  • the intermediate node is an ingress edge node in a DCN, and the intermediate node is connected to a basic forwarding network;
  • the intermediate node is an egress edge node in a first DCN subnet in a DCN, and an egress edge node in the first DCN subnet is connected to an ingress edge node in a second DCN subnet in the DCN through a basic forwarding network;
  • the first DCN subnet is an EDC network
  • the second DCN subnet is an RDC network
  • both an ingress edge node and an egress edge node in the EDC network are PE-AGGs
  • both an ingress edge node and an egress edge node in the RDC network are DCGWs
  • a SID of the ingress edge node and a SID of the egress edge node in the EDC network are a SID 1 and a SID 2 of the PE-AGGs respectively
  • a SID of the ingress edge node and a SID of the egress edge node in the RDC network are a SID 1 and a SID 2 of the DCGWs respectively.
  • At least one SF node in the EDC network and at least one SF node in the RDC network are SF nodes in a telco cloud network.
  • Z is less than M
  • this application provides a data forwarding method.
  • the method includes:
  • the target forwarding path includes M nodes, the second SID list is generated based on SIDs of a Z th node to an M th node in the M nodes, the second SID list is obtained by replacing a first SID list at an intermediate node, and the first SID list is generated based on an X th node to a Y th node in the M nodes, where Z is greater than 1 and less than or equal to M, X is greater than or equal to 1, and Y is less than or equal to Z; and a SID of the tail node is a last SID in the second SID list.
  • this application provides a data forwarding method.
  • the method includes:
  • the target forwarding path includes M nodes, and the second SID list is generated based on SIDs of an X th node to an (M ⁇ 1) th node in the M nodes, where X is greater than 1; a SID of the tail node is a last SID in the second SID list; and the target node of the VPN service is the M th node.
  • this application provides a data forwarding method.
  • the method includes:
  • the intermediate node is the N th node in the M nodes, where N is greater than or equal to 1, X is equal to N or N+1, and Y is less than or equal to M;
  • the sending the first SID list to a head node includes: sending an SR policy 1 to the head node, where the SR policy 1 includes the first SID list; and the sending the second SID list to an intermediate node includes: sending an SR policy 2 to the intermediate node, where the SR policy 2 includes the second SID list.
  • Y is less than M
  • an M th node is a target node of a VPN service
  • the method further includes: sending the target node of the VPN service to the head node, where the head node is further configured to encapsulate, in front of the to-be-forwarded data, an inner packet header including the target node of the VPN service, and encapsulate, in front of the inner packet header, an outer packet header including the first SID list, to generate a to-be-forwarded packet; and send the to-be-forwarded packet to the intermediate node based on the first SID list in the outer packet header.
  • the controller is a DCN controller in a DCN.
  • this application provides a data forwarding system.
  • the system includes:
  • the system further includes a tail node, where the tail node is configured to perform the data forwarding method according to the third aspect or the fourth aspect.
  • the head node may be a PE-AGG
  • the intermediate node may be a PRE-AGG or a DCGW
  • the tail node may be a DCGW.
  • the system further includes a controller, where the controller is configured to perform the data forwarding method according to the fifth aspect.
  • the controller may be a DCN controller.
  • this application provides a data forwarding apparatus, applied to a network system, where the network system includes a head node, an intermediate node, and a tail node, the apparatus is located on the head node, and the apparatus includes:
  • this application provides a data forwarding apparatus, applied to a network system, where the network system includes a head node, an intermediate node, and a tail node, the apparatus is located on the intermediate node, and the apparatus includes:
  • this application provides a data forwarding apparatus, applied to a network system, where the network system includes a head node, an intermediate node, and a tail node, the apparatus is located on the tail node, and the apparatus includes:
  • the target forwarding path includes M nodes, the second SID list is generated based on SIDs of a Z th node to an M th node in the M nodes, the second SID list is obtained by replacing a first SID list at the intermediate node, and the first SID list is generated based on an X th node to a Y th node in the M nodes, where Z is greater than 1 and less than or equal to M, X is greater than or equal to 1, and Y is less than or equal to Z; and a SID of the tail node is a last SID in the second SID list.
  • this application provides a data forwarding apparatus, applied to a network system, where the network system includes a head node, an intermediate node, and a tail node, the apparatus is located on the tail node, and the apparatus includes:
  • this application provides a data forwarding apparatus, applied to a network system, where the network system includes a head node, an intermediate node, a tail node, and a controller, the apparatus is located on the controller, and the apparatus includes:
  • the head node is configured to encapsulate, in front of to-be-forwarded data, a packet header by using the first SID list as a destination address in the packet header, to generate a to-be-forwarded packet; and send the to-be-forwarded packet to the intermediate node based on the destination address; and the intermediate node is configured to replace the first SID list in the packet header of the to-be-forwarded packet with the second SID list, and forward the to-be-forwarded packet based on a destination address in a packet header obtained through replacement.
  • the data forwarding apparatus may be located on a controller side.
  • this application provides a node device, including:
  • the one or more processors are enabled to implement the data forwarding method according to the first aspect, the data forwarding method according to the second aspect, the data forwarding method according to the third aspect, or the data forwarding method according to the fourth aspect.
  • the node device may be a PRE-AGG.
  • the node device may perform the data forwarding method according to the first aspect.
  • the node device may be a PE-AGG.
  • the node device may perform the data forwarding method according to the second aspect or the data forwarding method according to the first aspect.
  • the node device may be a DCGW.
  • the node device may perform the data forwarding method according to the second aspect and/or the data forwarding method according to the third aspect; or the node device may perform the data forwarding method according to the first aspect and the data forwarding method according to the third aspect.
  • this application provides a computer-readable storage medium.
  • the computer-readable storage medium stores instructions, and when the instructions are run on a computer, the instructions are used to perform the data forwarding method according to any one of the first aspect to the fourth aspect.
  • this application provides a computer program.
  • the computer program When the computer program is executed by a computer, the computer program is used to perform the data forwarding method according to any one of the first aspect to the fourth aspect.
  • the data transmission network may include several nodes, and the target forwarding path may be defined as a list of node identifiers including node identifiers of at least two nodes.
  • a data forwarding method provided in this application may be applied to a plurality of network architectures. The following separately describes, with reference to various network architectures, technical solutions and technical effects of the data forwarding method provided in this application.
  • FIG. 1 is a schematic diagram 1 of a network architecture.
  • a data transmission network may include a head node, a tail node, an intermediate node, and another node.
  • the head node may be a start node in a process of controlling to-be-forwarded data to be forwarded based on a target forwarding path
  • the tail node may be an end node in the control process
  • the intermediate node may be a node in the target forwarding path
  • the another node may be located at another location in the transmission network.
  • the another node may be located before the head node, after the tail node, or between intermediate nodes.
  • the target forwarding path may include at least one intermediate node, and intermediate nodes in the target forwarding path may be adjacent or may be connected through another node.
  • the target forwarding path may further include one or more other nodes.
  • the target forwarding path may not include the head node, or may include the head node.
  • the head node may preprocess the to-be-forwarded data, and encapsulate, in front of the to-be-forwarded data, a packet header including the target forwarding path, to obtain a to-be-forwarded packet, where the target forwarding path may be used to indicate a node in the data transmission network to forward the to-be-forwarded data to the tail node in a node list corresponding to the target forwarding path in the packet header; and the tail node may perform control releasing processing on the packet, and remove the packet header including the target forwarding path from the to-be-forwarded packet, to obtain the to-be-forwarded data.
  • the to-be-forwarded data may continue to be transmitted in the network based on an original destination address of the to-be-forwarded data.
  • the to-be-forwarded data may be a data frame, for example, an Ethernet frame.
  • the destination address of the to-be-forwarded data may be a destination MAC address in the Ethernet frame.
  • the to-be-forwarded data may be a network layer packet, for example, an IP packet.
  • the destination address of the to-be-forwarded data may be a destination IP address in the IP packet.
  • SR Segment Routing
  • SPRING Source Packet Routing in Networking
  • WG working group
  • IETF internet engineering task force
  • SR is a tunneling technology based on a source routing forwarding mode.
  • an ingress node and an egress node of the SR tunnel may be respectively considered as the head node and the tail node in the foregoing control manner.
  • the SR tunnel may correspond to a target forwarding path that includes at least two nodes and that is in the foregoing control manner.
  • a basic design idea of the SR is that a per-flow (per-flow) status needs to be maintained only on the head node, but does not need to be maintained on the intermediate node and the tail node.
  • the per-flow status is used by the SR tunnel to reserve a resource, such as bandwidth, for each service flow.
  • an identifier of a node may be represented by a segment identifier (Segment Identifier, SID).
  • SID Segment Identifier
  • the SID may be an instruction with topology or service semantics.
  • the target forwarding path corresponding to the SR tunnel may be generated based on SIDs of the at least two nodes.
  • the target forwarding path may be formed by successively arranging the SIDs of the at least two nodes in a preset forwarding sequence.
  • identifiers of the head node, an intermediate node 1, an intermediate node 2, an intermediate node 3, and the tail node in the data transmission network shown in FIG. 1 may be a SID 1, a SID 2, a SID 3, a SID 4, and a SID 5 respectively.
  • a corresponding target forwarding path may be represented as ⁇ SID 2; SID 3; SID 4; SID 5 ⁇ .
  • a corresponding target forwarding path may be represented as ⁇ SID 2; SID 3; SID 4; SID 5 ⁇ .
  • an SR data plane may be based on multi-protocol label switching (Multi-Protocol Label Switching, MPLS), or may be based on IPv6.
  • MPLS Multi-Protocol Label Switching
  • IPv6 IPv6
  • segment routing using MPLS as a data plane
  • IPv6 Segment Routing based IPv6 data plane
  • SIDs of nodes in the target forwarding path may form a SID list (SID list) based on a service requirement, to indicate a forwarding path of an SRv6 tunnel defined in a manner in which SRv6 is used as a data plane.
  • SID list may include at least one SID.
  • a SID is a 16-bit IPv6 address in form and includes three parts: locator (Locator), function (Function), and argument (Argument).
  • Table 1 schematically shows a structure of a SID in an SRv6 packet.
  • the locator may be used for addressing, that is, related to routing.
  • the function may be used to specify a function related to the SID, such as a topology function or a service function.
  • the argument is an optional parameter, and may be used to specify a parameter for performing an operation related to the function.
  • the function and the argument may be network programming parameters used to implement a network programming function of SRv6.
  • the network programming function is described in the following.
  • a traceroute function in common IPv6 may be used to detect a path of the SRv6 tunnel.
  • the SID needs to support route forwarding based on a common IPv6 address on a common node other than an intermediate node in a forwarding path.
  • the common node may forward the packet based on a next-hop address corresponding to the network address.
  • some special nodes in SRv6 need to support an operation of modifying a SID list in an SRv6 packet header.
  • the IETF 6man WG defines that an IPv6 segment routing header (Segment Routing Header, SRH) may be used to carry a SID list, to specify a forwarding path of the IPv6 packet.
  • a name of an IE corresponding to the SRH may be draft-ietf-6man-segment-routing-header-14.
  • a loose source routing mode may be used for the SRH.
  • the SID list in the SRH may include only one node.
  • an SRv6 tunnel packet may even not include an SRH field. For example, when a SID list that needs to be added includes a SID of only one node, the SID of the node may be added to a destination address field of a to-be-forwarded packet.
  • the SR tunnel needs to be first established, that is, a SID of each node needs to be allocated and a SID list corresponding to the target forwarding path needs to be determined.
  • the SID list used to establish the SR tunnel may be specified by using an explicit candidate path (Explicit candidate path) or a dynamic candidate path (Dynamic candidate path).
  • a controller of the data transmission network may allocate a SID to each node.
  • target forwarding paths may be planned for various types of to-be-forwarded data that arrive at the head node.
  • nodes through which an SRv6 packet may pass in the data transmission network may be classified into the following device roles (device role).
  • Non-SRv6 node The non-SRv6 node is a node that does not support or use an SRv6 function. This type of node can only forward a common IPv6 packet. For example, this type of node does not support to forward a packet based on a SID list carried in an SRH field of a packet header. For another example, this type of node supports to forward only a to-be-forwarded packet in which an IP address in a destination address is native (Native) IPv6.
  • the forwarding node is a node on which the SRv6 function has been enabled.
  • An active SID (Active SID) of an SRv6 packet is not installed in my local SID table (My Local SID table) on this type of node. It should be noted that a SID configured in my local SID table on a node is a SID of the node.
  • An active SID of an SRv6 packet is a SID in a SID list carried in the SRv6 packet. The active SID is used to indicate a destination node at which the SRv6 packet is expected to arrive.
  • a node When a node receives an SRv6 packet and an active SID in a SID list carried in a packet header of the SRv6 packet is not a SID of the node (that is, the active SID in the SRv6 packet is not installed), the node needs to forward the SRv6 packet based on a destination node indicated by the active SID. In this case, the node only forwards the packet without performing special processing. Therefore, the node serves as a forwarding node.
  • Binding segment identifier node (Binding Segment Identifier node, BSID node): The binding segment identifier node is a node on which the SRv6 function has been enabled and that uses a BSID mechanism (draft-ietf-spring-segment-routing-policy-01) to steer traffic to a new SR policy (SR policy).
  • BSID node may be a node configured with an SR policy.
  • Endpoint node The endpoint node is a node on which the SRv6 function has been enabled, and an active SID of an SRv6 packet has been installed in my local SID table on the node. It should be noted that, when a node receives an SRv6 packet and an active SID in a SID list carried in a packet header of the SRv6 packet is a SID of the node (that is, the active SID of the SRv6 packet has been installed on the node), the node needs to identify, as a new active SID, a next SID of a SID that is currently identified as the active ID and that is in the SID list carried in the SRv6 packet.
  • the current node continues to forward the SRv6 packet based on a destination node indicated by the new active SID.
  • the node serves as an endpoint node.
  • the endpoint node may be a node in a SID list corresponding to a target forwarding path.
  • my local SID table is used to implement an SRv6 network programming function. This table maintains all local SIDs (SIDs allocated and interpreted by the node) of the endpoint node. Based on the description in draft-filsfils-spring-srv6-network-programming-05, the SIDs in my local SID table need to be explicitly configured and generated.
  • a process of forwarding to-be-forwarded data through an SRv6 tunnel may include as follows.
  • a head node (which may be considered as a BSID node) steers traffic to an SR policy.
  • the head node obtains, based on a current active candidate path (active Candidate path) of the SR policy, a SID list corresponding to a specified path. Then, the head node encapsulates, in front of the to-be-forwarded data, a packet header including the SID list, to obtain a to-be-forwarded packet through encapsulation, where a first SID in the SID list is indicated as an active SID; and then forwards the to-be-forwarded packet to a downstream device by using the active SID as a destination address (Destination Address, DA).
  • DA Destination Address
  • an SRv6 packet is forwarded through an SRv6 tunnel, there is only one active SID (Active SID) in a SID list of the SRv6 packet.
  • the active SID is used to identify a SID of a next-hop node.
  • an intermediate node queries my local SID table based on the active SID (that is, an IPv6 DA). If a matching entry exists (that is, the active SID is a SID of the intermediate node), the intermediate node performs related processing based on a function (Function) associated with the hit local SID entry.
  • the intermediate node After completing the related processing, the intermediate node updates the active SID in the SID list (for example, indicates a next SID of the current active SID in the SID list as a new active SID), and then the intermediate node forwards the SRv6 packet to a downstream node based on a destination node indicated by the updated active SID.
  • the tail node may remove the packet header encapsulated in front of the to-be-forwarded data.
  • One or more intermediate nodes may exist between the head node and the tail node.
  • One or more other nodes (which may be considered as non-SRv6 nodes or forwarding nodes) may exist between the head node and the intermediate node.
  • One or more other nodes (which may be considered as non-SRv6 nodes or forwarding nodes) may exist between the intermediate node and the tail node.
  • an SR tunnel technology defined in an SRv6 manner has a general feature of SR.
  • a difference between the SR tunnel technology defined in the SRv6 manner and an SR tunnel technology defined in an MPLS manner lies in that the tunnel technology defined in the SRv6 manner supports network programming. With network programming, the tunnel technology defined in the SRv6 manner has powerful scalability.
  • the function and the argument in the SID may be used as network programming parameters that support a network programming function.
  • the network programming parameter may be used to indicate a node on a tunnel to process a packet based on a function (function) corresponding to the network programming parameter, where the tunnel is defined in the SRv6 manner.
  • the SR technology supports to define a plurality of types of functions.
  • an end function may be used to implement a processing step in which an endpoint node updates an active SID and the endpoint node is indicated to forward an SRv6 packet based on an updated active SID.
  • the end function may include the following processing logic:
  • SRv6 network programming lies in that the function allows a plurality of extension forms.
  • an SRv6 network programming function allows logical extension in "any" form.
  • the head node in the transmission network may be a BSID node, and a network programming parameter carried in the SRv6 packet may be used to indicate the BSID node to preprocess SRv6 according to an SR policy (SR policy) corresponding to the SRv6 packet.
  • SR policy SR policy
  • the BSID node may generate, based on a SID list corresponding to the SR policy, a packet header including the SID list, and encapsulate the packet header in front end of the to-be-forwarded data, to obtain a to-be-forwarded SRv6 packet.
  • an SRv6 technology that supports network programming may also be applied to a plurality of application scenarios.
  • the SRv6 technology may implement a packet forwarding control manner such as a border gateway protocol (Border Gateway Protocol, BGP), an SR-based layer 3 VPN service (SR L3VPN), an Ethernet VPN-based layer 2 VPN service (EVPN L2VPN), an Ethernet VPN-based layer 3 VPN service (EVPN L3VPN), or a service function chain (Service Function Chain, SFC).
  • BGP Border Gateway Protocol
  • SR L3VPN SR-based layer 3 VPN service
  • EVPN L2VPN Ethernet VPN-based layer 2 VPN service
  • EVPN L3VPN Ethernet VPN-based layer 3 VPN service
  • SFC Service Function Chain
  • a forwarding path that corresponds to a packet and that is defined based on the SR L3VPN may be used as a SID list, and the SID list is added to a packet header at the head node of the SRv6 tunnel.
  • an IE name corresponding to network programming may be draft-filsfils-spring-srv6-network-programming-05.
  • a BSID technology may be used to steer (steer) traffic to an SR policy.
  • a BSID node is defined as a node with a special function on an SR tunnel.
  • One or more SR policies may be preset on the BSID node, and each SR policy may correspond to one SID list.
  • the head node is assigned a role of the BSID node, and the head node may receive an SR policy in advance, where the SR policy includes a target forwarding path, and the SR policy may be delivered by a controller device in a network.
  • the BSID node may encapsulate, in front of the to-be-forwarded data, a packet header including the SID list, to generate a to-be-forwarded packet.
  • the SID list may be located in an SRH field or a destination address field.
  • the SID list encapsulated by the head node in front of the to-be-forwarded data is generated based on SIDs of all nodes that need to be passed through in a complete target forwarding path.
  • a length of the SID list is very long.
  • the complete target forwarding path may include an intermediate node 1, an intermediate node 2, an intermediate node 3, ..., and an intermediate node 19, and a tail node.
  • a SID list formed by SIDs of the nodes may be ⁇ SID 2; SID 3; SID 4;..., SID 20; SID 21; ⁇ .
  • the BSID node and the endpoint node in the data transmission network need to support a SID list whose length is 20. It can be seen that, the implementation of the foregoing control manner has a relatively high requirement for a maximum SID depth (Maximum SID Depth, MSD) that needs to be supported by a device in the data transmission network. In some scenarios, when MSDs supported by some low-end devices in the data transmission network are less than a length of a SID list required in some service scenarios, data cannot be forwarded along the complete target forwarding path.
  • MSD Maximum SID Depth
  • the embodiments of this application provide the following data forwarding method.
  • FIG. 2A and FIG. 2B are a schematic diagram 1 of an interaction procedure of a data forwarding method according to an embodiment of this application.
  • This embodiment of this application relates to a head node, an intermediate node, a tail node, and the like.
  • a target forwarding path may include an intermediate node 1, an intermediate node 2, an intermediate node 3, and the tail node.
  • a SID list corresponding to the target forwarding path formed by these nodes is ⁇ SID 2; SID 3; SID 4; SID 5; ⁇ .
  • a controller in the network may divide the target forwarding path into several segments. Division into two segments is used as an example.
  • the SID list corresponding to the target forwarding path may be divided into a first SID list and a second SID list. Then, the controller may deliver the first SID list to the head node, and deliver the second SID list to a last node in the first SID list.
  • the intermediate node in the interaction procedure shown in FIG. 2A and FIG. 2B may be the last node in the first SID list.
  • the head node, the intermediate node, and the tail node may implement the following steps.
  • a forwarding layer which may also be referred to as a data layer
  • the head node, the intermediate node, and the tail node may implement the following steps.
  • this embodiment of this application includes the following steps.
  • S201 The head node receives to-be-forwarded data.
  • the to-be-forwarded data may be a data frame or an IP packet.
  • the data frame may be an Ethernet (Ethernet) frame.
  • the to-be-forwarded data may carry service attributes such as type information of a requested service and service-related parameter information.
  • the to-be-forwarded data is a video file and a file name on a server that are requested to be accessed.
  • the head node may receive the to-be-forwarded data from another node.
  • the head node obtains the first SID list corresponding to the to-be-forwarded data, where the first SID list is generated based on SIDs of first N nodes in M nodes in the target forwarding path, N is less than M, and N is greater than or equal to 1.
  • the head node may obtain, based on the service attribute of the to-be-forwarded data, an SR policy 1 corresponding to the to-be-forwarded data; and determine a SID list included in the SR policy 1 as the first SID list corresponding to the to-be-forwarded data.
  • different service attributes may correspond to different target forwarding paths.
  • the controller may pre-plan target forwarding paths corresponding to various service attributes, segment a target forwarding path with a relatively long length, and then, separately deliver SID lists obtained by segmenting a target forwarding path to the head node and another corresponding intermediate node by using different SR policies.
  • the head node may store a correspondence between an SR policy and a service attribute, and when receiving to-be-forwarded data, obtain a corresponding SR policy based on a service attribute carried in the to-be-forwarded data.
  • the first SID list is generated based on a SID of a first node in the target forwarding path.
  • the first SID list may include the SID of the first node in the target forwarding path.
  • N is greater than 1
  • the first SID list is generated based on SIDs of a first node to an N th node in the target forwarding path.
  • the first SID list may include the SIDs of the first node to the N th node.
  • the head node encapsulates, in front of the to-be-forwarded data, a packet header including the first SID list, to obtain a to-be-forwarded packet.
  • the to-be-forwarded packet obtained through encapsulation may include two parts: the packet header and the to-be-forwarded data.
  • the packet header includes the first SID list. It should be noted that, that the packet header is encapsulated in front of the to-be-forwarded data means that the packet header is encapsulated outside the to-be-forwarded data rather than inside the to-be-forwarded data.
  • Table 2 schematically shows the to-be-forwarded packet obtained through encapsulation.
  • the SID when the first SID list includes only one SID, the SID may be directly used as a destination address in the packet header, and the packet header is encapsulated in front of the to-be-forwarded data.
  • the SID list when the first SID list includes two or more SIDs, the SID list may be added to an SRH field in the packet header, and the packet header encapsulated with the SRH field is encapsulated in front of the to-be-forwarded data.
  • the foregoing two implementations may be used when the head node encapsulates, in front of the to-be-forwarded data, a packet header including any SID list and when the intermediate node replaces a SID list.
  • S204 The head node sends the to-be-forwarded packet to an intermediate node based on the first SID list, where the intermediate node is the N th node.
  • the SID list in the packet header when the SID list in the packet header includes only one SID, the SID may be located in the destination address in the packet header, and the head node may send the to-be-forwarded data to the intermediate node based on the destination address in the packet header.
  • the SID list in the packet header includes at least two SIDs, the SID list is added to the SRH field in the packet header.
  • the head node needs to set a first SID that has not arrived and that is in the SID list to an active SID, and set the active SID as the destination address in the packet header, to indicate a next-hop address of the to-be-forwarded packet.
  • the intermediate node obtains a second SID list corresponding to the to-be-forwarded packet, where the second SID list is generated based on an (N+1) th node to an M th node in the M nodes in the target forwarding path.
  • the intermediate node may obtain an operation instruction matching the active SID, where the operation instruction is used to instruct the intermediate node to replace the first SID list in the to-be-forwarded packet with a second SID list included in an SR policy 2; and the intermediate node determines the second SID list included in the SR policy 2 corresponding to the operation instruction as the second SID list corresponding to the to-be-forwarded packet.
  • the operation instruction may be a processing step that matches the active SID and that is in my local SID table, for example, an operation corresponding to the SID, or may be a processing step indicated by a function field and an argument field of the active SID.
  • S206 The intermediate node replaces the first SID list in the packet header with the second SID list.
  • the intermediate node may replace the first SID list in the packet header with the second SID list in two manners.
  • the intermediate node may completely replace the packet header of the received to-be-forwarded data with a new packet header. For example, an original packet header may be removed first, and then a new packet header is encapsulated, where the new packet header includes the second SID list. If the second SID list includes only one SID, the second SID list in the new packet header may be located in a destination address in the new packet header. If the second SID list includes two or more SIDs, the second SID list in the new packet header may be located in an SRH field in the new packet header, a SID of a next-hop node is set to an active SID, and the active SID is set to the destination address in the packet header.
  • Another field in the new packet header may be filled based on a value of the field in the original packet header or generated based on an actual forwarding scenario requirement of a service.
  • the packet header may further include fields such as a source address and a flow label, and the fields may be copied or set to new values based on an actual status of a DCGW according to a local policy of the DCGW.
  • the intermediate node may alternatively replace only the SID list in the to-be-forwarded packet.
  • the intermediate node adds the second SID list to the SRH field in the packet header of the to-be-forwarded packet, sets a SID of a next-hop node to an active SID, and sets the active SID to the destination address in the packet header.
  • the intermediate node may replace the first SID list in the SRH field in the original packet header with the second SID list, set a SID of a next-hop node to an active SID, and set the active SID to the destination address in the packet header.
  • S207 The intermediate node forwards the to-be-forwarded packet to the tail node based on the second SID list, where the tail node is the M th node.
  • the intermediate node forwards the packet in a node list indicated by the second SID list, and finally forwards the packet to the tail node.
  • a next unarrived SID needs to be set to an active SID, and the active SID is set to the destination address in the packet header, to indicate a next-hop address of the to-be-forwarded packet.
  • the tail node removes the packet header of the to-be-forwarded packet to obtain the to-be-forwarded data.
  • both the head node and the intermediate node may be BSID nodes in an SRv6 tunnel.
  • the intermediate node may be an endpoint node in the SRv6 tunnel.
  • the tail node may be a last node in the target forwarding path.
  • the M nodes related in the target forwarding path are classified into at least two subpaths, a first subpath includes the first N nodes, and a second subpath includes the (N+1) th node to the M th node.
  • a quantity of SIDs in a SID list in a to-be-forwarded packet that is transmitted by a device in the data transmission network may not exceed a quantity of MSDs supported by a single device. Therefore, normal data transmission can be ensured when the target forwarding path is relatively long.
  • S209 may be further included.
  • S209 The tail node forwards the to-be-forwarded data based on a destination address of the to-be-forwarded data.
  • the to-be-forwarded data may be a data frame or an IP packet
  • the destination address of the to-be-forwarded data may be a destination MAC address in the data frame or a destination IP address in the IP packet.
  • the tail node may continue to forward the to-be-forwarded data based on the destination MAC address in the data frame or the destination IP address in the IP packet.
  • that the controller in the data transmission network pre-divides and delivers a SID list of each segment may include the following steps.
  • S210 The controller obtains a target forwarding path, where the target forwarding path includes M nodes.
  • the controller may pre-plan target forwarding paths based on various types of to-be-forwarded data that arrive at the head node. For example, the controller may plan different target forwarding paths for to-be-forwarded data that requests various services, segment each target forwarding path, and deliver a target forwarding path obtained through segmentation to a corresponding head node and intermediate node. For example, a target forwarding path that passes through several core network SF function nodes in a telco cloud network may be planned for to-be-forwarded data that requests to access the internet (Internet).
  • the to-be-forwarded data may carry a relevant service attribute identifying that a requested service is to access the internet.
  • the controller generates a first SID list based on SIDs of a first node to an N th node in the M nodes.
  • the controller may use SIDs of the intermediate node 1 and the intermediate node 2 as the first SID list, and use SIDs of the intermediate node 3 and the tail node as the second SID list.
  • the controller may use a SID of the intermediate node 1 as the first SID list, and use SIDs of the intermediate node 2, the intermediate node 3, and the tail node as the second SID list.
  • the M nodes in the target forwarding path may alternatively be classified into three segments.
  • S212 The controller generates a second SID list based on SIDs of an X th node to a Y th node in the M nodes, where X is equal to N+1.
  • S213 The controller sends the first SID list to the head node.
  • the sending the first SID list to the head node may include: sending an SR policy 1 to the head node, where the SR policy 1 includes the first SID list.
  • the controller sends the second SID list to the intermediate node, where the intermediate node is the N th node in the M nodes, and N is greater than or equal to 1.
  • the sending the second SID list to the intermediate node may include: sending an SR policy 2 to the intermediate node, where the SR policy 2 includes the second SID list.
  • a receiver of the first SID list should be the head node.
  • the head node is configured to encapsulate, in front of to-be-forwarded data, a packet header including the first SID list (refer to Table 2), to generate a to-be-forwarded packet; and send the to-be-forwarded packet to the intermediate node based on the first SID list in the to-be-forwarded packet.
  • a receiver of the second SID list should be the intermediate node.
  • the intermediate node is configured to replace the first SID list in the packet header of the to-be-forwarded packet with the second SID list, and forward the to-be-forwarded packet based on a destination address in a packet header obtained through replacement.
  • the first SID list may be delivered to the head node
  • the second SID list is delivered to a last node in the first SID list
  • the third SID list is delivered to a last node in the second SID list.
  • the last node in the second SID list and a last node in the third SID list may be the intermediate node 1 and the intermediate node 2 respectively.
  • the target forwarding path may alternatively be divided into more than two subpaths.
  • FIG. 3A , FIG. 3B , and FIG. 3C are a schematic diagram 2 of an interaction procedure of a data forwarding method according to an embodiment of this application.
  • This embodiment of this application relates to a head node, an intermediate node 1, an intermediate node 2, an intermediate node 3, a tail node, and the like.
  • other nodes in a target forwarding path may be included between the intermediate node 1 and the intermediate node 2 and between the intermediate node 3 and the tail node.
  • nodes in a non-target forwarding path may be included between the head node and the intermediate node 1 and between the intermediate node 2 and the intermediate node 3.
  • this embodiment of this application includes the following steps.
  • S301 The head node receives to-be-forwarded data.
  • the head node obtains a first SID list corresponding to the to-be-forwarded data, where the first SID list is generated based on SIDs of first N nodes in M nodes in the target forwarding path, N is less than M, and N is greater than or equal to 1.
  • the head node encapsulates, in front of the to-be-forwarded data, a packet header including the first SID list, to obtain a to-be-forwarded packet.
  • the head node sends the to-be-forwarded packet to the intermediate node 1 based on the first SID list, where the intermediate node 1 is an N th node.
  • the intermediate node 1 obtains a second SID list corresponding to the to-be-forwarded packet, where the second SID list is generated based on an (N+1) th node to an (X-1) th node in the M nodes.
  • the intermediate node 1 replaces the first SID list in the packet header with the second SID list.
  • the intermediate node 1 forwards the to-be-forwarded packet to the intermediate node 2 based on the second SID list, where the intermediate node 2 is the (X-1) th node.
  • the intermediate node 2 obtains a third SID list corresponding to the to-be-forwarded packet, where the third SID list is generated based on an X th node to a Y th node in the M nodes.
  • the intermediate node 2 replaces the second SID list in the packet header with the third SID list.
  • S310 The intermediate node 2 forwards the to-be-forwarded packet to the intermediate node 3 based on the third SID list, where the intermediate node 3 is the Y th node.
  • the intermediate node 3 obtains a fourth SID list corresponding to the to-be-forwarded packet, where the fourth SID list is generated based on a (Y+1) th node to a Z th node in the M nodes.
  • S312 The intermediate node 3 replaces the third SID list in the packet header with the fourth SID list.
  • S313 The intermediate node 3 forwards the to-be-forwarded packet to the tail node based on the fourth SID list, where the tail node is the Z th node.
  • S314 The tail node removes the packet header of the to-be-forwarded packet to obtain the to-be-forwarded data.
  • S315 The tail node forwards the to-be-forwarded data based on a destination address of the to-be-forwarded data.
  • Steps performed by the head node, the intermediate node, and the tail node in this embodiment of this application may be implemented according to the implementation in the embodiment shown in FIG. 2A and FIG. 2B .
  • Steps performed by the head node, the intermediate node, and the tail node in this embodiment of this application may be implemented according to the implementation in the embodiment shown in FIG. 2A and FIG. 2B .
  • Steps performed by the head node, the intermediate node, and the tail node in this embodiment of this application may be implemented according to the implementation in the embodiment shown in FIG. 2A and FIG. 2B .
  • Steps performed by the head node, the intermediate node, and the tail node in this embodiment of this application may be implemented according to the implementation in the embodiment shown in FIG. 2A and FIG. 2B .
  • FIG. 2A and FIG. 2B For details, refer to the detailed description in the embodiment shown in FIG. 2A and FIG. 2B .
  • SID nodes included in the target forwarding path can be divided into at least two parts, so that during data forwarding, a maximum quantity of SIDs supported by a device in a data transmission network can meet a requirement of a quantity of SID nodes included in a packet header.
  • FIG. 4 is a schematic diagram 2 of a network architecture.
  • the transmission network shown in FIG. 1 may include a basic transmission network and a target transmission network.
  • the target transmission network may perform data transmission with the basic transmission network through an edge device located at an edge of the target transmission network.
  • the target transmission network may include several target transmission subnets.
  • An edge device in each target transmission subnet may perform data transmission through a device in the basic transmission network.
  • the edge device may also become a gateway device of each target transmission subnet.
  • a packet when being transmitted in the target transmission network, a packet needs to be transmitted along a preset forwarding path.
  • the target transmission network in FIG. 4 may be a data center network (Data Center Network, DCN).
  • DCN Data Center Network
  • the DCN may be used to carry various service units in a telco cloud network.
  • the telco cloud network may also be referred to as a telco cloud, and is a network based on an NFV technical architecture.
  • An NFV technology is proposed to resolve problems such as numerous telecom network hardware, complex deployment and operation and maintenance, and difficult service innovation.
  • the NFV technology aims to plan and construct a network architecture based on a distributed cloud data center.
  • NFV and SDN technologies are used to implement layered decoupling of software and hardware, function virtualization, automatic deployment, and flexible resource scheduling.
  • the telco cloud network is an NFV network constructed based on the foregoing ideas.
  • the basic transmission network may include a metropolitan (Metro) network and a backbone (Core) network.
  • the metro network and the core network each may include one or more types of routing devices, such as a customer edge (Custom Edge, CE) device, a provider edge (Provider Edge, PE) device, and a provider router/backbone router (Provier Router, P device for short).
  • FIG. 5 is a schematic diagram 3 of a network architecture.
  • a DCN may use a multilevel hierarchical architecture.
  • the DCN may include: an access data center (Access Data Center, ADC) network, an edge data center (Edge Data Center, EDC) network, a regional data center (Region Data Center, RDC) network, a central data center (Central Data Center, CDC) network, and a DCN controller (DCN Controller).
  • the ADC network, the EDC network, the RDC network, and the CDC network are a plurality of DCN subnets in the DCN.
  • the ADC network may include a level-2 aggregation device, where the level-2 aggregation device may be referred to as a prefix aggregation (prefix aggregation, PRE-AGG) device.
  • the EDC network may include a level-1 aggregation device located at an edge of the EDC network, several virtual network function (Virtual Network Function, VNF) nodes, and several topology nodes, where the level-1 aggregation device may be referred to as a PE aggregation (PE aggregation, PE-AGG) device. In comparison with the level-2 aggregation device, the level-1 aggregation device is usually used to connect to a higher-level basic forwarding network.
  • VNF Virtual Network Function
  • the RDC network may include a data center gateway (Data Center Gateway, DCGW) located at an edge of the RDC network, several VNF nodes, and several topology nodes.
  • DCGW Data Center Gateway
  • the VNF node in the EDC network may be a VNF node such as a vIPS or a vFW
  • the VNF node in the RDC network may include a wide area network optimization controller (WAN Optimization Controller, vWOC)
  • WAN Optimization Controller, vWOC wide area network optimization controller
  • the topology nodes in the EDC network and the RDC network may be leaf (leaf) nodes, spine (spine) nodes, or virtual switch (vSwitch) nodes.
  • the EDC network and the RDC network may be connected to each other through a PE device.
  • the DCGW device and the PE device may be integrated or separated.
  • the DCN controller is configured to perform unified planning and management on the DCN.
  • an optical line terminal (optical line terminal, OLT) is an access network device
  • the OLT may be an initiator of a service flow in a telco cloud
  • the service flow aims to access a remote network.
  • the remote network may be the internet (Internet).
  • the internet may be connected to a basic transmission network or an edge node in the DCN through an internet gateway (Internet GateWay, IGW).
  • the service flow needs to sequentially pass through several VNF nodes in a plurality of DCN subnets based on a service attribute of the service flow, to implement access control, for example, a control requirement such as authentication and charging, on the service flow in a telecom network.
  • a list of VNF nodes through which the service flow needs to pass in the DCN may be referred to as a service function chain (Service Function Chain, SFC).
  • SFCs through which various service flows need to pass under different conditions need to be flexibly configured and managed, and therefore, flexible SFC orchestration gradually becomes one of key technologies of the telco cloud.
  • An NFV network architecture may include an SF node, an SFF node, a classification node, and an agent node.
  • the IETF SFC WG defines an SFC architecture (RFC7498/RFC7665) and an NSH-based implementation solution (RFC8300).
  • the DCN is usually considered as a private network of an enterprise.
  • an underlay network (Underlay Network) in the DCN is usually not expected to be directly exposed to the metro network and the core network. Therefore, in addition to controlling a service flow to be forwarded based on a configured SFC, a privacy requirement imposed by data forwarding also needs to be considered during SFC implementation.
  • the privacy requirement may be summarized as the following constraint: An internal topology of a DCN and a SID of an SF node cannot be exposed to a basic forwarding network.
  • FIG. 2A and FIG. 2B and FIG. 3A , FIG. 3B , and FIG. 3C are applied to the DCN shown in FIG. 4 and FIG. 5 and the telco cloud network deployed based on the DCN
  • an expansion requirement imposed by data forwarding on a network architecture also needs to be met.
  • the expansion requirement of the network architecture may be summarized as the following constraints: A data forwarding method needs to support any quantity of hierarchical DCNs, and a length of a SID list cannot exceed a maximum SID length supported by a device in a data transmission network.
  • a first SID list added by a head node includes only a SID of an edge node in a DCN, but does not include a SID of an internal node in the DCN.
  • FIG. 6A and FIG. 6B are a schematic diagram 3 of an interaction procedure of a data forwarding method according to an embodiment of this application.
  • This embodiment of this application relates to a head node, an intermediate node, and a tail node.
  • the intermediate node may be an ingress edge node in a DCN
  • the tail node may be an egress edge node in the DCN.
  • An internal node in the DCN may be further included between the intermediate node and the tail node.
  • the ingress edge node and the egress edge node in this embodiment of this application may be a same node device, and the node device may be referred to as an edge node in the DCN.
  • a SID of the edge node when the edge node is used as the ingress edge node and a SID of the edge node when the edge node is used as the egress edge node are respectively a SID 1 and a SID 2.
  • the head node may be connected to the ingress edge node in the DCN through a basic forwarding network.
  • this embodiment of this application may include the following steps.
  • S601 The head node receives to-be-forwarded data.
  • the head node may be a PRE-AGG. In another embodiment of this application, the head node may alternatively be a PE-AGG.
  • the head node obtains a first SID list corresponding to the to-be-forwarded data, where the first SID list is generated based on SIDs of first N nodes in M nodes in a target forwarding path, and N is equal to 1.
  • the head node may obtain, based on a service attribute of the to-be-forwarded data, an SR policy 1 corresponding to the to-be-forwarded data; and determine a SID list included in the SR policy 1 as the first SID list corresponding to the to-be-forwarded data.
  • the head node encapsulates, in front of the to-be-forwarded data, a packet header including the first SID list, to obtain a to-be-forwarded packet.
  • the head node sends the to-be-forwarded packet to the intermediate node based on the first SID list, where the intermediate node is the ingress edge node in the DCN.
  • the ingress edge node in the DCN may be a PRE-AGG or a DCGW.
  • the intermediate node obtains a second SID list corresponding to the to-be-forwarded packet, where the second SID list is generated based on an (N+1) th node to an M th node in the M nodes in the target forwarding path, and a node in the second SID list belongs to the DCN.
  • the intermediate node may obtain a function matching the active SID, where the function is used to instruct the intermediate node to replace the first SID list in the to-be-forwarded packet with a second SID list included in an SR policy 2; and the intermediate node determines the second SID list included in the SR policy 2 corresponding to the function as the second SID list corresponding to the to-be-forwarded packet.
  • S606 The intermediate node replaces the first SID list in the packet header with the second SID list.
  • the intermediate node forwards the to-be-forwarded packet to the tail node based on the second SID list, where the tail node is the M th node.
  • the intermediate node forwards the packet in a node list indicated by a destination address in the packet header, and finally forwards the packet to the tail node.
  • the tail node removes the packet header of the to-be-forwarded packet to obtain the to-be-forwarded data.
  • S609 The tail node forwards the to-be-forwarded data based on a destination address of the to-be-forwarded data.
  • the DCN may further include a first DCN subnet and a second DCN subnet.
  • the first DCN subnet may include an ingress edge node and an egress edge node in the first DCN subnet, and at least one SF node in the first DCN subnet.
  • the second DCN subnet may include an ingress edge node and an egress edge node in the second DCN subnet, and at least one SF node in the second DCN subnet.
  • a data forwarding process in a hierarchical DCN is similar to an interaction process in the data forwarding method shown in FIG. 3A , FIG. 3B , and FIG. 3C .
  • the intermediate node 1 may be the ingress edge node in the first DCN subnet
  • the intermediate node 2 may be the egress edge node in the first DCN subnet
  • the intermediate node 3 may be the ingress edge node in the second DCN subnet
  • the tail node may be the egress edge node in the second DCN subnet.
  • a SID list 1 that corresponds to the SR policy 1 and that matches the head node includes only a SID of the ingress edge node in the first DCN subnet, and the ingress edge node may be a first node that is in the target forwarding path and that belongs to the first DCN subnet.
  • a SID list 2 that corresponds to the SR policy 2 and that matches the ingress edge node (that is, the intermediate node) of the first DCN subnet includes a SID of an internal node (that is, an SF node in the target forwarding path) of the first DCN subnet and a SID of the egress edge node (that is, the intermediate node) of the first DCN subnet.
  • a SID list 3 that corresponds to an SR policy 3 and that matches the egress edge node (that is, the intermediate node) of the first DCN subnet includes a SID of the tail node or a SID of the ingress edge node (that is, the intermediate node) of the second DCN subnet.
  • Steps performed by the head node, the intermediate node 1, the intermediate node 2, the intermediate node 3, and the tail node in this embodiment of this application may be implemented according to the implementation in the embodiment shown in FIG. 2A and FIG. 2B .
  • Steps performed by the head node, the intermediate node 1, the intermediate node 2, the intermediate node 3, and the tail node in this embodiment of this application may be implemented according to the implementation in the embodiment shown in FIG. 2A and FIG. 2B .
  • Steps performed by the head node, the intermediate node 1, the intermediate node 2, the intermediate node 3, and the tail node in this embodiment of this application may be implemented according to the implementation in the embodiment shown in FIG. 2A and FIG. 2B .
  • FIG. 2A and FIG. 2B for details, refer to the detailed description in the embodiment shown in FIG. 2A and FIG. 2B .
  • Details and technical effects of the technical solution in this embodiment of this application refer to descriptions in the foregoing embodiments of this application. Details are not described herein again.
  • this application further provides a data forwarding method, where the method may be applied to a scenario in which an SRv6 tunnel carries a VPN service.
  • FIG. 7 is a schematic diagram of a network architecture.
  • a VPN service is usually used to control data to be transmitted between designated devices in a data transmission network, for example, between a PE 1 and a PE 2 (that is, a target PE of the VPN service).
  • the PE 1 receives to-be-forwarded data from a CE 1.
  • the to-be-forwarded data passes through an SRv6 tunnel (VPN over SRv6) that supports the VPN service and that is between the PE 1 and the PE 2, the PE 2 sends the to-be-forwarded data to a CE 2.
  • a P device may further be included between the PEs.
  • a SID of the target PE corresponding to the VPN service may be used as a SID of the VPN service.
  • a head node determines that the to-be-forwarded data needs to be transmitted to a target node specified by the VPN service.
  • a SID list added by the head node to a packet header includes a SID of a complete target forwarding path and the SID of the VPN service.
  • the SID of the VPN service is a last SID in the SID list.
  • an SRv6 technology allows the SID list in the packet header to be replaced on only one node, but does not allow a part of SIDs in the SID list in the packet header to be replaced.
  • a node list corresponding to the SRv6 tunnel is ABCD
  • the SID of the destination node of the VPN service is E
  • the SID list added by the head node may be ABCDE, that is, all SIDs of SRv6 tunnel nodes and the SID of the VPN service.
  • only the SID list is allowed to be replaced as a whole. For example, ABE is replaced with CDE as a whole, but AB in ABE is not allowed to be replaced with CD.
  • the SID list added by the head node is the SID of the VPN service, for example, E in ABCDE
  • the SID list added by the head node is a segmented SID list, for example, ABE
  • an intermediate node is not allowed to replace the SID list with CDE as a whole. Therefore, if the SRv6 tunnel is used to carry a VPN service, the data forwarding method relating to path segment delivery in the foregoing embodiment cannot be used.
  • the packet header added by the head node in front of the to-be-forwarded data is divided into two parts: an inner packet header and an outer packet header.
  • the inner packet header may be used to carry a SID of a VPN service, and may be referred to as a service header.
  • the outer packet header may be used to carry a SID list related to a target forwarding path, and may be referred to as a transport header.
  • the intermediate node only needs to replace the SID list included in the outer packet header.
  • the tail node may remove the outer packet header and the inner packet header. In this way, a data forwarding scenario in which an SRv6 tunnel carries a VPN service can be supported on the basis of path segment delivery.
  • FIG. 8A and FIG. 8B are a schematic diagram 4 of an interaction procedure of a data forwarding method according to an embodiment of this application.
  • This embodiment of this application relates to a start node of a VPN service, a head node, an intermediate node, a tail node, and a target node of the VPN service.
  • the head node may be connected to the start node of the VPN service
  • the tail node may be connected to the target node of the VPN service.
  • the tail node may determine that the to-be-forwarded data needs to be forwarded through the SRv6 tunnel to the target node of the VPN service.
  • the following uses an example in which a PE 1 and a PE 2 are respectively used as the start node and the target node of the VPN service for description.
  • this embodiment of this application may include the following steps.
  • S801 The PE 1 sends to-be-forwarded data to the head node.
  • the to-be-forwarded data is an Ethernet frame.
  • S802 The head node determines that a SID of a VPN service corresponding to the to-be-forwarded data is a SID of the PE 2.
  • the head node may determine, based on an ingress port that receives the to-be-forwarded data, whether to transmit the to-be-forwarded data based on the VPN service, and the head node may obtain the SID of the VPN service from a controller in advance.
  • the head node obtains a first SID list corresponding to the to-be-forwarded data.
  • the first SID list is generated based on first N nodes in M nodes in a target forwarding path.
  • the head node encapsulates, in front of the to-be-forwarded data, an inner packet header including the SID of the PE 2.
  • the SID of the PE 2 may be located in a destination address or an SRH field in the inner packet header.
  • the head node encapsulates, in front of the inner packet header, an outer packet header including the first SID list.
  • the head node uses to-be-forwarded data having the outer packet header and the inner packet header as a to-be-forwarded packet.
  • Table 3 schematically shows the to-be-forwarded packet obtained by adding the outer packet header and the inner packet header.
  • Table 3 To-be-forwarded packet Added outer packet header Added inner packet header To-be-forwarded data
  • S807 Send the to-be-forwarded packet to the intermediate node based on the first SID list in the outer packet header of the to-be-forwarded packet.
  • the intermediate node obtains a second SID list corresponding to the to-be-forwarded packet.
  • the second SID list is generated based on an (N+1) th node to an M th node in the M nodes in the target forwarding path.
  • the intermediate node replaces the first SID list in the outer packet header with the second SID list.
  • the intermediate node forwards the to-be-forwarded packet to the tail node based on the second SID list in the outer packet header, where the tail node is the M th node.
  • Steps S808 to S810 are similar to steps S205 to S207.
  • the tail node removes the outer packet header of the to-be-forwarded packet to obtain a to-be-forwarded packet, where a packet header of the obtained to-be-forwarded packet includes the SID of the VPN service.
  • S812 The tail node forwards the to-be-forwarded packet to the PE 2 based on the SID that is of the VPN service and that is in the to-be-forwarded packet.
  • the PE 2 removes the packet header that is in the to-be-forwarded packet and that includes the SID of the VPN service, to obtain the to-be-forwarded data.
  • S814 The PE 2 forwards the to-be-forwarded data based on a destination address of the to-be-forwarded data.
  • the tail node may alternatively remove the outer packet header and the inner packet header, and send, to the PE 2, the to-be-forwarded data obtained by removing the outer packet header and the inner packet header.
  • intermediate nodes there may be a plurality of intermediate nodes in the foregoing embodiment, or the intermediate nodes may be edge nodes in a plurality of DCN subnets.
  • a pre-planned target forwarding path may alternatively include the target node of the VPN service.
  • a SID of an M th node in the target forwarding path may be the SID of the VPN service.
  • the second SID list may be generated based on an (N+1) th node to a Z th node in the M nodes in the target forwarding path, where Z may be equal to M-1.
  • Steps performed by the head node, the intermediate node, and the tail node in this embodiment of this application may be implemented according to the implementation in the embodiment shown in FIG. 2A and FIG. 2B .
  • Steps performed by the head node, the intermediate node, and the tail node in this embodiment of this application may be implemented according to the implementation in the embodiment shown in FIG. 2A and FIG. 2B .
  • FIG. 2A and FIG. 2B For details, refer to the detailed description in the foregoing embodiment.
  • details and technical effects of the technical solution in this embodiment of this application refer to descriptions in the foregoing embodiments of this application. Details are not described herein again.
  • the following describes the data forwarding method provided in this application by using an example in a scenario in which service flow control of a VPN service is supported in a telco cloud network deployed in a hierarchical DCN.
  • FIG. 9 is a schematic diagram of a network architecture in which a data forwarding method is applied to a service scenario according to an embodiment of this application.
  • FIG. 9 schematically shows a flow direction of to-be-forwarded data that is forwarded based on a preset forwarding path of a service chain.
  • To-be-forwarded data sent by an OLT device to a PRE-AGG may be used to request the internet.
  • a P device and a PE in a metro or core (core) network are devices in a basic forwarding network.
  • the PRE-AGG is a device in a first-level DCN.
  • Leaf nodes in an EDC network and a PE-AGG are devices in a second-level DCN.
  • a spine node and leaf nodes in an RDC network and a DCGW are devices in a third-level DCN.
  • the DCGW and the PE adjacent to the DCGW may be an integrated device or separated devices.
  • FIG. 10 is a schematic diagram of an overall framework of a processing procedure in which a data forwarding method is applied to a service scenario according to an embodiment of this application.
  • FIG. 10 shows a processing process of adding a packet header, replacing a SID list in the packet header, and removing the packet header in a process of forwarding to-be-forwarded data.
  • FIG. 11 is a diagram 1 of a processing procedure in which a data forwarding method is applied to a service scenario according to an embodiment of this application.
  • FIG. 12A and FIG. 12B are a diagram 2 of a processing procedure in which a data forwarding method is applied to a service scenario according to an embodiment of this application.
  • this application provides a data transmission method. Before an interaction procedure shown in FIG. 12A and FIG. 12B is performed, the following control procedure shown in FIG. 11 may be further performed in advance.
  • Step 1.1 A DCN controller automatically discovers information related to SF nodes distributed in a telco cloud network, and allocates and delivers corresponding SRv6 SIDs to these SF nodes.
  • the SF node deployed in the telco cloud network may notify the DCN controller of identification information of the SF node in a broadcast manner, and request the DCN controller to allocate a SID to the SF node.
  • Step 1.2 A WAN controller allocates corresponding SRv6 SIDs to devices in a metro network and a core network.
  • the WAN controller may be a controller in a basic forwarding network.
  • a device in the basic forwarding network may send device identification information of the device to the WAN controller, and request the WAN controller to allocate a SID to the device.
  • Step 1.3 An orchestrator (Orchestrator) coordinates information related to the DCN controller and the WAN controller, orchestrates Topo SIDs and service SIDs in a unified manner based on a service requirement, to generate several SR policies, and delivers the SR policies to an ingress PE (PRE-AGG) of EVPN SRv6 and gateway devices of a hierarchical DC (PE-AGG/DC-GW).
  • PRE-AGG ingress PE
  • PE-AGG/DC-GW gateway devices of a hierarchical DC
  • the DCN controller may determine, based on a case in which a DCN subnet is isolated by a plurality of basic forwarding subnets of the basic forwarding network, a segment forwarding path that is obtained through division and that corresponds to a target forwarding path.
  • the orchestrator may first plan service chains based on various services in a telco cloud network, that is, lists of SIDs of SF nodes through which various types of to-be-forwarded data need to pass in a DCN. These service chains may be considered as target forwarding paths corresponding to SRv6 tunnels. Then, the orchestrator segments, by using a quantity of levels of the hierarchical DCN as a quantity of segments into which a SID list that needs to be segmented and that corresponds to the target forwarding path, using an ingress edge node in each-level DCN as a last node of each segment, and using a tail node as a last node of a last segment, the SID list corresponding to the target forwarding path. For example, three levels may correspond to three segments.
  • the orchestrator separately notifies a SID of a VPN service to the PRE-AGG (which may be considered as a head node).
  • the WAN controller and the DCN controller may deliver an allocated SID and a SID list that is obtained through segmentation.
  • Table 4 schematically shows planning of a SID of each node on an SRv6 tunnel.
  • Table 4 Name of a node device in a data transmission network SID identifier of the node device SID type corresponding to the SID identifier of the node device Operation instruction (operation) corresponding to the SID identifier Device description SR policy corresponding to the SID identifier of the node device PRE-AGG AC1 Node type SID (Node SID) End.DX2 It is used to identify an AC interface of the PRE-AGG and implement a VPWS service.
  • SR policy 1 PE-AGG B1 SID of a BSID node (BSID) End.DB6 It is used to be associated with a transport header Transport header in an EDC network and implement an SFC function in the EDC network.
  • End.DB6 is an SRv6 function newly defined in this application.
  • SR policy 2 B2 BSID End.DB6 It is used to be associated with a transport header used to transmit an SRv6 packet from a PE-AGG to a DCGW.
  • SR policy 3 DCGW B3 BSID End.DB6 It is used to be associated with a transport header in an RDC network and implement an SFC function in the RDC network.
  • SR policy 4 B4 BSID End.DT6 It is used to remove the transport header and sends a service header and a packet located after the service header to a PE.
  • Leaf (EDC) vIPS Node SID End It is used to be associated with a vIPS and implement an IPS (Intrusion Prevention System) function in the EDC network. Note: If the vIPS is SR-aware, the vIPS may alternatively allocate and distribute the SID directly.
  • vFW Node SID End It is used to be associated with a vFW and implement an FW (Firewall) function in the EDC network.
  • Leaf (RDC) vWOC Node SID End It is used to be associated with a vWOC and implement a WOC (WAN Optimization Controller) function in the RDC network.
  • PE AC2 Node SID End.DX2 It is used to identify an AC interface of the PE and implement the VPWS service.
  • Table 4 shows a name of each node device in the data transmission network, a SID identifier corresponding to the node device, a SID type corresponding to the SID identifier of the node device, an operation instruction corresponding to the SID identifier, a device description, and an SR policy corresponding to the SID identifier of the node device.
  • SID types corresponding to SID identifiers of the PRE-AGG, the PE-AGG, and the DCGW all correspond to a device whose SID type is a BSID node (BSID node).
  • Leaf (EDC) and Leaf (RDC) respectively represent a leaf (leaf) node located in the EDC network and a leaf node located in the RDC network.
  • Leaf (EDC network) represents a node device on which an SF function is deployed and that is in the EDC network. For example, two SFs such as a vIPS and a vFW are deployed on the leaf, and SIDs of the SF functions are represented by the vIPS and the vFW.
  • AC1 represents a SID of an ingress interface on the PRE-AGG
  • AC2 represents a SID of an egress interface on a PE connected to an IGW.
  • a PRE-AGG may be used as a head node
  • a PE-AGG may be used as an intermediate node
  • a DCGW may be used as an intermediate node and a tail node.
  • a SID of the PRE-AGG is AC1.
  • the PRE-AGG determines, based on the AC1, that the Ethernet frame needs to match a VPN service, and may obtain a SID corresponding to the VPN service, for example, AC2.
  • a corresponding function and a corresponding SR policy may be obtained based on a service attribute of the service flow, to process a packet.
  • the PE-AGG has two SIDs such as B1 and B2.
  • B1 that is, an active SID in the packet is B1
  • B2 that is, an active SID in the packet is B2
  • the PE-AGG processes the packet according to an SR policy corresponding to B2.
  • the DCGW has two SIDs such as B3 and B4.
  • B3 that is, an active SID in the packet is B3
  • B4 that is, an active SID in the packet is B4
  • the DCGW processes the packet according to an SR policy corresponding to B4.
  • a SID in each DCN subnet is allowed to be advertised only to a device in the DCN subnet and an edge device in the DCN subnet or a gateway device in the DCN subnet.
  • the PE-AGG is an edge device of the EDC network
  • a vIPS and a vFW are SIDs of SFs deployed on a leaf node in the EDC network. Because the PE-AGG learns an internal topology structure of the EDC network, the PE-AGG may control, based on a SID that is of each SF and that is carried in a packet, the packet to successively pass through SFs in SFCs based on the SFCs indicated by a SID list in a packet header.
  • the DCGW is a gateway device of the RDC network
  • a vWOC is a SID of an SF deployed on a leaf node in the RDC network. Because the DCGW learns an internal topology structure of the RDC network, the DCGW may control, based on a SID that is of each SF and that is carried in a packet, the packet to successively pass through SFs in SFCs based on the SFCs indicated by a SID list in a packet header.
  • the DCN subnet may alternatively be a DCN subnet applied to another service other than a telco cloud
  • the vIPS, the vFW, and the vWOC may alternatively be SFs that need to be accessed by another service in a telco cloud network.
  • SIDs are planned for an EVPN SRv6 VPWS service. If other service types, such as BGP SRv6 L3VPN, EVPN SRv6 VPLS, and EVPN SRv6 L3VPN, need to be deployed in an SRv6 tunnel manner, differentiated planning needs to be performed for SIDs on a PRE-AGG (an ingress PE of a VPN service) and a PE (an egress PE of the VPN service). In an example, SIDs of a head node and a tail node in a target forwarding path may be planned based on a requirement of another service type.
  • PRE-AGG an ingress PE of a VPN service
  • PE an egress PE of the VPN service
  • the technical solutions of this application are mainly designed for processing on a hierarchical DC gateway (a PE-AGG and a DCGW) in an edge device or a gateway device in a DCN subnet. Therefore, for a type of a service carried on an SRv6 tunnel, there is no difference in implementing the method provided in this embodiment of this application by an intermediate node.
  • a PE-AGG and a DCGW hierarchical DC gateway
  • an SR policy corresponding to each SID may be preconfigured.
  • An SR policy corresponding to AC1 may be an SR policy 1
  • an SR policy corresponding to B1 may be an SR policy 2
  • an SR policy corresponding to B2 may be an SR policy 3
  • an SR policy corresponding to B3 may be an SR policy 4.
  • Table 5 shows an example of the SR policies.
  • Table 5 shows the SR policy 1 to the SR policy 4.
  • Table 5 SR policy SID list SID list usage
  • SR policy 1 ⁇ B1> It is used to be added to a SID list in an outer packet header.
  • SR policy 2 ⁇ vIPS, vFW, B2> It is used to replace the SID list in the outer packet header when an active SID in the outer packet header is a SID of a current node.
  • SR policy 3 ⁇ B3> It is used to replace the SID list in the outer packet header when an active SID in the outer packet header is a SID of a current node.
  • SR policy 4 ⁇ vWOC, B4> It is used to replace the SID list in the outer packet header when an active SID in the outer packet header is a SID of a current node.
  • the outer packet header may be referred to as a transport header (Transport header), and an inner packet header may be referred to as a service header (Service header).
  • Transport header Transport header
  • Service header Service header
  • a processing procedure of a data forwarding method includes the following steps.
  • Step 2.1 After receiving an Ethernet frame from an AC interface, a PRE-AGG steers the Ethernet frame to a corresponding SR policy 1, and encapsulates two IPv6 headers (IPv6 header) outside the Ethernet frame.
  • IPv6 header A SID carried in an inner IPv6 header (Inner IPv6 header) is AC2, and a SID carried in an outer IPv6 header (Outer IPv6 header) is B1.
  • An SRv6 tunnel packet obtained through encapsulation is sent to a PE-AGG.
  • the PRE-AGG determines, based on a case in which a requested service in the Ethernet frame is to access the internet, that an SR policy corresponding to a service attribute of the Ethernet frame is an SR policy 1, and obtains a SID list of a first segment, that is, B1.
  • the PRE-AGG determines, according to an instruction of a DCN controller or based on a VPN service configuration of the PRE-AGG, to implement a VPWS in a manner of an SRv6-based EVPN service, and obtains a SID of a destination node of a VPN service, that is AC2, to be specific, a SID of an egress port of a PE.
  • the PRE-AGG may determine that a to-be-forwarded packet needs to be forwarded in a manner of the VPN service and determine the SID of the destination node corresponding to the VPN service.
  • Step 2.2 After receiving the SRv6 tunnel packet, the PE-AGG determines that an active SID is B1 and an SR policy corresponding to B1 is an SR policy 2, and steers the received SRv6 tunnel packet to the SR policy 2 by using B1.
  • a function configured for B1 is End.DB6. Therefore, after the outer IPv6 header is removed, an outer IPv6 header corresponding to the SR policy 2 is re-encapsulated, that is, the outer IPv6 header is replaced. Then, an SRv6 tunnel packet obtained through re-encapsulation is forwarded to an EDC network.
  • Step 2.3 In the EDC network, the SRv6 tunnel packet is forwarded to a vIPS and then to a vFW for processing. In this process, a leaf node may need to implement a processing procedure of an SFC proxy. After the processing in the EDC network is completed, the active SID in the SRv6 tunnel packet changes to B2, and the SRv6 tunnel packet is sent back to the PE-AGG based on B2.
  • Step 2.4 The PE-AGG determines that the active SID is B2 and an SR policy corresponding to B2 is an SR policy 3, steers the SRv6 tunnel packet to the SR policy 3 by using a function (End.DB6) configured for B2, processes the packet, removes the outer IPv6 header, and re-encapsulates an outer IPv6 header corresponding to the SR policy 3. Then, a first SID in the outer IPv6 header of the SRv6 tunnel packet obtained through re-encapsulation is a SID of an ingress interface of a DCGW, that is, B3. The SRv6 tunnel packet is forwarded to the DCGW based on B3.
  • a function End.DB6
  • Step 2.5 The DCGW determines that the active SID is B3 and an SR policy corresponding to B3 is an SR policy 4, steers the SRv6 tunnel packet to the SR policy 4 by using a function (End.DB6) configured for B3, processes the packet, removes the outer IPv6 header, and re-encapsulates an outer IPv6 header corresponding to the SR Policy 4. Then, an SRv6 tunnel packet obtained through re-encapsulation is forwarded to an RDC network.
  • a function End.DB6
  • Step 2.6 Processing in the RDC network is similar to that in the EDC network (Step 2.3).
  • the SRv6 tunnel packet may be forwarded to a vWOC for processing.
  • the active SID in the SRv6 tunnel packet changes to B4, and the SRv6 tunnel packet is sent back to the DCGW based on B4.
  • Step 2.7 After receiving the SRv6 tunnel packet sent back by the RDC network, the DCGW determines that the active SID is B4; and because a function of B4 is End.DT6, after removing the outer IPv6 header, the DCGW uses a DA (that is, AC2) in the inner IPv6 header to query my local SID table, and then, forwards the packet including the inner IPv6 header to the PE.
  • DA that is, AC2
  • Step 2.8 After receiving the foregoing IPv6 packet, the PE determines that the SID used as a destination address in the packet header is AC2, associates AC2 with a corresponding AC interface by using a function (End.DX2) configured for AC2, processes the packet, removes the inner IPv6 header, and sends the Ethernet frame by using the AC interface.
  • a function End.DX2
  • step 2.2 to step 2.8 in this embodiment of this application refer to descriptions in the foregoing embodiments of this application.
  • a new SRv6 function (End.DB6) is defined in this application, and the function is deployed on a gateway device of a hierarchical DC (ADC/EDC/RDC/CDC).
  • ADC/EDC/RDC/CDC a hierarchical DC
  • topology information and service information in the hierarchical DC are shielded externally (Metro/Core Network). In this way, an SRv6 SFC is effectively implemented.
  • the method can be efficiently applied to an SR SFC scenario of a telco cloud.
  • the ingress PE the PRE-AGG
  • a gateway device the PE-AGG/DCGW
  • the implementation is simple.
  • An SDN controller can be used to automatically generate and deliver an SR policy. This facilitates deployment.
  • the foregoing solution supports both an SR shortest path (Best Effort, BE) mode (which refers to an optimal SR LSP calculated by an IGP by using a shortest path algorithm) and an SR traffic engineering (Traffic Engineering, TE) mode, and is applicable to various SRv6 VPNs (including a BGP SRv6 L3VPN, an EVPN SRv6 L2VPN/L3VPN, and the like).
  • BE SR shortest path
  • TE Traffic Engineering
  • FIG. 13 is a schematic structural diagram of a data forwarding apparatus according to this application.
  • a data forwarding apparatus 1300 provided in this embodiment of this application may include a receiving module 1310, a processing module 1320, and a sending module 1330.
  • the data forwarding apparatus 1300 may be configured to perform steps performed by the head node in the data forwarding method shown in any one of the foregoing embodiments.
  • the receiving module 1310 may be configured to obtain to-be-forwarded data.
  • the processing module 1320 may be configured to obtain a first SID list corresponding to the to-be-forwarded data, where the first SID list is generated based on SIDs of a part of nodes in a target forwarding path; and encapsulate, in front of the to-be-forwarded data, a packet header including the first SID list, to obtain a to-be-forwarded packet.
  • the sending module 1330 may be configured to send the to-be-forwarded packet based on the first SID list.
  • the target forwarding path includes M nodes, the first SID list is generated based on first N nodes in the M nodes, the first SID list is replaced with a second SID list at an intermediate node, and the second SID list is generated based on an X th node to a Y th node in the M nodes, where M is greater than N, N is greater than or equal to 1, X is greater than or equal to N, and Y is less than or equal to M.
  • the receiving module 1310 may be further configured to: before the first SID list corresponding to the to-be-forwarded data is obtained, receive an SR policy sent by a controller, where the SR policy includes the first SID list.
  • the processing module 1320 may be specifically configured to obtain, based on a service attribute of the to-be-forwarded data, an SR policy corresponding to the to-be-forwarded data; and determine a SID list included in the SR policy as the first SID list corresponding to the to-be-forwarded data.
  • the head node is connected to an ingress edge node in a DCN through a basic forwarding network.
  • the target forwarding path may include: the ingress edge node in the DCN, at least one SF node in the DCN, and an egress edge node in the DCN.
  • the first SID list is generated based on a SID of the ingress edge node in the DCN.
  • the sending module 1330 may be specifically configured to send the to-be-forwarded packet to the ingress edge node in the DCN based on the first SID list through the basic forwarding network.
  • the head node is connected to an ingress edge node in a first DCN subnet in a DCN through a first basic forwarding network in a basic forwarding network, and an egress edge node in the first DCN subnet is connected to an ingress edge node in a second DCN subnet in the DCN through a second basic forwarding network in the basic forwarding network.
  • the target forwarding path includes: the ingress edge node in the first DCN subnet, at least one SF node in the first DCN subnet, the egress edge node in the first DCN subnet, the ingress edge node in the second DCN subnet, at least one SF node in the second DCN subnet, and an egress edge node in the second DCN subnet.
  • the first SID list is generated based on a SID of the ingress edge node in the first DCN subnet.
  • the sending module 1330 may be specifically configured to send the to-be-forwarded packet to the ingress edge node in the first DCN subnet based on the first SID list through the first basic forwarding network.
  • the head node is a PRE-AGG
  • the first DCN subnet is an EDC network
  • the second DCN subnet is an RDC network
  • both an ingress edge node and an egress edge node in the EDC network are PE-AGGs
  • both an ingress edge node and an egress edge node in the RDC network are DCGWs.
  • the at least one SF node in the first DCN subnet and the at least one SF node in the second DCN subnet are SF nodes in a telco cloud network; and the first basic forwarding network is a metro network, and the second basic forwarding network is a core network.
  • an M th node in the target forwarding path is a target node of a VPN service corresponding to the to-be-forwarded data.
  • the processing module 1320 may be specifically configured to encapsulate, in front of the to-be-forwarded data, an inner packet header including a SID of the target node, and encapsulate, in front of the inner packet header, an outer packet header including the first SID list; and use to-be-forwarded data having the outer packet header and the inner packet header as the to-be-forwarded packet.
  • the sending module 1330 may be specifically configured to send the to-be-forwarded packet based on the first SID list in the outer packet header.
  • the to-be-forwarded packet is an SRv6 packet.
  • the data forwarding apparatus 1300 may be configured to perform steps performed by the intermediate node in the data forwarding method shown in any one of the foregoing embodiments.
  • the receiving module 1310 may be configured to receive a to-be-forwarded packet, where a packet header of the to-be-forwarded packet includes a first SID list.
  • the processing module 1320 may be configured to obtain a second SID list corresponding to the to-be-forwarded packet, and replace the first SID list in the packet header with the second SID list.
  • the sending module 1330 may be configured to send the to-be-forwarded packet based on the second SID list.
  • the first SID list and the second SID list are separately generated based on SIDs of a part of nodes in a target forwarding path; and the target forwarding path includes M nodes, the first SID list is generated based on SIDs of an X th node to a Y th node in the M nodes, and the second SID list is generated based on SIDs of a (Y+1) th node to a Z th node in the M nodes, where X is greater than or equal to 1, Y is greater than or equal to X, and Z is less than or equal to M.
  • the to-be-forwarded packet may be an SRv6 packet.
  • the intermediate node may be the Y th node in the M nodes.
  • the receiving module 1310 may be specifically configured to: before the second SID list corresponding to the to-be-forwarded packet is obtained, receive an SR policy sent by a controller, where the SR policy includes the second SID list.
  • the processing module 1320 may be specifically configured to: when an active SID in the first SID list is a SID of the intermediate node, obtain a function, where the function is used to instruct the intermediate node to replace the first SID list in the to-be-forwarded packet with the second SID list included in the SR policy; determine the second SID list included in the SR policy corresponding to the function as the second SID list corresponding to the to-be-forwarded packet; and replace the first SID list in the packet header with the second SID list based on an indication of the function.
  • the intermediate node is an ingress edge node in a DCN, and the intermediate node is connected to a basic forwarding network.
  • the target forwarding path includes: the ingress edge node in the DCN, at least one SF node in the DCN, and an egress edge node in the DCN.
  • the first SID list is generated based on a SID of the ingress edge node in the DCN
  • the second SID list is generated based on a SID of the at least one SF node in the DCN and a SID of the egress edge node in the DCN.
  • the receiving module 1310 may be specifically configured to receive, through the basic forwarding network, the to-be-forwarded packet sent by a head node.
  • the sending module 1330 may be specifically configured to send the to-be-forwarded packet to a first SF node in the at least one SF node in the DCN based on the second SID list through an internal node in the DCN.
  • the intermediate node is an egress edge node in a first DCN subnet in a DCN, and an egress edge node in the first DCN subnet is connected to an ingress edge node in a second DCN subnet in the DCN through a basic forwarding network.
  • the target forwarding path includes: the ingress edge node in the first DCN subnet, at least one SF node in the first DCN subnet, the egress edge node in the first DCN subnet, the ingress edge node in the second DCN subnet, at least one SF node in the second DCN subnet, and an egress edge node in the second DCN subnet.
  • the first SID list is generated based on the at least one SF node in the first DCN subnet and the egress edge node in the first DCN subnet.
  • the second SID list is generated based on the ingress edge node in the second DCN subnet.
  • the receiving module 1310 may be specifically configured to receive, through an internal node in the first DCN subnet, the to-be-forwarded packet sent by a last SF node in the at least one SF node in the first DCN subnet.
  • the sending module 1330 may be specifically configured to send the to-be-forwarded packet to the ingress edge node in the second DCN subnet based on the second SID list through the basic forwarding network.
  • the first DCN subnet is an EDC network
  • the second DCN subnet is an RDC network
  • both an ingress edge node and an egress edge node in the EDC network are PE-AGGs
  • both an ingress edge node and an egress edge node in the RDC network are DCGWs.
  • At least one SF node in the EDC network and at least one SF node in the RDC network are SF nodes in a telco cloud network.
  • Z is less than M; an M h node in the target forwarding path is a target node of a VPN service corresponding to the to-be-forwarded packet; and the to-be-forwarded packet has an outer packet header and an inner packet header.
  • the outer packet header is encapsulated in front of the inner packet header, and the outer packet header includes the first SID list.
  • the inner packet header includes the target node of the VPN service.
  • the processing module 1320 may be specifically configured to replace the first SID list in the outer packet header with the second SID list.
  • the sending module 1330 may be specifically configured to send the to-be-forwarded packet based on the second SID list in the outer packet header.
  • the data forwarding apparatus 1300 may be configured to perform steps performed by the tail node in the data forwarding method shown in any one of the foregoing embodiments.
  • the receiving module 1310 may be configured to receive a to-be-forwarded packet, where a packet header of the to-be-forwarded packet includes a second SID list, and the second SID list is generated based on SIDs of a part of nodes in a target forwarding path.
  • the processing module 1320 may be configured to remove the packet header of the to-be-forwarded packet to obtain to-be-forwarded data.
  • the sending module 1330 may be configured to forward the to-be-forwarded data based on a destination address of the to-be-forwarded data.
  • the target forwarding path includes M nodes, the second SID list is generated based on SIDs of a Z th node to an M th node in the M nodes, the second SID list is obtained by replacing a first SID list at an intermediate node, and the first SID list is generated based on an X th node to a Y th node in the M nodes, where Z is greater than 1 and less than or equal to M, X is greater than or equal to 1, and Y is less than or equal to Z; and a SID of the tail node is a last SID in the second SID list.
  • the data forwarding apparatus 1300 may be configured to perform steps performed by the tail node in the data forwarding method shown in any one of the foregoing embodiments.
  • the receiving module 1310 may be configured to receive a to-be-forwarded packet, where the to-be-forwarded packet includes an outer packet header and an inner packet header, the outer packet header includes a second SID list, the second SID list is generated based on SIDs of a part of nodes in a target forwarding path, and the inner packet header includes a SID of a target node of a VPN service corresponding to the to-be-forwarded packet.
  • the processing module 1320 may be configured to remove the outer packet header of the to-be-forwarded packet to obtain a to-be-forwarded packet.
  • the sending module 1330 may be configured to forward the to-be-forwarded packet obtained by removing the outer packet header to the target node of the VPN service corresponding to the to-be-forwarded packet.
  • the target forwarding path includes M nodes, and the second SID list is generated based on SIDs of an X th node to an (M-1) th node in the M nodes, where X is greater than 1.
  • a SID of the tail node is a last SID in the second SID list.
  • the target node of the VPN service is the M th node.
  • the data forwarding apparatus 1300 may be configured to perform steps performed by the controller in the data forwarding method shown in any one of the foregoing embodiments.
  • the receiving module 1310 may be configured to obtain a target forwarding path, where the target forwarding path includes M nodes.
  • the processing module 1320 may be configured to generate a first SID list based on SIDs of a first node to an N th node in the M nodes, and generate a second SID list based on SIDs of an X th node to a Y th node in the M nodes.
  • the sending module 1330 may be configured to send the first SID list to a head node, and send the second SID list to an intermediate node, where the intermediate node is the N th node in the M nodes, N is greater than or equal to 1, X is equal to N or N+1, and Y is less than or equal to M.
  • the first SID list is used by the head node to send to-be-forwarded data received by the head node; and the second SID list is used by the intermediate node to send a to-be-forwarded packet received by the intermediate node.
  • the head node is configured to encapsulate, in front of the to-be-forwarded data, a packet header by using the first SID list as a destination address in the packet header, to generate the to-be-forwarded packet; and send the to-be-forwarded packet to the intermediate node based on the destination address; and the intermediate node is configured to replace the first SID list in the packet header of the to-be-forwarded packet with the second SID list, and forward the to-be-forwarded packet based on a destination address in a packet header obtained through replacement.
  • the sending module 1330 may be specifically configured to send an SR policy 1 to the head node, where the SR policy 1 includes the first SID list.
  • the sending module 1330 may be specifically configured to send an SR policy 2 to the intermediate node, where the SR policy 2 includes the second SID list.
  • the controller is a DCN controller in a DCN.
  • a node device provided in this embodiment of this application may serve as different roles in different scenarios.
  • a same node device may serve as any one or more roles of a head node, an intermediate node, and a tail node in different SRv6 tunnels.
  • a node device 1 is a head node in a scenario 1 and is an intermediate node in a scenario 2.
  • a same node device may alternatively serve as different roles.
  • a head node and an intermediate node may be a same node device.
  • an intermediate node and a tail node may be a same node device.
  • the receiving module in the data transmission apparatus configured to perform a function of the head node may further have a function of the receiving module in the data transmission apparatus configured to perform a function of the intermediate node.
  • the processing module in the data transmission apparatus configured to perform the function of the head node may further have a function of the processing module in the data transmission apparatus configured to perform the function of the intermediate node
  • the sending module in the data transmission apparatus configured to perform the function of the head node may further have a function of the sending module in the data transmission apparatus configured to perform the function of the intermediate node.
  • FIG. 14 is a schematic structural diagram of a node device according to this application. As shown in FIG. 14 , this application further provides a node device 1400, including:
  • the one or more processors are enabled to implement steps performed by the head node in the data forwarding method shown in the foregoing embodiments, or steps performed by the intermediate node in the data forwarding method shown in the foregoing embodiments, or steps performed by the tail node in the data forwarding method shown in the foregoing embodiments, or steps performed by the controller in the data forwarding method shown in the foregoing embodiments.
  • the node device may further include an interface 1430.
  • the interface may be configured to receive to-be-forwarded data or a to-be-forwarded packet sent by another node device; or configured to send, to another node device, to-be-forwarded data or a to-be-forwarded packet processed by the node device.
  • the processor, the storage apparatus, and the interface in the node device may be connected through a bus 1460.
  • the node device may be an edge device in a DCN.
  • the node device may be a PRE-AGG device, and may be configured to perform the steps performed by the head node in the data forwarding method shown in any one of the foregoing embodiments.
  • the node device may be a PE-AGG device, and may be configured to perform the steps performed by the head node in the data forwarding method shown in any one of the foregoing embodiments or may be configured to perform the steps performed by the intermediate node in the data forwarding method shown in any one of the foregoing embodiments.
  • the node device may be a DCGW device, and may be configured to perform the steps performed by the head node in the data forwarding method shown in any one of the foregoing embodiments or may be configured to perform the steps performed by the intermediate node in the data forwarding method shown in any one of the foregoing embodiments.
  • the node device may be a DCN controller device, and may be configured to perform the steps performed by the controller in the data forwarding method shown in any one of the foregoing embodiments.
  • the data forwarding system may include a head node and at least one intermediate node.
  • system may further include a tail node.
  • system may further include a controller.
  • the head node, the intermediate node, and the tail node may cooperate with each other to perform the steps performed by the nodes in the data forwarding method shown in any one of the foregoing embodiments.
  • the head node may be a PE-AGG
  • the intermediate node may be a PRE-AGG and/or a DCGW
  • the tail node may be a DCGW.
  • the controller is a data center network controller DCN controller.
  • This application further provides a computer-readable storage medium.
  • the computer-readable storage medium stores instructions. When the instructions are run on a computer, the instructions are used to perform the steps related to the head node in the method embodiment shown in any one of the foregoing accompanying drawings, or configured to perform the steps related to the intermediate node in the method embodiment shown in any one of the foregoing accompanying drawings, or configured to perform the steps related to the tail node in the method embodiment shown in any one of the foregoing accompanying drawings, or configured to perform the steps related to the controller in the method embodiment shown in any one of the foregoing accompanying drawings.
  • the computer storage medium may alternatively be configured to simultaneously perform steps related to at least one of the head node, the intermediate node, and the tail node.
  • This application provides a computer program.
  • the computer program When the computer program is executed by a computer, the computer program is used to perform the steps related to the head node in the method embodiment shown in any one of the foregoing accompanying drawings, or configured to perform the steps related to the intermediate node in the method embodiment shown in any one of the foregoing accompanying drawings, or configured to perform the steps related to the tail node in the method embodiment shown in any one of the foregoing accompanying drawings, or configured to perform the steps related to the controller in the method embodiment shown in any one of the foregoing accompanying drawings.
  • All or a part of the foregoing embodiments may be implemented by using software, hardware, firmware, or any combination thereof.
  • the embodiments may be implemented all or partially in a form of a computer program product.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general-purpose computer, a dedicated computer, a computer network, or another programmable apparatus.
  • the computer instructions may be stored in a computer-readable storage medium or may be transmitted from a computer-readable storage medium to another computer-readable storage medium.
  • the computer instructions may be transmitted from a website, computer, server, or data center to another website, computer, server, or data center in a wired (for example, a coaxial cable, an optical fiber, or a digital subscriber line) or wireless (for example, infrared, radio, or microwave) manner.
  • the computer-readable storage medium may be any usable medium accessible by a computer, or a data storage device, such as a server or a data center, integrating one or more usable media.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, or a magnetic tape), an optical medium (for example, a DVD), a semiconductor medium (for example, a solid-state drive Solid State Disk), or the like.

Abstract

This application provides a data forwarding method and a related apparatus. The method includes: A head node obtains to-be-forwarded data; obtains a first segment identifier SID list corresponding to the to-be-forwarded data, where the first SID list is generated based on SIDs of a part of nodes in a target forwarding path; encapsulates, in front of the to-be-forwarded data, a packet header including the first SID list, to obtain a to-be-forwarded packet; and sends the to-be-forwarded packet based on the first SID list, where the target forwarding path includes M nodes, the first SID list is generated based on first N nodes in the M nodes, the first SID list is replaced with a second SID list at an intermediate node, and the second SID list is generated based on an X<sup>th</sup> node to a Y<sup>th</sup> node in the M nodes, where M is greater than N, N is greater than or equal to 1, X is greater than or equal to N, and Y is less than or equal to M. The technical solutions provided in this application can resolve a problem that data information fails to be normally transmitted in a data transmission network because a target forwarding path is excessively long.

Description

  • This application claims priority to Chinese Patent Application No. 201910094301.8, filed on January 30, 2019 and entitled "DATA FORWARDING METHOD AND RELATED APPARATUS", which is incorporated herein by reference in its entirety.
  • TECHNICAL FIELD
  • This application relates to the field of data communications technologies, and in particular, to a data forwarding method and a related apparatus.
  • BACKGROUND
  • With rapid development of data communications technologies, more and more users exchange massive data information by accessing a data transmission network.
  • Data information is sent by a terminal device of a user to an access device of a data transmission network, and then is transmitted to a backbone network of the data transmission network via the access device. In a data information forwarding process, the data transmission network needs to determine a target forwarding path of the data information based on a service requirement of the data information. To control the data information to be forwarded based on the target forwarding path, the data transmission network needs to encapsulate a packet header for the data information at a controlled start node, where the controlled start node may be referred to as a head node, and the packet header carries the target forwarding path.
  • With rapid development of service requirements, a length of a target forwarding path may be greater than a maximum path supported by a device in a data transmission network. Consequently, data information may fail to be normally transmitted in the data transmission network.
  • SUMMARY
  • This application provides a data forwarding method and a related apparatus, to resolve a problem that data information fails to be normally transmitted in a data transmission network because a target forwarding path is excessively long.
  • According to a first aspect, this application provides a data forwarding method. The method includes:
    • obtaining, by a head node, to-be-forwarded data;
    • obtaining, by the head node, a first SID list corresponding to the to-be-forwarded data, where the first SID list is generated based on SIDs of a part of nodes in a target forwarding path;
    • encapsulating, by the head node in front of the to-be-forwarded data, a packet header including the first SID list, to obtain a to-be-forwarded packet; and
    • sending, by the head node, the to-be-forwarded packet based on the first SID list.
  • The target forwarding path includes M nodes, the first SID list is generated based on first N nodes in the M nodes, the first SID list is replaced with a second SID list at an intermediate node, and the second SID list is generated based on an Xth node to a Yth node in the M nodes, where M is greater than N, N is greater than or equal to 1, X is greater than or equal to N, and Y is less than or equal to M.
  • In the technical solution provided in this application, the M nodes related in the target forwarding path are classified into at least two subpaths, the SID list that is added by the head node in front of the to-be-forwarded data is generated based on a part of the M nodes, and a first subpath includes the first N nodes. In this way, a maximum quantity of SIDs that needs to be supported in transmission by a device in a data transmission network can be reduced, so that normal data transmission can be ensured when the target forwarding path is relatively long.
  • In a possible implementation, before the obtaining a first SID list corresponding to the to-be-forwarded data, the method includes: receiving, by the head node, an SR policy sent by a controller, where the SR policy includes the first SID list; and
    the obtaining a first SID list corresponding to the to-be-forwarded data includes: obtaining, by the head node based on a service attribute of the to-be-forwarded data, an SR policy corresponding to the to-be-forwarded data; and determining a SID list included in the SR policy as the first SID list corresponding to the to-be-forwarded data.
  • In a possible implementation, the obtaining a first SID list corresponding to the to-be-forwarded data includes: obtaining, by the head node, a SID of the head node, and reading a function function field and a parameter argument field in the SID, where the function field is used to indicate to encapsulate, in front of the to-be-forwarded data, the packet header including the first SID list, and the argument field is used to indicate the first SID list.
  • In a possible implementation, the head node is connected to an ingress edge node in a DCN through a basic forwarding network;
    • the target forwarding path includes: the ingress edge node in the DCN, at least one SF node in the DCN, and an egress edge node in the DCN;
    • the first SID list is generated based on a SID of the ingress edge node in the DCN; the second SID list is generated based on the at least one SF in the DCN and the egress edge node in the DCN; and the first SID list is replaced with the second SID list at the ingress edge node in the DCN; and
    • the sending the to-be-forwarded packet based on the first SID list includes: sending the to-be-forwarded packet to the ingress edge node in the DCN based on the first SID list through the basic forwarding network.
  • In this application, in a manner in which a first SID list in a segment SID list includes only an edge node in the DCN, a SID of an internal node in the DCN network can be prevented from being exposed in the basic forwarding network, so that the data forwarding method provided in this application can be applied to a scenario such as a telco cloud network.
  • In a possible implementation, the head node is connected to an ingress edge node in a first DCN subnet in a DCN through a first basic forwarding network in a basic forwarding network, and an egress edge node in the first DCN subnet is connected to an ingress edge node in a second DCN subnet in the DCN through a second basic forwarding network in the basic forwarding network;
    • the target forwarding path includes: the ingress edge node in the first DCN subnet, at least one SF node in the first DCN subnet, the egress edge node in the first DCN subnet, the ingress edge node in the second DCN subnet, at least one SF node in the second DCN subnet, and an egress edge node in the second DCN subnet;
    • the first SID list is generated based on a SID of the ingress edge node in the first DCN subnet; the first SID list is replaced with the second SID list at the ingress edge node in the first DCN subnet, and the second SID list is generated based on at least one SF in the first DCN subnet and the egress edge node in the first DCN subnet; and the second SID list is replaced with a third SID list at the egress edge node in the first DCN subnet, and the third SID list is generated based on the ingress edge node in the second DCN subnet; and
    • the sending the to-be-forwarded packet based on the first SID list includes: sending the to-be-forwarded packet to the ingress edge node in the first DCN subnet based on the first SID list through the first basic forwarding network.
  • In a possible implementation, the head node is a PRE-AGG, the first DCN subnet is an EDC network, the second DCN subnet is an RDC network, both an ingress edge node and an egress edge node in the EDC network are PE-AGGs, and both an ingress edge node and an egress edge node in the RDC network are DCGWs. For example, a SID of the ingress edge node and a SID of the egress edge node in the EDC network are a SID 1 and a SID 2 of the PE-AGGs respectively, and a SID of the ingress edge node and a SID of the egress edge node in the RDC network are a SID 1 and a SID 2 of the DCGWs respectively.
  • In a possible implementation, the at least one SF node in the first DCN subnet and the at least one SF node in the second DCN subnet are SF nodes in a telco cloud network; and
    the first basic forwarding network is a metro network, and the second basic forwarding network is a core network.
  • In a possible implementation, an Mth node in the target forwarding path is a target node of a VPN service corresponding to the to-be-forwarded data;
    • the encapsulating, in front of the to-be-forwarded data, a packet header including the first SID list includes:
    • encapsulating, in front of the to-be-forwarded data, an inner packet header including a SID of the target node;
    • encapsulating, in front of the inner packet header, an outer packet header including the first SID list; and
    • using to-be-forwarded data having the outer packet header and the inner packet header as the to-be-forwarded packet; and
    • the sending the to-be-forwarded packet based on the first SID list includes: sending the to-be-forwarded packet based on the first SID list in the outer packet header.
  • In a possible implementation, the to-be-forwarded packet is an SRv6 packet.
  • According to a second aspect, this application provides a data forwarding method. The method includes:
    • receiving, by an intermediate node, a to-be-forwarded packet, where a packet header of the to-be-forwarded packet includes a first SID list;
    • obtaining, by the intermediate node, a second SID list corresponding to the to-be-forwarded packet;
    • replacing, by the intermediate node, the first SID list in the packet header with the second SID list; and
    • sending, by the intermediate node, the to-be-forwarded packet based on the second SID list.
  • The first SID list and the second SID list are separately generated based on SIDs of a part of nodes in a target forwarding path; and the target forwarding path includes M nodes, the first SID list is generated based on SIDs of an Xth node to a Yth node in the M nodes, and the second SID list is generated based on SIDs of a (Y+1)th node to a Zth node in the M nodes, where X is greater than or equal to 1, Y is greater than or equal to X, and Z is less than or equal to M.
  • In a possible implementation, the to-be-forwarded packet is an SRv6 packet.
  • In a possible implementation, the intermediate node is the Yth node in the M nodes.
  • In a possible implementation, before the obtaining a second SID list corresponding to the to-be-forwarded packet, the method includes: receiving, by the intermediate node, an SR policy sent by a controller, where the SR policy includes the second SID list;
    • the obtaining a second SID list corresponding to the to-be-forwarded packet includes: when an active SID in the first SID list is a SID of the intermediate node, obtaining, by the intermediate node, an operation instruction, where the operation instruction is used to instruct the intermediate node to replace the first SID list in the to-be-forwarded packet with the second SID list included in the SR policy; and determining, by the intermediate node, the second SID list included in the SR policy corresponding to the operation instruction as the second SID list corresponding to the to-be-forwarded packet; and
    • the replacing the first SID list in the packet header with the second SID list includes: replacing the first SID list in the packet header with the second SID list based on an indication of the operation instruction.
  • In a possible implementation, the obtaining a second SID list corresponding to the to-be-forwarded data includes: obtaining, by the intermediate node, a SID of the intermediate node, and reading a function function field and a parameter argument field in the SID, where the function field is used to indicate to replace the first SID list with the second SID list, and the argument field is used to indicate the second SID list.
  • In a possible implementation, the intermediate node is an ingress edge node in a DCN, and the intermediate node is connected to a basic forwarding network;
    • the target forwarding path includes: the ingress edge node in the DCN, at least one SF node in the DCN, and an egress edge node in the DCN;
    • the first SID list is generated based on a SID of the ingress edge node in the DCN, and the second SID list is generated based on a SID of the at least one SF node in the DCN and a SID of the egress edge node in the DCN;
    • the receiving, by an intermediate node, a to-be-forwarded packet includes: receiving, by the intermediate node through the basic forwarding network, the to-be-forwarded packet sent by a head node; and
    • the sending the to-be-forwarded packet based on the second SID list includes: sending the to-be-forwarded packet to a first SF node in the at least one SF node in the DCN based on the second SID list through an internal node in the DCN.
  • In a possible implementation, the intermediate node is an egress edge node in a first DCN subnet in a DCN, and an egress edge node in the first DCN subnet is connected to an ingress edge node in a second DCN subnet in the DCN through a basic forwarding network;
    • the target forwarding path includes: the ingress edge node in the first DCN subnet, at least one SF node in the first DCN subnet, the egress edge node in the first DCN subnet, the ingress edge node in the second DCN subnet, at least one SF node in the second DCN subnet, and an egress edge node in the second DCN subnet;
    • the first SID list is generated based on the at least one SF node in the first DCN subnet and the egress edge node in the first DCN subnet;
    • the second SID list is generated based on the ingress edge node in the second DCN subnet, or the second SID list is generated based on the at least one SF node in the second DCN subnet and the egress edge node in the second DCN subnet;
    • the receiving, by an intermediate node, a to-be-forwarded packet includes: receiving, by the intermediate node through an internal node in the first DCN subnet, the to-be-forwarded packet sent by a last SF node in the at least one SF node in the first DCN subnet; and
    • the sending the to-be-forwarded packet based on the second SID list includes: sending the to-be-forwarded packet to the ingress edge node in the second DCN subnet based on the second SID list through the basic forwarding network.
  • In a possible implementation, the first DCN subnet is an EDC network, the second DCN subnet is an RDC network, both an ingress edge node and an egress edge node in the EDC network are PE-AGGs, and both an ingress edge node and an egress edge node in the RDC network are DCGWs; and a SID of the ingress edge node and a SID of the egress edge node in the EDC network are a SID 1 and a SID 2 of the PE-AGGs respectively, and a SID of the ingress edge node and a SID of the egress edge node in the RDC network are a SID 1 and a SID 2 of the DCGWs respectively.
  • In a possible implementation, at least one SF node in the EDC network and at least one SF node in the RDC network are SF nodes in a telco cloud network.
  • In a possible implementation, Z is less than M;
    • an Mth node in the target forwarding path is a SID of a target node of a VPN service corresponding to the to-be-forwarded packet;
    • the to-be-forwarded packet has an outer packet header and an inner packet header, where the outer packet header is encapsulated in front of the inner packet header;
    • the outer packet header includes the first SID list, and the inner packet header includes the target node of the VPN service;
    • the replacing the first SID list in the packet header with the second SID list includes: replacing the first SID list in the outer packet header with the second SID list; and
    • the sending the to-be-forwarded packet based on the second SID list includes: sending the to-be-forwarded packet based on the second SID list in the outer packet header.
  • According to a third aspect, this application provides a data forwarding method. The method includes:
    • receiving, by a tail node, a to-be-forwarded packet, where a packet header of the to-be-forwarded packet includes a second SID list, and the second SID list is generated based on SIDs of a part of nodes in a target forwarding path;
    • removing, by the tail node, the packet header of the to-be-forwarded packet to obtain to-be-forwarded data; and
    • forwarding, by the tail node, the to-be-forwarded data based on a destination address of the to-be-forwarded data.
  • The target forwarding path includes M nodes, the second SID list is generated based on SIDs of a Zth node to an Mth node in the M nodes, the second SID list is obtained by replacing a first SID list at an intermediate node, and the first SID list is generated based on an Xth node to a Yth node in the M nodes, where Z is greater than 1 and less than or equal to M, X is greater than or equal to 1, and Y is less than or equal to Z; and a SID of the tail node is a last SID in the second SID list.
  • According to a fourth aspect, this application provides a data forwarding method. The method includes:
    • receiving, by a tail node, a to-be-forwarded packet, where the to-be-forwarded packet includes an outer packet header and an inner packet header, the outer packet header includes a second SID list, the second SID list is generated based on SIDs of a part of nodes in a target forwarding path, and the inner packet header includes a SID of a target node of a VPN service corresponding to the to-be-forwarded packet;
    • removing, by the tail node, the outer packet header of the to-be-forwarded packet to obtain a to-be-forwarded packet; and
    • forwarding, by the tail node, the to-be-forwarded packet obtained by removing the outer packet header to the target node of the VPN service corresponding to the to-be-forwarded packet.
  • The target forwarding path includes M nodes, and the second SID list is generated based on SIDs of an Xth node to an (M―1)th node in the M nodes, where X is greater than 1; a SID of the tail node is a last SID in the second SID list; and the target node of the VPN service is the Mth node.
  • According to a fifth aspect, this application provides a data forwarding method. The method includes:
    • obtaining, by a controller, a target forwarding path, where the target forwarding path includes M nodes;
    • generating, by the controller, a first SID list based on SIDs of a first node to an Nth node in the M nodes;
    • generating, by the controller, a second SID list based on SIDs of an Xth node to a Yth node in the M nodes;
    • sending, by the controller, the first SID list to a head node; and
    • sending, by the controller, the second SID list to an intermediate node.
  • The intermediate node is the Nth node in the M nodes, where N is greater than or equal to 1, X is equal to N or N+1, and Y is less than or equal to M;
    • the head node is configured to encapsulate, in front of the to-be-forwarded data, a packet header including the first SID list, to generate the to-be-forwarded packet; and send the to-be-forwarded packet to the intermediate node based on the first SID list; and
    • the intermediate node is configured to replace the first SID list in the packet header of the to-be-forwarded packet with the second SID list, and forward the to-be-forwarded packet based on the second SID list.
  • In a possible implementation, the sending the first SID list to a head node includes: sending an SR policy 1 to the head node, where the SR policy 1 includes the first SID list; and
    the sending the second SID list to an intermediate node includes: sending an SR policy 2 to the intermediate node, where the SR policy 2 includes the second SID list.
  • In a possible implementation, Y is less than M, and an Mth node is a target node of a VPN service; and the method further includes:
    sending the target node of the VPN service to the head node, where the head node is further configured to encapsulate, in front of the to-be-forwarded data, an inner packet header including the target node of the VPN service, and encapsulate, in front of the inner packet header, an outer packet header including the first SID list, to generate a to-be-forwarded packet; and send the to-be-forwarded packet to the intermediate node based on the first SID list in the outer packet header.
  • In a possible implementation, the controller is a DCN controller in a DCN.
  • According to a sixth aspect, this application provides a data forwarding system. The system includes:
    • a head node, where the head node is configured to perform the data forwarding method according to the first aspect; and
    • at least one intermediate node, where the intermediate node is configured to perform the data forwarding method according to the second aspect.
  • In a possible implementation, the system further includes a tail node, where the tail node is configured to perform the data forwarding method according to the third aspect or the fourth aspect. The head node may be a PE-AGG, the intermediate node may be a PRE-AGG or a DCGW, and the tail node may be a DCGW.
  • In a possible implementation, the system further includes a controller, where the controller is configured to perform the data forwarding method according to the fifth aspect. The controller may be a DCN controller.
  • According to a seventh aspect, this application provides a data forwarding apparatus, applied to a network system, where the network system includes a head node, an intermediate node, and a tail node, the apparatus is located on the head node, and the apparatus includes:
    • a receiving module, configured to receive to-be-forwarded data;
    • a processing module, configured to obtain a first SID list corresponding to the to-be-forwarded data, where the first SID list is generated based on SIDs of a part of nodes in a target forwarding path; and encapsulate, in front of the to-be-forwarded data, a packet header including the first SID list, to obtain a to-be-forwarded packet; and
    • a sending module, configured to send the to-be-forwarded packet based on the first SID list, where the target forwarding path includes M nodes, the first SID list is generated based on first N nodes in the M nodes, the first SID list is replaced with a second SID list at the intermediate node, and the second SID list is generated based on an Xth node to a Yth node in the M nodes, where M is greater than N, N is greater than or equal to 1, X is greater than or equal to N, and Y is less than or equal to M.
  • According to an eighth aspect, this application provides a data forwarding apparatus, applied to a network system, where the network system includes a head node, an intermediate node, and a tail node, the apparatus is located on the intermediate node, and the apparatus includes:
    • a receiving module, configured to receive a to-be-forwarded packet, where a packet header of the to-be-forwarded packet includes a first SID list;
    • a processing module, configured to obtain a second SID list corresponding to the to-be-forwarded packet, and replace the first SID list in the packet header with the second SID list; and
    • a sending module, configured to send the to-be-forwarded packet based on the second SID list, where the first SID list and the second SID list are separately generated based on SIDs of a part of nodes in a target forwarding path; and the target forwarding path includes M nodes, the first SID list is generated based on SIDs of an Xth node to a Yth node in the M nodes, and the second SID list is generated based on SIDs of a (Y+1)th node to a Zth node in the M nodes, where X is greater than or equal to 1, Y is greater than or equal to X, and Z is less than or equal to M.
  • According to a ninth aspect, this application provides a data forwarding apparatus, applied to a network system, where the network system includes a head node, an intermediate node, and a tail node, the apparatus is located on the tail node, and the apparatus includes:
    • a receiving module, configured to receive a to-be-forwarded packet, where a packet header of the to-be-forwarded packet includes a second SID list, and the second SID list is generated based on SIDs of a part of nodes in a target forwarding path;
    • a processing module, configured to remove the packet header of the to-be-forwarded packet to obtain to-be-forwarded data; and
    • a sending module, configured to forward the to-be-forwarded data based on a destination address of the to-be-forwarded data.
  • The target forwarding path includes M nodes, the second SID list is generated based on SIDs of a Zth node to an Mth node in the M nodes, the second SID list is obtained by replacing a first SID list at the intermediate node, and the first SID list is generated based on an Xth node to a Yth node in the M nodes, where Z is greater than 1 and less than or equal to M, X is greater than or equal to 1, and Y is less than or equal to Z; and a SID of the tail node is a last SID in the second SID list.
  • According to a tenth aspect, this application provides a data forwarding apparatus, applied to a network system, where the network system includes a head node, an intermediate node, and a tail node, the apparatus is located on the tail node, and the apparatus includes:
    • a receiving module, configured to receive a to-be-forwarded packet, where the to-be-forwarded packet includes an outer packet header and an inner packet header, the outer packet header includes a second SID list, the second SID list is generated based on SIDs of a part of nodes in a target forwarding path, and the inner packet header includes a SID of a target node of a VPN service corresponding to the to-be-forwarded packet;
    • a processing module, configured to remove the outer packet header of the to-be-forwarded packet to obtain a to-be-forwarded packet; and
    • a sending module, configured to forward the to-be-forwarded packet obtained by removing the outer packet header to the target node of the VPN service corresponding to the to-be-forwarded packet, where the target forwarding path includes M nodes, and the second SID list is generated based on SIDs of an Xth node to an (M-1)th node in the M nodes, where X is greater than 1; a SID of the tail node is a last SID in the second SID list; and the target node of the VPN service is the Mth node.
  • According to an eleventh aspect, this application provides a data forwarding apparatus, applied to a network system, where the network system includes a head node, an intermediate node, a tail node, and a controller, the apparatus is located on the controller, and the apparatus includes:
    • a receiving module, configured to obtain a target forwarding path, where the target forwarding path includes M nodes;
    • a processing module, configured to generate a first SID list based on SIDs of a first node to an Nth node in the M nodes, and generate a second SID list based on SIDs of an Xth node to a Yth node in the M nodes; and
    • a sending module, configured to send the first SID list to the head node, and send the second SID list to the intermediate node, where the intermediate node is the Nth node in the M nodes, N is greater than or equal to 1, X is equal to N or N+1 , and Y is less than or equal to M.
  • In a possible implementation, the head node is configured to encapsulate, in front of to-be-forwarded data, a packet header by using the first SID list as a destination address in the packet header, to generate a to-be-forwarded packet; and send the to-be-forwarded packet to the intermediate node based on the destination address; and the intermediate node is configured to replace the first SID list in the packet header of the to-be-forwarded packet with the second SID list, and forward the to-be-forwarded packet based on a destination address in a packet header obtained through replacement.
  • For example, the data forwarding apparatus may be located on a controller side.
  • According to a twelfth aspect, this application provides a node device, including:
    • one or more processors; and
    • a storage apparatus, configured to store one or more programs.
  • When the one or more programs are executed by the one or more processors, the one or more processors are enabled to implement the data forwarding method according to the first aspect, the data forwarding method according to the second aspect, the data forwarding method according to the third aspect, or the data forwarding method according to the fourth aspect.
  • In a possible implementation, the node device may be a PRE-AGG. The node device may perform the data forwarding method according to the first aspect.
  • In a possible implementation, the node device may be a PE-AGG. The node device may perform the data forwarding method according to the second aspect or the data forwarding method according to the first aspect.
  • In a possible implementation, the node device may be a DCGW. The node device may perform the data forwarding method according to the second aspect and/or the data forwarding method according to the third aspect; or the node device may perform the data forwarding method according to the first aspect and the data forwarding method according to the third aspect.
  • According to a thirteenth aspect, this application provides a computer-readable storage medium. The computer-readable storage medium stores instructions, and when the instructions are run on a computer, the instructions are used to perform the data forwarding method according to any one of the first aspect to the fourth aspect.
  • According to a fourteenth aspect, this application provides a computer program. When the computer program is executed by a computer, the computer program is used to perform the data forwarding method according to any one of the first aspect to the fourth aspect.
  • BRIEF DESCRIPTION OF DRAWINGS
    • FIG. 1 is a schematic diagram 1 of a network architecture;
    • FIG. 2A and FIG. 2B are a schematic diagram 1 of an interaction procedure of a data forwarding method according to an embodiment of this application;
    • FIG. 3A, FIG. 3B, and FIG. 3C are a schematic diagram 2 of an interaction procedure of a data forwarding method according to an embodiment of this application;
    • FIG. 4 is a schematic diagram 2 of a network architecture;
    • FIG. 5 is a schematic diagram 3 of a network architecture;
    • FIG. 6A and FIG. 6B are a schematic diagram 3 of an interaction procedure of a data forwarding method according to an embodiment of this application;
    • FIG. 7 is a schematic diagram 4 of a network architecture;
    • FIG. 8A and FIG. 8B are a schematic diagram 4 of an interaction procedure of a data forwarding method according to an embodiment of this application;
    • FIG. 9 is a schematic diagram of a network architecture in which a data forwarding method is applied to a service scenario according to an embodiment of this application;
    • FIG. 10 is a schematic diagram of an overall framework of a processing procedure in which a data forwarding method is applied to a service scenario according to an embodiment of this application;
    • FIG. 11 is a diagram 1 of a processing procedure in which a data forwarding method is applied to a service scenario according to an embodiment of this application;
    • FIG. 12A and FIG. 12B are a diagram 2 of a processing procedure in which a data forwarding method is applied to a service scenario according to an embodiment of this application;
    • FIG. 13 is a schematic structural diagram of a data forwarding apparatus according to an embodiment of this application; and
    • FIG. 14 is a schematic structural diagram of a node device according to an embodiment of this application.
    DESCRIPTION OF EMBODIMENTS
  • Terms used in implementations of this application are merely intended to explain specific embodiments of this application, but are not intended to limit this application.
  • Technical solutions provided in this application are used to implement a control process of transmitting to-be-forwarded data based on a preset target forwarding path in a data transmission network. In this application, the data transmission network may include several nodes, and the target forwarding path may be defined as a list of node identifiers including node identifiers of at least two nodes.
  • A data forwarding method provided in this application may be applied to a plurality of network architectures. The following separately describes, with reference to various network architectures, technical solutions and technical effects of the data forwarding method provided in this application.
  • FIG. 1 is a schematic diagram 1 of a network architecture. As shown in FIG. 1, in the network architecture, a data transmission network may include a head node, a tail node, an intermediate node, and another node. The head node may be a start node in a process of controlling to-be-forwarded data to be forwarded based on a target forwarding path, the tail node may be an end node in the control process, the intermediate node may be a node in the target forwarding path, and the another node may be located at another location in the transmission network. For example, the another node may be located before the head node, after the tail node, or between intermediate nodes. The target forwarding path may include at least one intermediate node, and intermediate nodes in the target forwarding path may be adjacent or may be connected through another node. The target forwarding path may further include one or more other nodes. In this embodiment of this application, the target forwarding path may not include the head node, or may include the head node.
  • Based on the network architecture shown in FIG. 1, to control the to-be-forwarded data to be forwarded based on the target forwarding path, in a control manner, when the to-be-forwarded data arrives at the head node, the head node may preprocess the to-be-forwarded data, and encapsulate, in front of the to-be-forwarded data, a packet header including the target forwarding path, to obtain a to-be-forwarded packet, where the target forwarding path may be used to indicate a node in the data transmission network to forward the to-be-forwarded data to the tail node in a node list corresponding to the target forwarding path in the packet header; and the tail node may perform control releasing processing on the packet, and remove the packet header including the target forwarding path from the to-be-forwarded packet, to obtain the to-be-forwarded data. Then, the to-be-forwarded data may continue to be transmitted in the network based on an original destination address of the to-be-forwarded data. For example, the to-be-forwarded data may be a data frame, for example, an Ethernet frame. In this case, the destination address of the to-be-forwarded data may be a destination MAC address in the Ethernet frame. For another example, the to-be-forwarded data may be a network layer packet, for example, an IP packet. In this case, the destination address of the to-be-forwarded data may be a destination IP address in the IP packet.
  • In an actual application, a segment routing (Segment Routing, SR) technology defined by the source packet routing in networking (Source Packet Routing in Networking, SPRING) working group (WorkGroup, WG) in the internet engineering task force (The Internet Engineering Task Force, IETF) may be used to implement the foregoing control manner.
  • SR is a tunneling technology based on a source routing forwarding mode. For one SR tunnel in the transmission network, an ingress node and an egress node of the SR tunnel may be respectively considered as the head node and the tail node in the foregoing control manner. The SR tunnel may correspond to a target forwarding path that includes at least two nodes and that is in the foregoing control manner. A basic design idea of the SR is that a per-flow (per-flow) status needs to be maintained only on the head node, but does not need to be maintained on the intermediate node and the tail node. The per-flow status is used by the SR tunnel to reserve a resource, such as bandwidth, for each service flow.
  • In the SR technology, an identifier of a node may be represented by a segment identifier (Segment Identifier, SID). The SID may be an instruction with topology or service semantics. The target forwarding path corresponding to the SR tunnel may be generated based on SIDs of the at least two nodes. For example, the target forwarding path may be formed by successively arranging the SIDs of the at least two nodes in a preset forwarding sequence. For example, identifiers of the head node, an intermediate node 1, an intermediate node 2, an intermediate node 3, and the tail node in the data transmission network shown in FIG. 1 may be a SID 1, a SID 2, a SID 3, a SID 4, and a SID 5 respectively. In an example, if the to-be-forwarded data needs to be transmitted to the tail node via the intermediate node 1, the intermediate node 2, and the intermediate node 3, a corresponding target forwarding path may be represented as {SID 2; SID 3; SID 4; SID 5}. In another example, if the to-be-forwarded data needs to be transmitted to the tail node via the intermediate node 1 and the intermediate node 3, a corresponding target forwarding path may be represented as {SID 2; SID 3; SID 4; SID 5}.
  • In the SR technology, an SR data plane may be based on multi-protocol label switching (Multi-Protocol Label Switching, MPLS), or may be based on IPv6. The SR data plane based on multi-protocol label switching is referred to as segment routing using MPLS as a data plane (SR MPLS) and the SR data plane based on IPv6 is referred to as segment routing using IPv6 as a data plane (Segment Routing based IPv6 data plane, SRv6). When an SRv6 technology is used to implement the foregoing control manner, SIDs of nodes in the target forwarding path may form a SID list (SID list) based on a service requirement, to indicate a forwarding path of an SRv6 tunnel defined in a manner in which SRv6 is used as a data plane. Each SID list may include at least one SID. For SRv6, a SID is a 16-bit IPv6 address in form and includes three parts: locator (Locator), function (Function), and argument (Argument). Table 1 schematically shows a structure of a SID in an SRv6 packet. Table 1
    SID in the SRv6 packet (16 bits in total)
    Locator Function Argument
  • The locator may be used for addressing, that is, related to routing. The function may be used to specify a function related to the SID, such as a topology function or a service function. The argument is an optional parameter, and may be used to specify a parameter for performing an operation related to the function. The function and the argument may be network programming parameters used to implement a network programming function of SRv6. The network programming function is described in the following.
  • It should be noted that for an SRv6 tunnel defined in an SRv6 mode, a traceroute function in common IPv6 may be used to detect a path of the SRv6 tunnel. In other words, the SID needs to support route forwarding based on a common IPv6 address on a common node other than an intermediate node in a forwarding path. In an example, if a locator part in the SID may match a network segment address in a routing table of the common node, the common node may forward the packet based on a next-hop address corresponding to the network address. In addition, some special nodes in SRv6 need to support an operation of modifying a SID list in an SRv6 packet header.
  • In the SR technology, for a packet of an SRv6 type (referred to as an SRv6 packet below), the IETF 6man WG defines that an IPv6 segment routing header (Segment Routing Header, SRH) may be used to carry a SID list, to specify a forwarding path of the IPv6 packet. The SRH may be an IPv6 routing header (Routing Header) with Routing Type = 4. For example, a name of an IE corresponding to the SRH may be draft-ietf-6man-segment-routing-header-14. A loose source routing mode may be used for the SRH. That is, not all hops in the forwarding path need to support and parse the SRH, and not all hop nodes in the forwarding path need to be included in the SID list in the SRH, either. In an example, the SID list in the SRH may include only one node. In some scenarios, an SRv6 tunnel packet may even not include an SRH field. For example, when a SID list that needs to be added includes a SID of only one node, the SID of the node may be added to a destination address field of a to-be-forwarded packet.
  • In the SR technology, before an SR tunnel is used to forward data based on a target forwarding path, the SR tunnel needs to be first established, that is, a SID of each node needs to be allocated and a SID list corresponding to the target forwarding path needs to be determined. The SID list used to establish the SR tunnel may be specified by using an explicit candidate path (Explicit candidate path) or a dynamic candidate path (Dynamic candidate path). In an example, a controller of the data transmission network may allocate a SID to each node. In another example, target forwarding paths may be planned for various types of to-be-forwarded data that arrive at the head node.
  • In the SR technology, when data is to be forwarded through the SRv6 tunnel defined in the SRv6 mode, nodes through which an SRv6 packet may pass in the data transmission network may be classified into the following device roles (device role).
  • Non-SRv6 node (Non-SRv6 node): The non-SRv6 node is a node that does not support or use an SRv6 function. This type of node can only forward a common IPv6 packet. For example, this type of node does not support to forward a packet based on a SID list carried in an SRH field of a packet header. For another example, this type of node supports to forward only a to-be-forwarded packet in which an IP address in a destination address is native (Native) IPv6.
  • Forwarding node (Transit node): The forwarding node is a node on which the SRv6 function has been enabled. An active SID (Active SID) of an SRv6 packet is not installed in my local SID table (My Local SID table) on this type of node. It should be noted that a SID configured in my local SID table on a node is a SID of the node. An active SID of an SRv6 packet is a SID in a SID list carried in the SRv6 packet. The active SID is used to indicate a destination node at which the SRv6 packet is expected to arrive. When a node receives an SRv6 packet and an active SID in a SID list carried in a packet header of the SRv6 packet is not a SID of the node (that is, the active SID in the SRv6 packet is not installed), the node needs to forward the SRv6 packet based on a destination node indicated by the active SID. In this case, the node only forwards the packet without performing special processing. Therefore, the node serves as a forwarding node.
  • Binding segment identifier node (Binding Segment Identifier node, BSID node): The binding segment identifier node is a node on which the SRv6 function has been enabled and that uses a BSID mechanism (draft-ietf-spring-segment-routing-policy-01) to steer traffic to a new SR policy (SR policy). In other words, the BSID node may be a node configured with an SR policy.
  • Endpoint node (Endpoint node): The endpoint node is a node on which the SRv6 function has been enabled, and an active SID of an SRv6 packet has been installed in my local SID table on the node. It should be noted that, when a node receives an SRv6 packet and an active SID in a SID list carried in a packet header of the SRv6 packet is a SID of the node (that is, the active SID of the SRv6 packet has been installed on the node), the node needs to identify, as a new active SID, a next SID of a SID that is currently identified as the active ID and that is in the SID list carried in the SRv6 packet. Then, the current node continues to forward the SRv6 packet based on a destination node indicated by the new active SID. In this case, the node serves as an endpoint node. In other words, the endpoint node may be a node in a SID list corresponding to a target forwarding path.
  • It should be noted that my local SID table is used to implement an SRv6 network programming function. This table maintains all local SIDs (SIDs allocated and interpreted by the node) of the endpoint node. Based on the description in draft-filsfils-spring-srv6-network-programming-05, the SIDs in my local SID table need to be explicitly configured and generated.
  • It can be learned that the foregoing device roles (device role) are classified based on matching between an active SID and my local SID table in a forwarding process.
  • A process of forwarding to-be-forwarded data through an SRv6 tunnel may include as follows.
  • A head node (which may be considered as a BSID node) steers traffic to an SR policy. The head node obtains, based on a current active candidate path (active Candidate path) of the SR policy, a SID list corresponding to a specified path. Then, the head node encapsulates, in front of the to-be-forwarded data, a packet header including the SID list, to obtain a to-be-forwarded packet through encapsulation, where a first SID in the SID list is indicated as an active SID; and then forwards the to-be-forwarded packet to a downstream device by using the active SID as a destination address (Destination Address, DA). At any time when an SRv6 packet is forwarded through an SRv6 tunnel, there is only one active SID (Active SID) in a SID list of the SRv6 packet. The active SID is used to identify a SID of a next-hop node. When receiving the SRv6 packet, an intermediate node queries my local SID table based on the active SID (that is, an IPv6 DA). If a matching entry exists (that is, the active SID is a SID of the intermediate node), the intermediate node performs related processing based on a function (Function) associated with the hit local SID entry. After completing the related processing, the intermediate node updates the active SID in the SID list (for example, indicates a next SID of the current active SID in the SID list as a new active SID), and then the intermediate node forwards the SRv6 packet to a downstream node based on a destination node indicated by the updated active SID. When the SRv6 packet is forwarded to a tail node (a SID of the tail node is the same SID as the active SID and is a last SID in the SID list), the tail node may remove the packet header encapsulated in front of the to-be-forwarded data. One or more intermediate nodes (each intermediate node may be considered as an endpoint node) may exist between the head node and the tail node. One or more other nodes (which may be considered as non-SRv6 nodes or forwarding nodes) may exist between the head node and the intermediate node. One or more other nodes (which may be considered as non-SRv6 nodes or forwarding nodes) may exist between the intermediate node and the tail node.
  • It should be noted that, in the SR technology, an SR tunnel technology defined in an SRv6 manner has a general feature of SR. A difference between the SR tunnel technology defined in the SRv6 manner and an SR tunnel technology defined in an MPLS manner lies in that the tunnel technology defined in the SRv6 manner supports network programming. With network programming, the tunnel technology defined in the SRv6 manner has powerful scalability.
  • In the SR technology, the function and the argument in the SID may be used as network programming parameters that support a network programming function. The network programming parameter may be used to indicate a node on a tunnel to process a packet based on a function (function) corresponding to the network programming parameter, where the tunnel is defined in the SRv6 manner. The SR technology supports to define a plurality of types of functions.
  • For example, an end function (End Function) may be used to implement a processing step in which an endpoint node updates an active SID and the endpoint node is indicated to forward an SRv6 packet based on an updated active SID. For example, the end function may include the following processing logic:
    Figure imgb0001
    Figure imgb0002
  • Logically, another function may be a variant of the end function. It should be noted that an advantage of SRv6 network programming lies in that the function allows a plurality of extension forms. For example, an SRv6 network programming function allows logical extension in "any" form.
  • For another example, in the foregoing process of forwarding the to-be-forwarded data through the SRv6 tunnel, the head node in the transmission network may be a BSID node, and a network programming parameter carried in the SRv6 packet may be used to indicate the BSID node to preprocess SRv6 according to an SR policy (SR policy) corresponding to the SRv6 packet. For example, the BSID node may generate, based on a SID list corresponding to the SR policy, a packet header including the SID list, and encapsulate the packet header in front end of the to-be-forwarded data, to obtain a to-be-forwarded SRv6 packet.
  • In addition, an SRv6 technology that supports network programming may also be applied to a plurality of application scenarios. For example, the SRv6 technology may implement a packet forwarding control manner such as a border gateway protocol (Border Gateway Protocol, BGP), an SR-based layer 3 VPN service (SR L3VPN), an Ethernet VPN-based layer 2 VPN service (EVPN L2VPN), an Ethernet VPN-based layer 3 VPN service (EVPN L3VPN), or a service function chain (Service Function Chain, SFC). In an example, a forwarding path that corresponds to a packet and that is defined based on the SR L3VPN may be used as a SID list, and the SID list is added to a packet header at the head node of the SRv6 tunnel.
  • In another embodiment of this application, an IE name corresponding to network programming may be draft-filsfils-spring-srv6-network-programming-05.
  • It should be further noted that, in the SR technology, to shield topology details of a part of networks and avoid a problem of insufficient hardware chip MSD specifications, a BSID technology may be used to steer (steer) traffic to an SR policy. A BSID node is defined as a node with a special function on an SR tunnel. One or more SR policies may be preset on the BSID node, and each SR policy may correspond to one SID list. With reference to the foregoing forwarding procedure, the head node is assigned a role of the BSID node, and the head node may receive an SR policy in advance, where the SR policy includes a target forwarding path, and the SR policy may be delivered by a controller device in a network. The BSID node may encapsulate, in front of the to-be-forwarded data, a packet header including the SID list, to generate a to-be-forwarded packet. For example, the SID list may be located in an SRH field or a destination address field.
  • In the foregoing control manner, the SID list encapsulated by the head node in front of the to-be-forwarded data is generated based on SIDs of all nodes that need to be passed through in a complete target forwarding path. When there are a large quantity of nodes that need to be passed through, a length of the SID list is very long. For example, the complete target forwarding path may include an intermediate node 1, an intermediate node 2, an intermediate node 3, ..., and an intermediate node 19, and a tail node. A SID list formed by SIDs of the nodes may be {SID 2; SID 3; SID 4;..., SID 20; SID 21;}. Therefore, the BSID node and the endpoint node in the data transmission network need to support a SID list whose length is 20. It can be seen that, the implementation of the foregoing control manner has a relatively high requirement for a maximum SID depth (Maximum SID Depth, MSD) that needs to be supported by a device in the data transmission network. In some scenarios, when MSDs supported by some low-end devices in the data transmission network are less than a length of a SID list required in some service scenarios, data cannot be forwarded along the complete target forwarding path.
  • To resolve the foregoing problem, the embodiments of this application provide the following data forwarding method.
  • FIG. 2A and FIG. 2B are a schematic diagram 1 of an interaction procedure of a data forwarding method according to an embodiment of this application. This embodiment of this application relates to a head node, an intermediate node, a tail node, and the like.
  • The following uses the data transmission network shown in FIG. 1 as an example for description. A target forwarding path may include an intermediate node 1, an intermediate node 2, an intermediate node 3, and the tail node. A SID list corresponding to the target forwarding path formed by these nodes is {SID 2; SID 3; SID 4; SID 5;}.
  • To make a length of the SID list that needs to be added to to-be-forwarded data or a to-be-forwarded packet be relatively short, in an example, before the head node receives the to-be-forwarded data, on a control plane, a controller in the network may divide the target forwarding path into several segments. Division into two segments is used as an example. The SID list corresponding to the target forwarding path may be divided into a first SID list and a second SID list. Then, the controller may deliver the first SID list to the head node, and deliver the second SID list to a last node in the first SID list. The intermediate node in the interaction procedure shown in FIG. 2A and FIG. 2B may be the last node in the first SID list. Then, at a forwarding layer (which may also be referred to as a data layer), the head node, the intermediate node, and the tail node may implement the following steps. As shown in FIG. 2A and FIG. 2B, this embodiment of this application includes the following steps.
  • S201: The head node receives to-be-forwarded data.
  • The to-be-forwarded data may be a data frame or an IP packet. For example, the data frame may be an Ethernet (Ethernet) frame. The to-be-forwarded data may carry service attributes such as type information of a requested service and service-related parameter information. For example, the to-be-forwarded data is a video file and a file name on a server that are requested to be accessed. In an example, the head node may receive the to-be-forwarded data from another node.
  • S202: The head node obtains the first SID list corresponding to the to-be-forwarded data, where the first SID list is generated based on SIDs of first N nodes in M nodes in the target forwarding path, N is less than M, and N is greater than or equal to 1.
  • The head node may obtain, based on the service attribute of the to-be-forwarded data, an SR policy 1 corresponding to the to-be-forwarded data; and determine a SID list included in the SR policy 1 as the first SID list corresponding to the to-be-forwarded data. It should be noted that, from a perspective of a service, different service attributes may correspond to different target forwarding paths. The controller may pre-plan target forwarding paths corresponding to various service attributes, segment a target forwarding path with a relatively long length, and then, separately deliver SID lists obtained by segmenting a target forwarding path to the head node and another corresponding intermediate node by using different SR policies. The head node may store a correspondence between an SR policy and a service attribute, and when receiving to-be-forwarded data, obtain a corresponding SR policy based on a service attribute carried in the to-be-forwarded data.
  • In this application, if N is equal to 1, the first SID list is generated based on a SID of a first node in the target forwarding path. In other words, the first SID list may include the SID of the first node in the target forwarding path. If N is greater than 1, the first SID list is generated based on SIDs of a first node to an Nth node in the target forwarding path. In other words, the first SID list may include the SIDs of the first node to the Nth node.
  • S203: The head node encapsulates, in front of the to-be-forwarded data, a packet header including the first SID list, to obtain a to-be-forwarded packet.
  • The to-be-forwarded packet obtained through encapsulation may include two parts: the packet header and the to-be-forwarded data. The packet header includes the first SID list. It should be noted that, that the packet header is encapsulated in front of the to-be-forwarded data means that the packet header is encapsulated outside the to-be-forwarded data rather than inside the to-be-forwarded data. Table 2 schematically shows the to-be-forwarded packet obtained through encapsulation. Table 2
    To-be-forwarded packet
    Added packet header To-be-forwarded data
  • In an implementation of this application, when the first SID list includes only one SID, the SID may be directly used as a destination address in the packet header, and the packet header is encapsulated in front of the to-be-forwarded data. In another implementation, when the first SID list includes two or more SIDs, the SID list may be added to an SRH field in the packet header, and the packet header encapsulated with the SRH field is encapsulated in front of the to-be-forwarded data. In this application, the foregoing two implementations may be used when the head node encapsulates, in front of the to-be-forwarded data, a packet header including any SID list and when the intermediate node replaces a SID list. S204: The head node sends the to-be-forwarded packet to an intermediate node based on the first SID list, where the intermediate node is the Nth node.
  • In this application, when the SID list in the packet header includes only one SID, the SID may be located in the destination address in the packet header, and the head node may send the to-be-forwarded data to the intermediate node based on the destination address in the packet header. When the SID list in the packet header includes at least two SIDs, the SID list is added to the SRH field in the packet header. The head node needs to set a first SID that has not arrived and that is in the SID list to an active SID, and set the active SID as the destination address in the packet header, to indicate a next-hop address of the to-be-forwarded packet.
  • S205: The intermediate node obtains a second SID list corresponding to the to-be-forwarded packet, where the second SID list is generated based on an (N+1)th node to an Mth node in the M nodes in the target forwarding path.
  • When the intermediate node receives the to-be-forwarded packet, and an active SID in the first SID list in the to-be-forwarded packet is a SID of the intermediate node, the intermediate node may obtain an operation instruction matching the active SID, where the operation instruction is used to instruct the intermediate node to replace the first SID list in the to-be-forwarded packet with a second SID list included in an SR policy 2; and the intermediate node determines the second SID list included in the SR policy 2 corresponding to the operation instruction as the second SID list corresponding to the to-be-forwarded packet.
  • It should be noted that the operation instruction may be a processing step that matches the active SID and that is in my local SID table, for example, an operation corresponding to the SID, or may be a processing step indicated by a function field and an argument field of the active SID.
  • S206: The intermediate node replaces the first SID list in the packet header with the second SID list.
  • In this application, the intermediate node may replace the first SID list in the packet header with the second SID list in two manners.
  • In an implementation, the intermediate node may completely replace the packet header of the received to-be-forwarded data with a new packet header. For example, an original packet header may be removed first, and then a new packet header is encapsulated, where the new packet header includes the second SID list. If the second SID list includes only one SID, the second SID list in the new packet header may be located in a destination address in the new packet header. If the second SID list includes two or more SIDs, the second SID list in the new packet header may be located in an SRH field in the new packet header, a SID of a next-hop node is set to an active SID, and the active SID is set to the destination address in the packet header. Another field in the new packet header may be filled based on a value of the field in the original packet header or generated based on an actual forwarding scenario requirement of a service. For example, the packet header may further include fields such as a source address and a flow label, and the fields may be copied or set to new values based on an actual status of a DCGW according to a local policy of the DCGW.
  • In another implementation, the intermediate node may alternatively replace only the SID list in the to-be-forwarded packet. When the first SID list on the head node is located in the destination address in the packet header, the intermediate node adds the second SID list to the SRH field in the packet header of the to-be-forwarded packet, sets a SID of a next-hop node to an active SID, and sets the active SID to the destination address in the packet header. When the first SID list on the head node is located in the SRH field in the packet header, the intermediate node may replace the first SID list in the SRH field in the original packet header with the second SID list, set a SID of a next-hop node to an active SID, and set the active SID to the destination address in the packet header.
  • S207: The intermediate node forwards the to-be-forwarded packet to the tail node based on the second SID list, where the tail node is the Mth node.
  • The intermediate node forwards the packet in a node list indicated by the second SID list, and finally forwards the packet to the tail node. It should be noted that, in the embodiments of this application, when the intermediate node is an active SID, a next unarrived SID needs to be set to an active SID, and the active SID is set to the destination address in the packet header, to indicate a next-hop address of the to-be-forwarded packet.
  • S208: The tail node removes the packet header of the to-be-forwarded packet to obtain the to-be-forwarded data.
  • In an example, both the head node and the intermediate node may be BSID nodes in an SRv6 tunnel. The intermediate node may be an endpoint node in the SRv6 tunnel. The tail node may be a last node in the target forwarding path.
  • In this application, the M nodes related in the target forwarding path are classified into at least two subpaths, a first subpath includes the first N nodes, and a second subpath includes the (N+1)th node to the Mth node. In this way, a quantity of SIDs in a SID list in a to-be-forwarded packet that is transmitted by a device in the data transmission network may not exceed a quantity of MSDs supported by a single device. Therefore, normal data transmission can be ensured when the target forwarding path is relatively long.
  • In this embodiment of this application, as shown in FIG. 2A and FIG. 2B, after S208, S209 may be further included.
  • S209: The tail node forwards the to-be-forwarded data based on a destination address of the to-be-forwarded data.
  • For example, the to-be-forwarded data may be a data frame or an IP packet, and the destination address of the to-be-forwarded data may be a destination MAC address in the data frame or a destination IP address in the IP packet. The tail node may continue to forward the to-be-forwarded data based on the destination MAC address in the data frame or the destination IP address in the IP packet.
  • In this embodiment of this application, for example, as shown in FIG. 2A and FIG. 2B, before S201, that the controller in the data transmission network pre-divides and delivers a SID list of each segment may include the following steps.
  • S210: The controller obtains a target forwarding path, where the target forwarding path includes M nodes.
  • The controller may pre-plan target forwarding paths based on various types of to-be-forwarded data that arrive at the head node. For example, the controller may plan different target forwarding paths for to-be-forwarded data that requests various services, segment each target forwarding path, and deliver a target forwarding path obtained through segmentation to a corresponding head node and intermediate node. For example, a target forwarding path that passes through several core network SF function nodes in a telco cloud network may be planned for to-be-forwarded data that requests to access the internet (Internet). The to-be-forwarded data may carry a relevant service attribute identifying that a requested service is to access the internet.
  • S211: The controller generates a first SID list based on SIDs of a first node to an Nth node in the M nodes.
  • In an example, the controller may use SIDs of the intermediate node 1 and the intermediate node 2 as the first SID list, and use SIDs of the intermediate node 3 and the tail node as the second SID list. In another example, the controller may use a SID of the intermediate node 1 as the first SID list, and use SIDs of the intermediate node 2, the intermediate node 3, and the tail node as the second SID list. In another embodiment of this application, the M nodes in the target forwarding path may alternatively be classified into three segments.
  • S212: The controller generates a second SID list based on SIDs of an Xth node to a Yth node in the M nodes, where X is equal to N+1.
  • S213: The controller sends the first SID list to the head node.
  • The sending the first SID list to the head node may include: sending an SR policy 1 to the head node, where the SR policy 1 includes the first SID list.
  • S214: The controller sends the second SID list to the intermediate node, where the intermediate node is the Nth node in the M nodes, and N is greater than or equal to 1.
  • The sending the second SID list to the intermediate node may include: sending an SR policy 2 to the intermediate node, where the SR policy 2 includes the second SID list.
  • In this application, for the controller, a receiver of the first SID list should be the head node. The head node is configured to encapsulate, in front of to-be-forwarded data, a packet header including the first SID list (refer to Table 2), to generate a to-be-forwarded packet; and send the to-be-forwarded packet to the intermediate node based on the first SID list in the to-be-forwarded packet. A receiver of the second SID list should be the intermediate node. The intermediate node is configured to replace the first SID list in the packet header of the to-be-forwarded packet with the second SID list, and forward the to-be-forwarded packet based on a destination address in a packet header obtained through replacement.
  • In another embodiment of this application, if three segments are obtained through division, that is, a first SID list, a second SID list, and a third SID list, the first SID list may be delivered to the head node, the second SID list is delivered to a last node in the first SID list, and the third SID list is delivered to a last node in the second SID list. In this case, the last node in the second SID list and a last node in the third SID list may be the intermediate node 1 and the intermediate node 2 respectively.
  • In this embodiment of this application, the target forwarding path may alternatively be divided into more than two subpaths. For example, there may be a plurality of intermediate nodes in the data transmission network. For example, there may be three intermediate nodes. FIG. 3A, FIG. 3B, and FIG. 3C are a schematic diagram 2 of an interaction procedure of a data forwarding method according to an embodiment of this application. This embodiment of this application relates to a head node, an intermediate node 1, an intermediate node 2, an intermediate node 3, a tail node, and the like. In a possible scenario, other nodes in a target forwarding path may be included between the intermediate node 1 and the intermediate node 2 and between the intermediate node 3 and the tail node. Other nodes in a non-target forwarding path may be included between the head node and the intermediate node 1 and between the intermediate node 2 and the intermediate node 3. As shown in FIG. 3A, FIG. 3B, and FIG. 3C, this embodiment of this application includes the following steps.
  • S301: The head node receives to-be-forwarded data.
  • S302: The head node obtains a first SID list corresponding to the to-be-forwarded data, where the first SID list is generated based on SIDs of first N nodes in M nodes in the target forwarding path, N is less than M, and N is greater than or equal to 1.
  • S303: The head node encapsulates, in front of the to-be-forwarded data, a packet header including the first SID list, to obtain a to-be-forwarded packet.
  • S304: The head node sends the to-be-forwarded packet to the intermediate node 1 based on the first SID list, where the intermediate node 1 is an Nth node.
  • S305: The intermediate node 1 obtains a second SID list corresponding to the to-be-forwarded packet, where the second SID list is generated based on an (N+1)th node to an (X-1)th node in the M nodes.
  • S306: The intermediate node 1 replaces the first SID list in the packet header with the second SID list.
  • S307: The intermediate node 1 forwards the to-be-forwarded packet to the intermediate node 2 based on the second SID list, where the intermediate node 2 is the (X-1)th node.
  • S308: The intermediate node 2 obtains a third SID list corresponding to the to-be-forwarded packet, where the third SID list is generated based on an Xth node to a Yth node in the M nodes.
  • S309: The intermediate node 2 replaces the second SID list in the packet header with the third SID list.
  • S310: The intermediate node 2 forwards the to-be-forwarded packet to the intermediate node 3 based on the third SID list, where the intermediate node 3 is the Yth node.
  • S311: The intermediate node 3 obtains a fourth SID list corresponding to the to-be-forwarded packet, where the fourth SID list is generated based on a (Y+1)th node to a Zth node in the M nodes.
  • S312: The intermediate node 3 replaces the third SID list in the packet header with the fourth SID list.
  • S313: The intermediate node 3 forwards the to-be-forwarded packet to the tail node based on the fourth SID list, where the tail node is the Zth node.
  • S314: The tail node removes the packet header of the to-be-forwarded packet to obtain the to-be-forwarded data.
  • S315: The tail node forwards the to-be-forwarded data based on a destination address of the to-be-forwarded data.
  • Steps performed by the head node, the intermediate node, and the tail node in this embodiment of this application may be implemented according to the implementation in the embodiment shown in FIG. 2A and FIG. 2B. For details, refer to the detailed description in the embodiment shown in FIG. 2A and FIG. 2B.
  • According to the data transmission method shown in any one of FIG. 2A and FIG. 2B and FIG. 3A, FIG. 3B, and FIG. 3C, SID nodes included in the target forwarding path can be divided into at least two parts, so that during data forwarding, a maximum quantity of SIDs supported by a device in a data transmission network can meet a requirement of a quantity of SID nodes included in a packet header.
  • The data forwarding method provided in this application may be further applied to a network architecture. FIG. 4 is a schematic diagram 2 of a network architecture. As shown in FIG. 4, in the network architecture, the transmission network shown in FIG. 1 may include a basic transmission network and a target transmission network. In an example, the target transmission network may perform data transmission with the basic transmission network through an edge device located at an edge of the target transmission network. In another example, the target transmission network may include several target transmission subnets. An edge device in each target transmission subnet may perform data transmission through a device in the basic transmission network. When a packet is to be transmitted in the target transmission subnet, the packet needs to be transmitted to a node in the target transmission subnet via the edge device in the target transmission subnet. Therefore, the edge device may also become a gateway device of each target transmission subnet. In this application, when being transmitted in the target transmission network, a packet needs to be transmitted along a preset forwarding path.
  • In an actual application, the target transmission network in FIG. 4 may be a data center network (Data Center Network, DCN). In an example application, the DCN may be used to carry various service units in a telco cloud network. It should be noted that the telco cloud network may also be referred to as a telco cloud, and is a network based on an NFV technical architecture. An NFV technology is proposed to resolve problems such as numerous telecom network hardware, complex deployment and operation and maintenance, and difficult service innovation. The NFV technology aims to plan and construct a network architecture based on a distributed cloud data center. NFV and SDN technologies are used to implement layered decoupling of software and hardware, function virtualization, automatic deployment, and flexible resource scheduling. The telco cloud network is an NFV network constructed based on the foregoing ideas. In another example application, the basic transmission network may include a metropolitan (Metro) network and a backbone (Core) network. The metro network and the core network each may include one or more types of routing devices, such as a customer edge (Custom Edge, CE) device, a provider edge (Provider Edge, PE) device, and a provider router/backbone router (Provier Router, P device for short).
  • FIG. 5 is a schematic diagram 3 of a network architecture. As shown in FIG. 5, a DCN may use a multilevel hierarchical architecture. For example, the DCN may include: an access data center (Access Data Center, ADC) network, an edge data center (Edge Data Center, EDC) network, a regional data center (Region Data Center, RDC) network, a central data center (Central Data Center, CDC) network, and a DCN controller (DCN Controller). The ADC network, the EDC network, the RDC network, and the CDC network are a plurality of DCN subnets in the DCN. The ADC network may include a level-2 aggregation device, where the level-2 aggregation device may be referred to as a prefix aggregation (prefix aggregation, PRE-AGG) device. The EDC network may include a level-1 aggregation device located at an edge of the EDC network, several virtual network function (Virtual Network Function, VNF) nodes, and several topology nodes, where the level-1 aggregation device may be referred to as a PE aggregation (PE aggregation, PE-AGG) device. In comparison with the level-2 aggregation device, the level-1 aggregation device is usually used to connect to a higher-level basic forwarding network. The RDC network may include a data center gateway (Data Center Gateway, DCGW) located at an edge of the RDC network, several VNF nodes, and several topology nodes. For example, the VNF node in the EDC network may be a VNF node such as a vIPS or a vFW, the VNF node in the RDC network may include a wide area network optimization controller (WAN Optimization Controller, vWOC), and the topology nodes in the EDC network and the RDC network may be leaf (leaf) nodes, spine (spine) nodes, or virtual switch (vSwitch) nodes. In addition, in an example, the EDC network and the RDC network may be connected to each other through a PE device. In an example, the DCGW device and the PE device may be integrated or separated.
  • In another embodiment of this application, the DCN controller is configured to perform unified planning and management on the DCN.
  • In the network architecture shown in FIG. 5, an optical line terminal (optical line terminal, OLT) is an access network device, the OLT may be an initiator of a service flow in a telco cloud, and the service flow aims to access a remote network. For example, the remote network may be the internet (Internet). The internet may be connected to a basic transmission network or an edge node in the DCN through an internet gateway (Internet GateWay, IGW).
  • Based on the network architecture shown in FIG. 5, before the service flow arrives at the remote network, the service flow needs to sequentially pass through several VNF nodes in a plurality of DCN subnets based on a service attribute of the service flow, to implement access control, for example, a control requirement such as authentication and charging, on the service flow in a telecom network. A list of VNF nodes through which the service flow needs to pass in the DCN may be referred to as a service function chain (Service Function Chain, SFC). With increasingly high degree of SDN and NFV in a telecom network, SFCs through which various service flows need to pass under different conditions need to be flexibly configured and managed, and therefore, flexible SFC orchestration gradually becomes one of key technologies of the telco cloud. An NFV network architecture may include an SF node, an SFF node, a classification node, and an agent node. For example, the IETF SFC WG defines an SFC architecture (RFC7498/RFC7665) and an NSH-based implementation solution (RFC8300).
  • It should be noted that, a difference from the metro network and the core network lies in that, the DCN is usually considered as a private network of an enterprise. In particular, an underlay network (Underlay Network) in the DCN is usually not expected to be directly exposed to the metro network and the core network. Therefore, in addition to controlling a service flow to be forwarded based on a configured SFC, a privacy requirement imposed by data forwarding also needs to be considered during SFC implementation. The privacy requirement may be summarized as the following constraint: An internal topology of a DCN and a SID of an SF node cannot be exposed to a basic forwarding network.
  • In addition, when the data forwarding methods shown in FIG. 2A and FIG. 2B and FIG. 3A, FIG. 3B, and FIG. 3C are applied to the DCN shown in FIG. 4 and FIG. 5 and the telco cloud network deployed based on the DCN, an expansion requirement imposed by data forwarding on a network architecture also needs to be met. The expansion requirement of the network architecture may be summarized as the following constraints: A data forwarding method needs to support any quantity of hierarchical DCNs, and a length of a SID list cannot exceed a maximum SID length supported by a device in a data transmission network.
  • It can be learned from the data forwarding methods shown in FIG. 2A and FIG. 2B and FIG. 3A, FIG. 3B, and FIG. 3C that, the data forwarding method provided in this application can meet the constraint that the length of the SID list does not exceed the maximum SID length supported by the device. To meet the constraint of the privacy requirement, this application provides the following data forwarding method. A first SID list added by a head node includes only a SID of an edge node in a DCN, but does not include a SID of an internal node in the DCN.
  • FIG. 6A and FIG. 6B are a schematic diagram 3 of an interaction procedure of a data forwarding method according to an embodiment of this application. This embodiment of this application relates to a head node, an intermediate node, and a tail node. For example, the intermediate node may be an ingress edge node in a DCN, and the tail node may be an egress edge node in the DCN. An internal node in the DCN may be further included between the intermediate node and the tail node. In an example, the ingress edge node and the egress edge node in this embodiment of this application may be a same node device, and the node device may be referred to as an edge node in the DCN. It should be noted that a SID of the edge node when the edge node is used as the ingress edge node and a SID of the edge node when the edge node is used as the egress edge node are respectively a SID 1 and a SID 2.
  • In some scenarios of this application, the head node may be connected to the ingress edge node in the DCN through a basic forwarding network.
  • As shown in FIG. 6A and FIG. 6B, this embodiment of this application may include the following steps.
  • S601: The head node receives to-be-forwarded data.
  • The head node may be a PRE-AGG. In another embodiment of this application, the head node may alternatively be a PE-AGG.
  • S602: The head node obtains a first SID list corresponding to the to-be-forwarded data, where the first SID list is generated based on SIDs of first N nodes in M nodes in a target forwarding path, and N is equal to 1.
  • The head node may obtain, based on a service attribute of the to-be-forwarded data, an SR policy 1 corresponding to the to-be-forwarded data; and determine a SID list included in the SR policy 1 as the first SID list corresponding to the to-be-forwarded data.
  • S603: The head node encapsulates, in front of the to-be-forwarded data, a packet header including the first SID list, to obtain a to-be-forwarded packet.
  • S604: The head node sends the to-be-forwarded packet to the intermediate node based on the first SID list, where the intermediate node is the ingress edge node in the DCN.
  • For example, the ingress edge node in the DCN may be a PRE-AGG or a DCGW.
  • S605: The intermediate node obtains a second SID list corresponding to the to-be-forwarded packet, where the second SID list is generated based on an (N+1)th node to an Mth node in the M nodes in the target forwarding path, and a node in the second SID list belongs to the DCN.
  • When an active SID in the first SID list is a SID of the intermediate node, the intermediate node may obtain a function matching the active SID, where the function is used to instruct the intermediate node to replace the first SID list in the to-be-forwarded packet with a second SID list included in an SR policy 2; and the intermediate node determines the second SID list included in the SR policy 2 corresponding to the function as the second SID list corresponding to the to-be-forwarded packet.
  • S606: The intermediate node replaces the first SID list in the packet header with the second SID list.
  • S607: The intermediate node forwards the to-be-forwarded packet to the tail node based on the second SID list, where the tail node is the Mth node.
  • The intermediate node forwards the packet in a node list indicated by a destination address in the packet header, and finally forwards the packet to the tail node.
  • S608: The tail node removes the packet header of the to-be-forwarded packet to obtain the to-be-forwarded data.
  • S609: The tail node forwards the to-be-forwarded data based on a destination address of the to-be-forwarded data.
  • In another embodiment of this application, the DCN may further include a first DCN subnet and a second DCN subnet. The first DCN subnet may include an ingress edge node and an egress edge node in the first DCN subnet, and at least one SF node in the first DCN subnet. The second DCN subnet may include an ingress edge node and an egress edge node in the second DCN subnet, and at least one SF node in the second DCN subnet.
  • For example, a data forwarding process in a hierarchical DCN is similar to an interaction process in the data forwarding method shown in FIG. 3A, FIG. 3B, and FIG. 3C. For example, in the method shown in FIG. 3A, FIG. 3B, and FIG. 3C, the intermediate node 1 may be the ingress edge node in the first DCN subnet, the intermediate node 2 may be the egress edge node in the first DCN subnet, the intermediate node 3 may be the ingress edge node in the second DCN subnet, and the tail node may be the egress edge node in the second DCN subnet.
  • It should be noted that a SID list 1 that corresponds to the SR policy 1 and that matches the head node includes only a SID of the ingress edge node in the first DCN subnet, and the ingress edge node may be a first node that is in the target forwarding path and that belongs to the first DCN subnet. A SID list 2 that corresponds to the SR policy 2 and that matches the ingress edge node (that is, the intermediate node) of the first DCN subnet includes a SID of an internal node (that is, an SF node in the target forwarding path) of the first DCN subnet and a SID of the egress edge node (that is, the intermediate node) of the first DCN subnet. A SID list 3 that corresponds to an SR policy 3 and that matches the egress edge node (that is, the intermediate node) of the first DCN subnet includes a SID of the tail node or a SID of the ingress edge node (that is, the intermediate node) of the second DCN subnet. This manner can ensure that a SID of an internal node in each hierarchical DCN subnet is not exposed to the basic forwarding network, thereby meeting a privacy requirement imposed by data forwarding when an SRv6 technology is applied to a DCN and a telco cloud network.
  • Steps performed by the head node, the intermediate node 1, the intermediate node 2, the intermediate node 3, and the tail node in this embodiment of this application may be implemented according to the implementation in the embodiment shown in FIG. 2A and FIG. 2B. For details, refer to the detailed description in the embodiment shown in FIG. 2A and FIG. 2B. For other details and technical effects of the technical solution in this embodiment of this application, refer to descriptions in the foregoing embodiments of this application. Details are not described herein again.
  • Based on the foregoing data forwarding method, this application further provides a data forwarding method, where the method may be applied to a scenario in which an SRv6 tunnel carries a VPN service.
  • FIG. 7 is a schematic diagram of a network architecture. As shown in FIG. 7, a VPN service is usually used to control data to be transmitted between designated devices in a data transmission network, for example, between a PE 1 and a PE 2 (that is, a target PE of the VPN service). The PE 1 receives to-be-forwarded data from a CE 1. After the to-be-forwarded data passes through an SRv6 tunnel (VPN over SRv6) that supports the VPN service and that is between the PE 1 and the PE 2, the PE 2 sends the to-be-forwarded data to a CE 2. A P device may further be included between the PEs. In this case, a SID of the target PE corresponding to the VPN service may be used as a SID of the VPN service. In a control manner, when the to-be-forwarded data enters the SRv6 tunnel, a head node determines that the to-be-forwarded data needs to be transmitted to a target node specified by the VPN service. In this case, a SID list added by the head node to a packet header includes a SID of a complete target forwarding path and the SID of the VPN service. The SID of the VPN service is a last SID in the SID list. When a tail node removes the packet header, the packet header includes the SID of the complete target forwarding path and the SID of the VPN service. In this control manner, an SRv6 technology allows the SID list in the packet header to be replaced on only one node, but does not allow a part of SIDs in the SID list in the packet header to be replaced. For example, if a node list corresponding to the SRv6 tunnel is ABCD, and the SID of the destination node of the VPN service is E, in an example, the SID list added by the head node may be ABCDE, that is, all SIDs of SRv6 tunnel nodes and the SID of the VPN service. In some scenarios, only the SID list is allowed to be replaced as a whole. For example, ABE is replaced with CDE as a whole, but AB in ABE is not allowed to be replaced with CD. Therefore, when the last SID in the SID list added by the head node is the SID of the VPN service, for example, E in ABCDE, if the SID list added by the head node is a segmented SID list, for example, ABE, an intermediate node is not allowed to replace the SID list with CDE as a whole. Therefore, if the SRv6 tunnel is used to carry a VPN service, the data forwarding method relating to path segment delivery in the foregoing embodiment cannot be used.
  • To resolve the foregoing problem, according to the data forwarding method provided in this application, the packet header added by the head node in front of the to-be-forwarded data is divided into two parts: an inner packet header and an outer packet header. The inner packet header may be used to carry a SID of a VPN service, and may be referred to as a service header. The outer packet header may be used to carry a SID list related to a target forwarding path, and may be referred to as a transport header. When replacing the SID list, the intermediate node only needs to replace the SID list included in the outer packet header. When removing the packet header, the tail node may remove the outer packet header and the inner packet header. In this way, a data forwarding scenario in which an SRv6 tunnel carries a VPN service can be supported on the basis of path segment delivery.
  • FIG. 8A and FIG. 8B are a schematic diagram 4 of an interaction procedure of a data forwarding method according to an embodiment of this application. This embodiment of this application relates to a start node of a VPN service, a head node, an intermediate node, a tail node, and a target node of the VPN service. In an example of this application, the head node may be connected to the start node of the VPN service, and the tail node may be connected to the target node of the VPN service. When an interface for receiving to-be-forwarded data is a preset interface of the VPN service, the tail node may determine that the to-be-forwarded data needs to be forwarded through the SRv6 tunnel to the target node of the VPN service. The following uses an example in which a PE 1 and a PE 2 are respectively used as the start node and the target node of the VPN service for description. As shown in FIG. 8A and FIG. 8B, this embodiment of this application may include the following steps.
  • S801: The PE 1 sends to-be-forwarded data to the head node.
  • For example, the to-be-forwarded data is an Ethernet frame.
  • S802: The head node determines that a SID of a VPN service corresponding to the to-be-forwarded data is a SID of the PE 2.
  • The head node may determine, based on an ingress port that receives the to-be-forwarded data, whether to transmit the to-be-forwarded data based on the VPN service, and the head node may obtain the SID of the VPN service from a controller in advance.
  • S803: The head node obtains a first SID list corresponding to the to-be-forwarded data.
  • The first SID list is generated based on first N nodes in M nodes in a target forwarding path.
  • S804: The head node encapsulates, in front of the to-be-forwarded data, an inner packet header including the SID of the PE 2.
  • The SID of the PE 2 may be located in a destination address or an SRH field in the inner packet header.
  • S805: The head node encapsulates, in front of the inner packet header, an outer packet header including the first SID list.
  • S806: The head node uses to-be-forwarded data having the outer packet header and the inner packet header as a to-be-forwarded packet.
  • Table 3 schematically shows the to-be-forwarded packet obtained by adding the outer packet header and the inner packet header. Table 3
    To-be-forwarded packet
    Added outer packet header Added inner packet header To-be-forwarded data
  • S807: Send the to-be-forwarded packet to the intermediate node based on the first SID list in the outer packet header of the to-be-forwarded packet.
  • S808: The intermediate node obtains a second SID list corresponding to the to-be-forwarded packet.
  • The second SID list is generated based on an (N+1)th node to an Mth node in the M nodes in the target forwarding path.
  • S809: The intermediate node replaces the first SID list in the outer packet header with the second SID list.
  • S810: The intermediate node forwards the to-be-forwarded packet to the tail node based on the second SID list in the outer packet header, where the tail node is the Mth node.
  • Steps S808 to S810 are similar to steps S205 to S207.
  • S811: The tail node removes the outer packet header of the to-be-forwarded packet to obtain a to-be-forwarded packet, where a packet header of the obtained to-be-forwarded packet includes the SID of the VPN service.
  • S812: The tail node forwards the to-be-forwarded packet to the PE 2 based on the SID that is of the VPN service and that is in the to-be-forwarded packet.
  • S813: The PE 2 removes the packet header that is in the to-be-forwarded packet and that includes the SID of the VPN service, to obtain the to-be-forwarded data.
  • S814: The PE 2 forwards the to-be-forwarded data based on a destination address of the to-be-forwarded data.
  • In another embodiment of this application, the tail node may alternatively remove the outer packet header and the inner packet header, and send, to the PE 2, the to-be-forwarded data obtained by removing the outer packet header and the inner packet header.
  • In this embodiment of this application, there may be a plurality of intermediate nodes in the foregoing embodiment, or the intermediate nodes may be edge nodes in a plurality of DCN subnets.
  • In another embodiment of this application, a pre-planned target forwarding path may alternatively include the target node of the VPN service. For example, a SID of an Mth node in the target forwarding path may be the SID of the VPN service. In this case, the second SID list may be generated based on an (N+1)th node to a Zth node in the M nodes in the target forwarding path, where Z may be equal to M-1.
  • Steps performed by the head node, the intermediate node, and the tail node in this embodiment of this application may be implemented according to the implementation in the embodiment shown in FIG. 2A and FIG. 2B. For details, refer to the detailed description in the foregoing embodiment. For other details and technical effects of the technical solution in this embodiment of this application, refer to descriptions in the foregoing embodiments of this application. Details are not described herein again.
  • The following describes the data forwarding method provided in this application by using an example in a scenario in which service flow control of a VPN service is supported in a telco cloud network deployed in a hierarchical DCN.
  • FIG. 9 is a schematic diagram of a network architecture in which a data forwarding method is applied to a service scenario according to an embodiment of this application. FIG. 9 schematically shows a flow direction of to-be-forwarded data that is forwarded based on a preset forwarding path of a service chain. To-be-forwarded data sent by an OLT device to a PRE-AGG may be used to request the internet. A P device and a PE in a metro or core (core) network are devices in a basic forwarding network. The PRE-AGG is a device in a first-level DCN. Leaf nodes in an EDC network and a PE-AGG are devices in a second-level DCN. A spine node and leaf nodes in an RDC network and a DCGW are devices in a third-level DCN. The DCGW and the PE adjacent to the DCGW may be an integrated device or separated devices.
  • FIG. 10 is a schematic diagram of an overall framework of a processing procedure in which a data forwarding method is applied to a service scenario according to an embodiment of this application. FIG. 10 shows a processing process of adding a packet header, replacing a SID list in the packet header, and removing the packet header in a process of forwarding to-be-forwarded data.
  • FIG. 11 is a diagram 1 of a processing procedure in which a data forwarding method is applied to a service scenario according to an embodiment of this application.
  • FIG. 12A and FIG. 12B are a diagram 2 of a processing procedure in which a data forwarding method is applied to a service scenario according to an embodiment of this application.
  • The following provides detailed descriptions with reference to FIG. 9 and FIG. 10.
  • Based on the network architecture shown in FIG. 9, this application provides a data transmission method. Before an interaction procedure shown in FIG. 12A and FIG. 12B is performed, the following control procedure shown in FIG. 11 may be further performed in advance.
  • Step 1.1: A DCN controller automatically discovers information related to SF nodes distributed in a telco cloud network, and allocates and delivers corresponding SRv6 SIDs to these SF nodes.
  • The SF node deployed in the telco cloud network may notify the DCN controller of identification information of the SF node in a broadcast manner, and request the DCN controller to allocate a SID to the SF node.
  • Step 1.2: A WAN controller allocates corresponding SRv6 SIDs to devices in a metro network and a core network.
  • The WAN controller may be a controller in a basic forwarding network. For example, a device in the basic forwarding network may send device identification information of the device to the WAN controller, and request the WAN controller to allocate a SID to the device.
  • Step 1.3: An orchestrator (Orchestrator) coordinates information related to the DCN controller and the WAN controller, orchestrates Topo SIDs and service SIDs in a unified manner based on a service requirement, to generate several SR policies, and delivers the SR policies to an ingress PE (PRE-AGG) of EVPN SRv6 and gateway devices of a hierarchical DC (PE-AGG/DC-GW).
  • In this embodiment of this application, it should be noted that, when the DCN controller coordinates with the WAN controller, the DCN controller may determine, based on a case in which a DCN subnet is isolated by a plurality of basic forwarding subnets of the basic forwarding network, a segment forwarding path that is obtained through division and that corresponds to a target forwarding path.
  • For example, the orchestrator may first plan service chains based on various services in a telco cloud network, that is, lists of SIDs of SF nodes through which various types of to-be-forwarded data need to pass in a DCN. These service chains may be considered as target forwarding paths corresponding to SRv6 tunnels. Then, the orchestrator segments, by using a quantity of levels of the hierarchical DCN as a quantity of segments into which a SID list that needs to be segmented and that corresponds to the target forwarding path, using an ingress edge node in each-level DCN as a last node of each segment, and using a tail node as a last node of a last segment, the SID list corresponding to the target forwarding path. For example, three levels may correspond to three segments.
  • In addition, the orchestrator separately notifies a SID of a VPN service to the PRE-AGG (which may be considered as a head node).
  • Then, the WAN controller and the DCN controller may deliver an allocated SID and a SID list that is obtained through segmentation.
  • After the foregoing control procedure is performed, a SID of each node has been allocated and delivered, and an SR policy on each BSID node also has been delivered.
  • For example, Table 4 schematically shows planning of a SID of each node on an SRv6 tunnel. Table 4
    Name of a node device in a data transmission network SID identifier of the node device SID type corresponding to the SID identifier of the node device Operation instruction (operation) corresponding to the SID identifier Device description SR policy corresponding to the SID identifier of the node device
    PRE-AGG AC1 Node type SID (Node SID) End.DX2 It is used to identify an AC interface of the PRE-AGG and implement a VPWS service. SR policy 1
    PE-AGG B1 SID of a BSID node (BSID) End.DB6 It is used to be associated with a transport header Transport header in an EDC network and implement an SFC function in the EDC network. End.DB6 is an SRv6 function newly defined in this application. SR policy 2
    B2 BSID End.DB6 It is used to be associated with a transport header used to transmit an SRv6 packet from a PE-AGG to a DCGW. SR policy 3
    DCGW B3 BSID End.DB6 It is used to be associated with a transport header in an RDC network and implement an SFC function in the RDC network. SR policy 4
    B4 BSID End.DT6 It is used to remove the transport header and sends a service header and a packet located after the service header to a PE.
    Leaf (EDC) vIPS Node SID End It is used to be associated with a vIPS and implement an IPS (Intrusion Prevention System) function in the EDC network. Note: If the vIPS is SR-aware, the vIPS may alternatively allocate and distribute the SID directly.
    vFW Node SID End It is used to be associated with a vFW and implement an FW (Firewall) function in the EDC network.
    Leaf (RDC) vWOC Node SID End It is used to be associated with a vWOC and implement a WOC (WAN Optimization Controller) function in the RDC network.
    PE AC2 Node SID End.DX2 It is used to identify an AC interface of the PE and implement the VPWS service.
  • Table 4 shows a name of each node device in the data transmission network, a SID identifier corresponding to the node device, a SID type corresponding to the SID identifier of the node device, an operation instruction corresponding to the SID identifier, a device description, and an SR policy corresponding to the SID identifier of the node device.
  • SID types corresponding to SID identifiers of the PRE-AGG, the PE-AGG, and the DCGW all correspond to a device whose SID type is a BSID node (BSID node). Leaf (EDC) and Leaf (RDC) respectively represent a leaf (leaf) node located in the EDC network and a leaf node located in the RDC network. Leaf (EDC network) represents a node device on which an SF function is deployed and that is in the EDC network. For example, two SFs such as a vIPS and a vFW are deployed on the leaf, and SIDs of the SF functions are represented by the vIPS and the vFW. AC1 represents a SID of an ingress interface on the PRE-AGG, and AC2 represents a SID of an egress interface on a PE connected to an IGW.
  • Referring to FIG. 10, in this embodiment of this application, a PRE-AGG may be used as a head node, a PE-AGG may be used as an intermediate node, and a DCGW may be used as an intermediate node and a tail node. A SID of the PRE-AGG is AC1. When a PE 1 sends an Ethernet frame in a service flow to an AC1 interface of the PRE-AGG, the PRE-AGG determines, based on the AC1, that the Ethernet frame needs to match a VPN service, and may obtain a SID corresponding to the VPN service, for example, AC2. In addition, a corresponding function and a corresponding SR policy may be obtained based on a service attribute of the service flow, to process a packet. The PE-AGG has two SIDs such as B1 and B2. When the packet is forwarded to B1 (that is, an active SID in the packet is B1), the PE-AGG processes the packet according to an SR policy corresponding to B1. When the packet is forwarded to B2 (that is, an active SID in the packet is B2), the PE-AGG processes the packet according to an SR policy corresponding to B2. Similarly, the DCGW has two SIDs such as B3 and B4. When the packet is forwarded to B3 (that is, an active SID in the packet is B3), the DCGW processes the packet according to an SR policy corresponding to B3. When the packet is forwarded to B4 (that is, an active SID in the packet is B4), the DCGW processes the packet according to an SR policy corresponding to B4.
  • In this application, a SID in each DCN subnet is allowed to be advertised only to a device in the DCN subnet and an edge device in the DCN subnet or a gateway device in the DCN subnet. For an EDC network, the PE-AGG is an edge device of the EDC network, and a vIPS and a vFW are SIDs of SFs deployed on a leaf node in the EDC network. Because the PE-AGG learns an internal topology structure of the EDC network, the PE-AGG may control, based on a SID that is of each SF and that is carried in a packet, the packet to successively pass through SFs in SFCs based on the SFCs indicated by a SID list in a packet header. Similarly, for an RDC network, the DCGW is a gateway device of the RDC network, and a vWOC is a SID of an SF deployed on a leaf node in the RDC network. Because the DCGW learns an internal topology structure of the RDC network, the DCGW may control, based on a SID that is of each SF and that is carried in a packet, the packet to successively pass through SFs in SFCs based on the SFCs indicated by a SID list in a packet header. In another embodiment of this application, the DCN subnet may alternatively be a DCN subnet applied to another service other than a telco cloud, and the vIPS, the vFW, and the vWOC may alternatively be SFs that need to be accessed by another service in a telco cloud network.
  • It should be noted that the foregoing SIDs are planned for an EVPN SRv6 VPWS service. If other service types, such as BGP SRv6 L3VPN, EVPN SRv6 VPLS, and EVPN SRv6 L3VPN, need to be deployed in an SRv6 tunnel manner, differentiated planning needs to be performed for SIDs on a PRE-AGG (an ingress PE of a VPN service) and a PE (an egress PE of the VPN service). In an example, SIDs of a head node and a tail node in a target forwarding path may be planned based on a requirement of another service type. The technical solutions of this application are mainly designed for processing on a hierarchical DC gateway (a PE-AGG and a DCGW) in an edge device or a gateway device in a DCN subnet. Therefore, for a type of a service carried on an SRv6 tunnel, there is no difference in implementing the method provided in this embodiment of this application by an intermediate node.
  • In this embodiment of this application, an SR policy corresponding to each SID may be preconfigured. An SR policy corresponding to AC1 may be an SR policy 1, an SR policy corresponding to B1 may be an SR policy 2, an SR policy corresponding to B2 may be an SR policy 3, and an SR policy corresponding to B3 may be an SR policy 4.
  • Table 5 shows an example of the SR policies. Table 5 shows the SR policy 1 to the SR policy 4. Table 5
    SR policy SID list SID list usage
    SR policy
    1 <B1> It is used to be added to a SID list in an outer packet header.
    SR policy 2 <vIPS, vFW, B2> It is used to replace the SID list in the outer packet header when an active SID in the outer packet header is a SID of a current node.
    SR policy 3 <B3> It is used to replace the SID list in the outer packet header when an active SID in the outer packet header is a SID of a current node.
    SR policy 4 <vWOC, B4> It is used to replace the SID list in the outer packet header when an active SID in the outer packet header is a SID of a current node.
  • In this application, the outer packet header may be referred to as a transport header (Transport header), and an inner packet header may be referred to as a service header (Service header).
  • As shown in FIG. 12A and FIG. 12B, a processing procedure of a data forwarding method provided in an embodiment of this application includes the following steps.
  • Step 2.1: After receiving an Ethernet frame from an AC interface, a PRE-AGG steers the Ethernet frame to a corresponding SR policy 1, and encapsulates two IPv6 headers (IPv6 header) outside the Ethernet frame. A SID carried in an inner IPv6 header (Inner IPv6 header) is AC2, and a SID carried in an outer IPv6 header (Outer IPv6 header) is B1. An SRv6 tunnel packet obtained through encapsulation is sent to a PE-AGG.
  • The PRE-AGG determines, based on a case in which a requested service in the Ethernet frame is to access the internet, that an SR policy corresponding to a service attribute of the Ethernet frame is an SR policy 1, and obtains a SID list of a first segment, that is, B1. In addition, the PRE-AGG determines, according to an instruction of a DCN controller or based on a VPN service configuration of the PRE-AGG, to implement a VPWS in a manner of an SRv6-based EVPN service, and obtains a SID of a destination node of a VPN service, that is AC2, to be specific, a SID of an egress port of a PE. In an example, when an ingress port of the received Ethernet frame is AC1, the PRE-AGG may determine that a to-be-forwarded packet needs to be forwarded in a manner of the VPN service and determine the SID of the destination node corresponding to the VPN service.
  • Step 2.2: After receiving the SRv6 tunnel packet, the PE-AGG determines that an active SID is B1 and an SR policy corresponding to B1 is an SR policy 2, and steers the received SRv6 tunnel packet to the SR policy 2 by using B1. A function configured for B1 is End.DB6. Therefore, after the outer IPv6 header is removed, an outer IPv6 header corresponding to the SR policy 2 is re-encapsulated, that is, the outer IPv6 header is replaced. Then, an SRv6 tunnel packet obtained through re-encapsulation is forwarded to an EDC network.
  • Step 2.3: In the EDC network, the SRv6 tunnel packet is forwarded to a vIPS and then to a vFW for processing. In this process, a leaf node may need to implement a processing procedure of an SFC proxy. After the processing in the EDC network is completed, the active SID in the SRv6 tunnel packet changes to B2, and the SRv6 tunnel packet is sent back to the PE-AGG based on B2.
  • Step 2.4: The PE-AGG determines that the active SID is B2 and an SR policy corresponding to B2 is an SR policy 3, steers the SRv6 tunnel packet to the SR policy 3 by using a function (End.DB6) configured for B2, processes the packet, removes the outer IPv6 header, and re-encapsulates an outer IPv6 header corresponding to the SR policy 3. Then, a first SID in the outer IPv6 header of the SRv6 tunnel packet obtained through re-encapsulation is a SID of an ingress interface of a DCGW, that is, B3. The SRv6 tunnel packet is forwarded to the DCGW based on B3.
  • Step 2.5: The DCGW determines that the active SID is B3 and an SR policy corresponding to B3 is an SR policy 4, steers the SRv6 tunnel packet to the SR policy 4 by using a function (End.DB6) configured for B3, processes the packet, removes the outer IPv6 header, and re-encapsulates an outer IPv6 header corresponding to the SR Policy 4. Then, an SRv6 tunnel packet obtained through re-encapsulation is forwarded to an RDC network.
  • Step 2.6: Processing in the RDC network is similar to that in the EDC network (Step 2.3). For example, the SRv6 tunnel packet may be forwarded to a vWOC for processing. After the processing in the RDC network is completed, the active SID in the SRv6 tunnel packet changes to B4, and the SRv6 tunnel packet is sent back to the DCGW based on B4.
  • Step 2.7: After receiving the SRv6 tunnel packet sent back by the RDC network, the DCGW determines that the active SID is B4; and because a function of B4 is End.DT6, after removing the outer IPv6 header, the DCGW uses a DA (that is, AC2) in the inner IPv6 header to query my local SID table, and then, forwards the packet including the inner IPv6 header to the PE.
  • Step 2.8: After receiving the foregoing IPv6 packet, the PE determines that the SID used as a destination address in the packet header is AC2, associates AC2 with a corresponding AC interface by using a function (End.DX2) configured for AC2, processes the packet, removes the inner IPv6 header, and sends the Ethernet frame by using the AC interface.
  • For technical details of step 2.2 to step 2.8 in this embodiment of this application, refer to descriptions in the foregoing embodiments of this application.
  • It can be learned from the foregoing embodiment that, when the method is applied to an SRv6-based L2VPN/L3VPN, two IPv6 headers (which may or may not carry an SRH) are encapsulated in front of a service packet (Ethernet/IPv4/IPv6), so that a transport layer is separated from a service layer, thereby reducing a requirement for an SRv6 MSD.
  • A new SRv6 function (End.DB6) is defined in this application, and the function is deployed on a gateway device of a hierarchical DC (ADC/EDC/RDC/CDC). With reference to an SR BSID mechanism, topology information and service information in the hierarchical DC are shielded externally (Metro/Core Network). In this way, an SRv6 SFC is effectively implemented.
  • In addition, because the constraint condition described in the foregoing embodiment can be met, the method can be efficiently applied to an SR SFC scenario of a telco cloud. In addition, only an ingress PE (the PRE-AGG) and a gateway device (the PE-AGG/DCGW) in the hierarchical DC need to be slightly modified. Therefore, the implementation is simple. An SDN controller can be used to automatically generate and deliver an SR policy. This facilitates deployment. In addition, the foregoing solution supports both an SR shortest path (Best Effort, BE) mode (which refers to an optimal SR LSP calculated by an IGP by using a shortest path algorithm) and an SR traffic engineering (Traffic Engineering, TE) mode, and is applicable to various SRv6 VPNs (including a BGP SRv6 L3VPN, an EVPN SRv6 L2VPN/L3VPN, and the like). The foregoing solution is widely applied.
  • FIG. 13 is a schematic structural diagram of a data forwarding apparatus according to this application. As shown in FIG. 13, a data forwarding apparatus 1300 provided in this embodiment of this application may include a receiving module 1310, a processing module 1320, and a sending module 1330.
  • In an implementation of this embodiment of this application, the data forwarding apparatus 1300 may be configured to perform steps performed by the head node in the data forwarding method shown in any one of the foregoing embodiments.
  • The receiving module 1310 may be configured to obtain to-be-forwarded data.
  • The processing module 1320 may be configured to obtain a first SID list corresponding to the to-be-forwarded data, where the first SID list is generated based on SIDs of a part of nodes in a target forwarding path; and encapsulate, in front of the to-be-forwarded data, a packet header including the first SID list, to obtain a to-be-forwarded packet.
  • The sending module 1330 may be configured to send the to-be-forwarded packet based on the first SID list. The target forwarding path includes M nodes, the first SID list is generated based on first N nodes in the M nodes, the first SID list is replaced with a second SID list at an intermediate node, and the second SID list is generated based on an Xth node to a Yth node in the M nodes, where M is greater than N, N is greater than or equal to 1, X is greater than or equal to N, and Y is less than or equal to M.
  • In a possible implementation of this embodiment, the receiving module 1310 may be further configured to: before the first SID list corresponding to the to-be-forwarded data is obtained, receive an SR policy sent by a controller, where the SR policy includes the first SID list.
  • The processing module 1320 may be specifically configured to obtain, based on a service attribute of the to-be-forwarded data, an SR policy corresponding to the to-be-forwarded data; and determine a SID list included in the SR policy as the first SID list corresponding to the to-be-forwarded data.
  • In a possible implementation of this embodiment, the head node is connected to an ingress edge node in a DCN through a basic forwarding network.
  • The target forwarding path may include: the ingress edge node in the DCN, at least one SF node in the DCN, and an egress edge node in the DCN.
  • The first SID list is generated based on a SID of the ingress edge node in the DCN.
  • The sending module 1330 may be specifically configured to send the to-be-forwarded packet to the ingress edge node in the DCN based on the first SID list through the basic forwarding network.
  • In a possible implementation of this embodiment, the head node is connected to an ingress edge node in a first DCN subnet in a DCN through a first basic forwarding network in a basic forwarding network, and an egress edge node in the first DCN subnet is connected to an ingress edge node in a second DCN subnet in the DCN through a second basic forwarding network in the basic forwarding network.
  • The target forwarding path includes: the ingress edge node in the first DCN subnet, at least one SF node in the first DCN subnet, the egress edge node in the first DCN subnet, the ingress edge node in the second DCN subnet, at least one SF node in the second DCN subnet, and an egress edge node in the second DCN subnet.
  • The first SID list is generated based on a SID of the ingress edge node in the first DCN subnet.
  • The sending module 1330 may be specifically configured to send the to-be-forwarded packet to the ingress edge node in the first DCN subnet based on the first SID list through the first basic forwarding network.
  • In a possible implementation of this embodiment, the head node is a PRE-AGG, the first DCN subnet is an EDC network, the second DCN subnet is an RDC network, both an ingress edge node and an egress edge node in the EDC network are PE-AGGs, and both an ingress edge node and an egress edge node in the RDC network are DCGWs.
  • In a possible implementation of this embodiment, the at least one SF node in the first DCN subnet and the at least one SF node in the second DCN subnet are SF nodes in a telco cloud network; and the first basic forwarding network is a metro network, and the second basic forwarding network is a core network.
  • In a possible implementation of this embodiment, an Mth node in the target forwarding path is a target node of a VPN service corresponding to the to-be-forwarded data.
  • The processing module 1320 may be specifically configured to encapsulate, in front of the to-be-forwarded data, an inner packet header including a SID of the target node, and encapsulate, in front of the inner packet header, an outer packet header including the first SID list; and use to-be-forwarded data having the outer packet header and the inner packet header as the to-be-forwarded packet.
  • The sending module 1330 may be specifically configured to send the to-be-forwarded packet based on the first SID list in the outer packet header.
  • In a possible implementation of this embodiment, the to-be-forwarded packet is an SRv6 packet.
  • In another implementation of this embodiment of this application, the data forwarding apparatus 1300 may be configured to perform steps performed by the intermediate node in the data forwarding method shown in any one of the foregoing embodiments.
  • The receiving module 1310 may be configured to receive a to-be-forwarded packet, where a packet header of the to-be-forwarded packet includes a first SID list.
  • The processing module 1320 may be configured to obtain a second SID list corresponding to the to-be-forwarded packet, and replace the first SID list in the packet header with the second SID list.
  • The sending module 1330 may be configured to send the to-be-forwarded packet based on the second SID list. The first SID list and the second SID list are separately generated based on SIDs of a part of nodes in a target forwarding path; and the target forwarding path includes M nodes, the first SID list is generated based on SIDs of an Xth node to a Yth node in the M nodes, and the second SID list is generated based on SIDs of a (Y+1)th node to a Zth node in the M nodes, where X is greater than or equal to 1, Y is greater than or equal to X, and Z is less than or equal to M.
  • In a possible implementation of this embodiment, the to-be-forwarded packet may be an SRv6 packet.
  • In a possible implementation of this embodiment, the intermediate node may be the Yth node in the M nodes.
  • In a possible implementation of this embodiment, the receiving module 1310 may be specifically configured to: before the second SID list corresponding to the to-be-forwarded packet is obtained, receive an SR policy sent by a controller, where the SR policy includes the second SID list.
  • The processing module 1320 may be specifically configured to: when an active SID in the first SID list is a SID of the intermediate node, obtain a function, where the function is used to instruct the intermediate node to replace the first SID list in the to-be-forwarded packet with the second SID list included in the SR policy; determine the second SID list included in the SR policy corresponding to the function as the second SID list corresponding to the to-be-forwarded packet; and replace the first SID list in the packet header with the second SID list based on an indication of the function.
  • In a possible implementation of this embodiment, the intermediate node is an ingress edge node in a DCN, and the intermediate node is connected to a basic forwarding network.
  • The target forwarding path includes: the ingress edge node in the DCN, at least one SF node in the DCN, and an egress edge node in the DCN.
  • The first SID list is generated based on a SID of the ingress edge node in the DCN, and the second SID list is generated based on a SID of the at least one SF node in the DCN and a SID of the egress edge node in the DCN.
  • The receiving module 1310 may be specifically configured to receive, through the basic forwarding network, the to-be-forwarded packet sent by a head node.
  • The sending module 1330 may be specifically configured to send the to-be-forwarded packet to a first SF node in the at least one SF node in the DCN based on the second SID list through an internal node in the DCN.
  • In a possible implementation of this embodiment, the intermediate node is an egress edge node in a first DCN subnet in a DCN, and an egress edge node in the first DCN subnet is connected to an ingress edge node in a second DCN subnet in the DCN through a basic forwarding network.
  • The target forwarding path includes: the ingress edge node in the first DCN subnet, at least one SF node in the first DCN subnet, the egress edge node in the first DCN subnet, the ingress edge node in the second DCN subnet, at least one SF node in the second DCN subnet, and an egress edge node in the second DCN subnet.
  • The first SID list is generated based on the at least one SF node in the first DCN subnet and the egress edge node in the first DCN subnet.
  • The second SID list is generated based on the ingress edge node in the second DCN subnet.
  • The receiving module 1310 may be specifically configured to receive, through an internal node in the first DCN subnet, the to-be-forwarded packet sent by a last SF node in the at least one SF node in the first DCN subnet.
  • The sending module 1330 may be specifically configured to send the to-be-forwarded packet to the ingress edge node in the second DCN subnet based on the second SID list through the basic forwarding network.
  • In a possible implementation of this embodiment, the first DCN subnet is an EDC network, the second DCN subnet is an RDC network, both an ingress edge node and an egress edge node in the EDC network are PE-AGGs, and both an ingress edge node and an egress edge node in the RDC network are DCGWs.
  • In a possible implementation of this embodiment, at least one SF node in the EDC network and at least one SF node in the RDC network are SF nodes in a telco cloud network.
  • In a possible implementation of this implementation, Z is less than M; an Mh node in the target forwarding path is a target node of a VPN service corresponding to the to-be-forwarded packet; and the to-be-forwarded packet has an outer packet header and an inner packet header. The outer packet header is encapsulated in front of the inner packet header, and the outer packet header includes the first SID list. The inner packet header includes the target node of the VPN service.
  • The processing module 1320 may be specifically configured to replace the first SID list in the outer packet header with the second SID list.
  • The sending module 1330 may be specifically configured to send the to-be-forwarded packet based on the second SID list in the outer packet header.
  • In still another implementation of this embodiment of this application, the data forwarding apparatus 1300 may be configured to perform steps performed by the tail node in the data forwarding method shown in any one of the foregoing embodiments.
  • The receiving module 1310 may be configured to receive a to-be-forwarded packet, where a packet header of the to-be-forwarded packet includes a second SID list, and the second SID list is generated based on SIDs of a part of nodes in a target forwarding path.
  • The processing module 1320 may be configured to remove the packet header of the to-be-forwarded packet to obtain to-be-forwarded data.
  • The sending module 1330 may be configured to forward the to-be-forwarded data based on a destination address of the to-be-forwarded data.
  • The target forwarding path includes M nodes, the second SID list is generated based on SIDs of a Zth node to an Mth node in the M nodes, the second SID list is obtained by replacing a first SID list at an intermediate node, and the first SID list is generated based on an Xth node to a Yth node in the M nodes, where Z is greater than 1 and less than or equal to M, X is greater than or equal to 1, and Y is less than or equal to Z; and a SID of the tail node is a last SID in the second SID list.
  • In yet another implementation of this embodiment of this application, the data forwarding apparatus 1300 may be configured to perform steps performed by the tail node in the data forwarding method shown in any one of the foregoing embodiments.
  • The receiving module 1310 may be configured to receive a to-be-forwarded packet, where the to-be-forwarded packet includes an outer packet header and an inner packet header, the outer packet header includes a second SID list, the second SID list is generated based on SIDs of a part of nodes in a target forwarding path, and the inner packet header includes a SID of a target node of a VPN service corresponding to the to-be-forwarded packet.
  • The processing module 1320 may be configured to remove the outer packet header of the to-be-forwarded packet to obtain a to-be-forwarded packet.
  • The sending module 1330 may be configured to forward the to-be-forwarded packet obtained by removing the outer packet header to the target node of the VPN service corresponding to the to-be-forwarded packet. The target forwarding path includes M nodes, and the second SID list is generated based on SIDs of an Xth node to an (M-1)th node in the M nodes, where X is greater than 1. A SID of the tail node is a last SID in the second SID list. The target node of the VPN service is the Mth node.
  • In a further implementation of this embodiment of this application, the data forwarding apparatus 1300 may be configured to perform steps performed by the controller in the data forwarding method shown in any one of the foregoing embodiments.
  • The receiving module 1310 may be configured to obtain a target forwarding path, where the target forwarding path includes M nodes.
  • The processing module 1320 may be configured to generate a first SID list based on SIDs of a first node to an Nth node in the M nodes, and generate a second SID list based on SIDs of an Xth node to a Yth node in the M nodes.
  • The sending module 1330 may be configured to send the first SID list to a head node, and send the second SID list to an intermediate node, where the intermediate node is the Nth node in the M nodes, N is greater than or equal to 1, X is equal to N or N+1, and Y is less than or equal to M.
  • The first SID list is used by the head node to send to-be-forwarded data received by the head node; and the second SID list is used by the intermediate node to send a to-be-forwarded packet received by the intermediate node.
  • In a possible implementation of this embodiment, the head node is configured to encapsulate, in front of the to-be-forwarded data, a packet header by using the first SID list as a destination address in the packet header, to generate the to-be-forwarded packet; and send the to-be-forwarded packet to the intermediate node based on the destination address; and the intermediate node is configured to replace the first SID list in the packet header of the to-be-forwarded packet with the second SID list, and forward the to-be-forwarded packet based on a destination address in a packet header obtained through replacement.
  • In a possible implementation of this embodiment, the sending module 1330 may be specifically configured to send an SR policy 1 to the head node, where the SR policy 1 includes the first SID list.
  • The sending module 1330 may be specifically configured to send an SR policy 2 to the intermediate node, where the SR policy 2 includes the second SID list.
  • In a possible implementation of this embodiment, the controller is a DCN controller in a DCN.
  • A node device provided in this embodiment of this application may serve as different roles in different scenarios. For example, a same node device may serve as any one or more roles of a head node, an intermediate node, and a tail node in different SRv6 tunnels. For example, a node device 1 is a head node in a scenario 1 and is an intermediate node in a scenario 2. In addition, in one scenario, a same node device may alternatively serve as different roles. In an example, a head node and an intermediate node may be a same node device. In another example, an intermediate node and a tail node may be a same node device. In this case, the receiving module in the data transmission apparatus configured to perform a function of the head node may further have a function of the receiving module in the data transmission apparatus configured to perform a function of the intermediate node. Similarly, the processing module in the data transmission apparatus configured to perform the function of the head node may further have a function of the processing module in the data transmission apparatus configured to perform the function of the intermediate node, and the sending module in the data transmission apparatus configured to perform the function of the head node may further have a function of the sending module in the data transmission apparatus configured to perform the function of the intermediate node.
  • In this embodiment of this application, for detailed implementation processes of processing by the modules in the data transmission apparatus, refer to the processing steps in the embodiments corresponding to FIG. 2,
  • FIG. 2A and FIG. 2B, FIG. 3A, FIG. 3B, and FIG. 3C, FIG. 6A and FIG. 6B, and FIG. 8A and FIG. 8B. Details are not described herein again.
  • FIG. 14 is a schematic structural diagram of a node device according to this application. As shown in FIG. 14, this application further provides a node device 1400, including:
    • one or more processors 1410; and
    • a storage apparatus 1420, configured to store one or more programs.
  • When the one or more programs are executed by the one or more processors, the one or more processors are enabled to implement steps performed by the head node in the data forwarding method shown in the foregoing embodiments, or steps performed by the intermediate node in the data forwarding method shown in the foregoing embodiments, or steps performed by the tail node in the data forwarding method shown in the foregoing embodiments, or steps performed by the controller in the data forwarding method shown in the foregoing embodiments.
  • In this embodiment of this application, the node device may further include an interface 1430. The interface may be configured to receive to-be-forwarded data or a to-be-forwarded packet sent by another node device; or configured to send, to another node device, to-be-forwarded data or a to-be-forwarded packet processed by the node device.
  • In this embodiment of this application, the processor, the storage apparatus, and the interface in the node device may be connected through a bus 1460.
  • In an implementation of this embodiment of this application, the node device may be an edge device in a DCN.
  • In an implementation of this embodiment of this application, the node device may be a PRE-AGG device, and may be configured to perform the steps performed by the head node in the data forwarding method shown in any one of the foregoing embodiments.
  • In an implementation of this embodiment of this application, the node device may be a PE-AGG device, and may be configured to perform the steps performed by the head node in the data forwarding method shown in any one of the foregoing embodiments or may be configured to perform the steps performed by the intermediate node in the data forwarding method shown in any one of the foregoing embodiments.
  • In an implementation of this embodiment of this application, the node device may be a DCGW device, and may be configured to perform the steps performed by the head node in the data forwarding method shown in any one of the foregoing embodiments or may be configured to perform the steps performed by the intermediate node in the data forwarding method shown in any one of the foregoing embodiments.
  • In an implementation of this embodiment of this application, the node device may be a DCN controller device, and may be configured to perform the steps performed by the controller in the data forwarding method shown in any one of the foregoing embodiments.
  • This application further provides a data forwarding system. The data forwarding system may include a head node and at least one intermediate node.
  • In a possible implementation, the system may further include a tail node.
  • In a possible implementation, the system may further include a controller.
  • The head node, the intermediate node, and the tail node may cooperate with each other to perform the steps performed by the nodes in the data forwarding method shown in any one of the foregoing embodiments. In an example, the head node may be a PE-AGG, the intermediate node may be a PRE-AGG and/or a DCGW, and the tail node may be a DCGW. In an example, the controller is a data center network controller DCN controller.
  • This application further provides a computer-readable storage medium. The computer-readable storage medium stores instructions. When the instructions are run on a computer, the instructions are used to perform the steps related to the head node in the method embodiment shown in any one of the foregoing accompanying drawings, or configured to perform the steps related to the intermediate node in the method embodiment shown in any one of the foregoing accompanying drawings, or configured to perform the steps related to the tail node in the method embodiment shown in any one of the foregoing accompanying drawings, or configured to perform the steps related to the controller in the method embodiment shown in any one of the foregoing accompanying drawings. In a possible implementation, the computer storage medium may alternatively be configured to simultaneously perform steps related to at least one of the head node, the intermediate node, and the tail node.
  • This application provides a computer program. When the computer program is executed by a computer, the computer program is used to perform the steps related to the head node in the method embodiment shown in any one of the foregoing accompanying drawings, or configured to perform the steps related to the intermediate node in the method embodiment shown in any one of the foregoing accompanying drawings, or configured to perform the steps related to the tail node in the method embodiment shown in any one of the foregoing accompanying drawings, or configured to perform the steps related to the controller in the method embodiment shown in any one of the foregoing accompanying drawings.
  • All or a part of the foregoing embodiments may be implemented by using software, hardware, firmware, or any combination thereof. When software is used to implement the embodiments, the embodiments may be implemented all or partially in a form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on the computer, the procedure or functions according to this application are all or partially generated. The computer may be a general-purpose computer, a dedicated computer, a computer network, or another programmable apparatus. The computer instructions may be stored in a computer-readable storage medium or may be transmitted from a computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from a website, computer, server, or data center to another website, computer, server, or data center in a wired (for example, a coaxial cable, an optical fiber, or a digital subscriber line) or wireless (for example, infrared, radio, or microwave) manner. The computer-readable storage medium may be any usable medium accessible by a computer, or a data storage device, such as a server or a data center, integrating one or more usable media. The usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, or a magnetic tape), an optical medium (for example, a DVD), a semiconductor medium (for example, a solid-state drive Solid State Disk), or the like.

Claims (33)

  1. A data forwarding method, wherein the method comprises:
    obtaining, by a head node, to-be-forwarded data;
    obtaining, by the head node, a first segment identifier SID list corresponding to the to-be-forwarded data, wherein the first SID list is generated based on SIDs of a part of nodes in a target forwarding path;
    encapsulating, by the head node in front of the to-be-forwarded data, a packet header comprising the first SID list, to obtain a to-be-forwarded packet; and
    sending, by the head node, the to-be-forwarded packet based on the first SID list; wherein
    the target forwarding path comprises M nodes, the first SID list is generated based on first N nodes in the M nodes, the first SID list is replaced with a second SID list at an intermediate node, and the second SID list is generated based on an Xth node to a Yth node in the M nodes, wherein M is greater than N, N is greater than or equal to 1, X is greater than or equal to N, and Y is less than or equal to M.
  2. The method according to claim 1, wherein before the obtaining a first SID list corresponding to the to-be-forwarded data, the method comprises: receiving, by the head node, a segment routing policy SR policy sent by a controller, wherein the SR policy comprises the first SID list; and
    the obtaining a first SID list corresponding to the to-be-forwarded data comprises: obtaining, by the head node based on a service attribute of the to-be-forwarded data, an SR policy corresponding to the to-be-forwarded data; and determining a SID list comprised in the SR policy as the first SID list corresponding to the to-be-forwarded data.
  3. The method according to claim 1 or 2, wherein the head node is connected to an ingress edge node in a data center network DCN through a basic forwarding network;
    the target forwarding path comprises: the ingress edge node in the DCN, at least one service function SF node in the DCN, and an egress edge node in the DCN;
    the first SID list is generated based on a SID of the ingress edge node in the DCN; the second SID list is generated based on the at least one SF in the DCN and the egress edge node in the DCN; and the first SID list is replaced with the second SID list at the ingress edge node in the DCN; and
    the sending the to-be-forwarded packet based on the first SID list comprises: sending the to-be-forwarded packet to the ingress edge node in the DCN based on the first SID list through the basic forwarding network.
  4. The method according to claim 1 or 2, wherein the head node is connected to an ingress edge node in a first DCN subnet in a data center network DCN through a first basic forwarding network in a basic forwarding network, and an egress edge node in the first DCN subnet is connected to an ingress edge node in a second DCN subnet in the DCN through a second basic forwarding network in the basic forwarding network;
    the target forwarding path comprises: the ingress edge node in the first DCN subnet, at least one SF node in the first DCN subnet, the egress edge node in the first DCN subnet, the ingress edge node in the second DCN subnet, at least one SF node in the second DCN subnet, and an egress edge node in the second DCN subnet;
    the first SID list is generated based on a SID of the ingress edge node in the first DCN subnet; the first SID list is replaced with the second SID list at the ingress edge node in the first DCN subnet, and the second SID list is generated based on at least one SF in the first DCN subnet and the egress edge node in the first DCN subnet; and the second SID list is replaced with a third SID list at the egress edge node in the first DCN subnet, and the third SID list is generated based on the ingress edge node in the second DCN subnet; and
    the sending the to-be-forwarded packet based on the first SID list comprises: sending the to-be-forwarded packet to the ingress edge node in the first DCN subnet based on the first SID list through the first basic forwarding network.
  5. The method according to claim 4, wherein the head node is a level-2 aggregation device PRE-AGG, the first DCN subnet is an edge data center EDC network, the second DCN subnet is a regional data center RDC network, both an ingress edge node and an egress edge node in the EDC network are level-1 aggregation devices PE-AGGs, and both an ingress edge node and an egress edge node in the RDC network are data gateways DCGWs.
  6. The method according to claim 4, wherein the at least one SF node in the first DCN subnet and the at least one SF node in the second DCN subnet are SF nodes in a telco cloud network; and
    the first basic forwarding network is a metropolitan area network, and the second basic forwarding network is a backbone network.
  7. The method according to any one of claims 1 to 6, wherein an Mth node in the target forwarding path is a target node of a virtual private network VPN service corresponding to the to-be-forwarded data;
    the encapsulating, in front of the to-be-forwarded data, a packet header comprising the first SID list comprises:
    encapsulating, in front of the to-be-forwarded data, an inner packet header comprising a SID of the target node;
    encapsulating, in front of the inner packet header, an outer packet header comprising the first SID list; and
    using to-be-forwarded data having the outer packet header and the inner packet header as the to-be-forwarded packet; and
    the sending the to-be-forwarded packet based on the first SID list comprises: sending the to-be-forwarded packet based on the first SID list in the outer packet header.
  8. The method according to any one of claims 1 to 7, wherein the to-be-forwarded packet is an SRv6 packet.
  9. A data forwarding method, wherein the method comprises:
    receiving, by an intermediate node, a to-be-forwarded packet, wherein a packet header of the to-be-forwarded packet comprises a first segment identifier SID list;
    obtaining, by the intermediate node, a second SID list corresponding to the to-be-forwarded packet;
    replacing, by the intermediate node, the first SID list in the packet header with the second SID list; and
    sending, by the intermediate node, the to-be-forwarded packet based on the second SID list; wherein
    the first SID list and the second SID list are separately generated based on SIDs of a part of nodes in a target forwarding path; and the target forwarding path comprises M nodes, the first SID list is generated based on SIDs of an Xth node to a Yth node in the M nodes, and the second SID list is generated based on SIDs of a (Y+1)th node to a Zth node in the M nodes, wherein X is greater than or equal to 1, Y is greater than or equal to X, and Z is less than or equal to M.
  10. The method according to claim 9, wherein the to-be-forwarded packet is an SRv6 packet.
  11. The method according to claim 9 or 10, wherein the intermediate node is the Yth node in the M nodes.
  12. The method according to claim 11, wherein before the obtaining a second SID list corresponding to the to-be-forwarded packet, the method comprises: receiving, by the intermediate node, an SR policy sent by a controller, wherein the SR policy comprises the second SID list;
    the obtaining a second SID list corresponding to the to-be-forwarded packet comprises: when an active SID in the first SID list is a SID of the intermediate node, obtaining, by the intermediate node, an operation instruction, wherein the operation instruction is used to instruct the intermediate node to replace the first SID list in the to-be-forwarded packet with the second SID list comprised in the SR policy; and determining, by the intermediate node, the second SID list comprised in the SR policy corresponding to the operation instruction as the second SID list corresponding to the to-be-forwarded packet; and
    the replacing the first SID list in the packet header with the second SID list comprises: replacing the first SID list in the packet header with the second SID list based on an indication of the operation instruction.
  13. The method according to any one of claims 9 to 12, wherein the intermediate node is an ingress edge node in a data center network DCN, and the intermediate node is connected to a basic forwarding network;
    the target forwarding path comprises: the ingress edge node in the DCN, at least one SF node in the DCN, and an egress edge node in the DCN;
    the first SID list is generated based on a SID of the ingress edge node in the DCN, and the second SID list is generated based on a SID of the at least one SF node in the DCN and a SID of the egress edge node in the DCN;
    the receiving, by an intermediate node, a to-be-forwarded packet comprises: receiving, by the intermediate node through the basic forwarding network, the to-be-forwarded packet sent by a head node; and
    the sending the to-be-forwarded packet based on the second SID list comprises: sending the to-be-forwarded packet to a first SF node in the at least one service function SF node in the DCN based on the second SID list through an internal node in the DCN.
  14. The method according to any one of claims 9 to 12, wherein the intermediate node is an egress edge node in a first DCN subnet in a DCN, and an egress edge node in the first DCN subnet is connected to an ingress edge node in a second DCN subnet in the DCN through a basic forwarding network;
    the target forwarding path comprises: the ingress edge node in the first DCN subnet, at least one SF node in the first DCN subnet, the egress edge node in the first DCN subnet, the ingress edge node in the second DCN subnet, at least one SF node in the second DCN subnet, and an egress edge node in the second DCN subnet;
    the first SID list is generated based on the at least one SF node in the first DCN subnet and the egress edge node in the first DCN subnet;
    the second SID list is generated based on the ingress edge node in the second DCN subnet;
    the receiving, by an intermediate node, a to-be-forwarded packet comprises: receiving, by the intermediate node through an internal node in the first DCN subnet, the to-be-forwarded packet sent by a last SF node in the at least one SF node in the first DCN subnet; and
    the sending the to-be-forwarded packet based on the second SID list comprises: sending the to-be-forwarded packet to the ingress edge node in the second DCN subnet based on the second SID list through the basic forwarding network.
  15. The method according to claim 14, wherein the first DCN subnet is an edge data center EDC network, the second DCN subnet is a regional data center RDC network, both an ingress edge node and an egress edge node in the EDC network are PE-AGGs, and both an ingress edge node and an egress edge node in the RDC network are DCGWs.
  16. The method according to claim 15, wherein at least one SF node in the EDC network and at least one SF node in the RDC network are SF nodes in a telco cloud network.
  17. The method according to any one of claims 9 to 16, wherein Z is less than M;
    an Mth node in the target forwarding path is a target node of a virtual private network VPN service corresponding to the to-be-forwarded packet;
    the to-be-forwarded packet has an outer packet header and an inner packet header, wherein the outer packet header is encapsulated in front of the inner packet header;
    the outer packet header comprises the first SID list, and the inner packet header comprises a SID of the target node of the VPN service;
    the replacing the first SID list in the packet header with the second SID list comprises: replacing the first SID list in the outer packet header with the second SID list; and
    the sending the to-be-forwarded packet based on the second SID list comprises: sending the to-be-forwarded packet based on the second SID list in the outer packet header.
  18. A data forwarding method, wherein the method comprises:
    receiving, by a tail node, a to-be-forwarded packet, wherein a packet header of the to-be-forwarded packet comprises a second SID list, and the second SID list is generated based on SIDs of a part of nodes in a target forwarding path;
    removing the packet header of the to-be-forwarded packet to obtain to-be-forwarded data; and
    forwarding the to-be-forwarded data based on a destination address of the to-be-forwarded data; wherein
    the target forwarding path comprises M nodes, the second SID list is generated based on SIDs of a Zth node to an Mth node in the M nodes, the second SID list is obtained by replacing a first SID list at an intermediate node, and the first SID list is generated based on an Xth node to a Yth node in the M nodes, wherein Z is greater than 1 and less than or equal to M, X is greater than or equal to 1, and Y is less than or equal to Z; and a SID of the tail node is a last SID in the second SID list.
  19. A data forwarding method, wherein the method comprises:
    receiving, by a tail node, a to-be-forwarded packet, wherein the to-be-forwarded packet comprises an outer packet header and an inner packet header, the outer packet header comprises a second SID list, the second SID list is generated based on SIDs of a part of nodes in a target forwarding path, and the inner packet header comprises a SID of a target node of a VPN service corresponding to the to-be-forwarded packet;
    removing the outer packet header of the to-be-forwarded packet to obtain a to-be-forwarded packet; and
    forwarding the to-be-forwarded packet obtained by removing the outer packet header to the target node of the VPN service corresponding to the to-be-forwarded packet; wherein
    the target forwarding path comprises M nodes, and the second SID list is generated based on SIDs of an Xth node to an (M―1)th node in the M nodes, wherein X is greater than 1; a SID of the tail node is a last SID in the second SID list; and the target node of the VPN service is the Mth node.
  20. A data forwarding method, wherein the method comprises:
    obtaining, by a controller, a target forwarding path, wherein the target forwarding path comprises M nodes;
    generating a first SID list based on SIDs of first N nodes in the M nodes;
    generating a second SID list based on SIDs of an Xth node to a Yth node in the M nodes;
    sending the first SID list to a head node; and
    sending the second SID list to an intermediate node; wherein
    the intermediate node is an Nth node in the M nodes, wherein N is greater than or equal to 1, X is equal to N or N+1, and Y is less than or equal to M;
    the first SID list is used by the head node to send to-be-forwarded data received by the head node; and
    the second SID list is used by the intermediate node to send a to-be-forwarded packet received by the intermediate node.
  21. The method according to claim 20, wherein the method comprises:
    the head node is configured to encapsulate, in front of the to-be-forwarded data, a packet header comprising the first SID list, to generate the to-be-forwarded packet; and send the to-be-forwarded packet to the intermediate node based on a destination address; and
    the intermediate node is configured to replace the first SID list in the packet header of the to-be-forwarded packet with the second SID list, and forward the to-be-forwarded packet based on a destination address in a packet header obtained through replacement.
  22. The method according to claim 20, wherein the sending the first SID list to a head node comprises: sending an SR policy 1 to the head node, wherein the SR policy 1 comprises the first SID list; and
    the sending the second SID list to an intermediate node comprises: sending an SR policy 2 to the intermediate node, wherein the SR policy 2 comprises the second SID list.
  23. The method according to claim 20, wherein the controller is a DCN controller in a DCN.
  24. A data forwarding apparatus, applied to a network system, wherein the network system comprises a head node, an intermediate node, and a tail node, the apparatus is located on the head node, and the apparatus comprises:
    a receiving module, configured to obtain to-be-forwarded data;
    a processing module, configured to obtain a first SID list corresponding to the to-be-forwarded data, wherein the first SID list is generated based on SIDs of a part of nodes in a target forwarding path; and encapsulate, in front of the to-be-forwarded data, a packet header comprising the first SID list, to obtain a to-be-forwarded packet; and
    a sending module, configured to send the to-be-forwarded packet based on the first SID list, wherein the target forwarding path comprises M nodes, the first SID list is generated based on first N nodes in the M nodes, the first SID list is replaced with a second SID list at the intermediate node, and the second SID list is generated based on an Xth node to a Yth node in the M nodes, wherein M is greater than N, N is greater than or equal to 1, X is greater than or equal to N, and Y is less than or equal to M.
  25. A data forwarding apparatus, applied to a network system, wherein the network system comprises a head node, an intermediate node, and a tail node, the apparatus is located on the intermediate node, and the apparatus comprises: a receiving module, configured to receive a to-be-forwarded packet, wherein a packet header of the to-be-forwarded packet comprises a first SID list;
    a processing module, configured to obtain a second SID list corresponding to the to-be-forwarded packet, and replace the first SID list in the packet header with the second SID list; and
    a sending module, configured to send the to-be-forwarded packet based on the second SID list, wherein the first SID list and the second SID list are separately generated based on SIDs of a part of nodes in a target forwarding path; and the target forwarding path comprises M nodes, the first SID list is generated based on SIDs of an Xth node to a Yth node in the M nodes, and the second SID list is generated based on SIDs of a (Y+1)th node to a Zth node in the M nodes, wherein X is greater than or equal to 1, Y is greater than or equal to X, and Z is less than or equal to M.
  26. A data forwarding apparatus, applied to a network system, wherein the network system comprises a head node, an intermediate node, and a tail node, the apparatus is located on the tail node, and the apparatus comprises:
    a receiving module, configured to receive a to-be-forwarded packet, wherein a packet header of the to-be-forwarded packet comprises a second SID list, and the second SID list is generated based on SIDs of a part of nodes in a target forwarding path;
    a processing module, configured to remove the packet header of the to-be-forwarded packet to obtain to-be-forwarded data; and
    a sending module, configured to forward the to-be-forwarded data based on a destination address of the to-be-forwarded data; wherein
    the target forwarding path comprises M nodes, the second SID list is generated based on SIDs of a Zth node to an Mth node in the M nodes, the second SID list is obtained by replacing a first SID list at the intermediate node, and the first SID list is generated based on an Xth node to a Yth node in the M nodes, wherein Z is greater than 1 and less than or equal to M, X is greater than or equal to 1, and Y is less than or equal to Z; and a SID of the tail node is a last SID in the second SID list.
  27. A data forwarding apparatus, applied to a network system, wherein the network system comprises a head node, an intermediate node, and a tail node, the apparatus is located on the tail node, and the apparatus comprises:
    a receiving module, configured to receive a to-be-forwarded packet, wherein the to-be-forwarded packet comprises an outer packet header and an inner packet header, the outer packet header comprises a second SID list, the second SID list is generated based on SIDs of a part of nodes in a target forwarding path, and the inner packet header comprises a SID of a target node of a VPN service corresponding to the to-be-forwarded packet;
    a processing module, configured to remove the outer packet header of the to-be-forwarded packet to obtain a to-be-forwarded packet; and
    a sending module, configured to forward the to-be-forwarded packet obtained by removing the outer packet header to the target node of the VPN service corresponding to the to-be-forwarded packet, wherein the target forwarding path comprises M nodes, and the second SID list is generated based on SIDs of an Xth node to an (M―1)th node in the M nodes, wherein X is greater than 1; a SID of the tail node is a last SID in the second SID list; and the target node of the VPN service is the Mth node.
  28. A data forwarding apparatus, applied to a network system, wherein the network system comprises a head node, an intermediate node, a tail node, and a controller, the apparatus is located on the controller, and the apparatus comprises:
    a receiving module, configured to obtain a target forwarding path, wherein the target forwarding path comprises M nodes;
    a processing module, configured to generate a first SID list based on SIDs of a first node to an Nth node in the M nodes, and generate a second SID list based on SIDs of an Xth node to a Yth node in the M nodes; and
    a sending module, configured to send the first SID list to the head node, and send the second SID list to the intermediate node, wherein the intermediate node is the Nth node in the M nodes, N is greater than or equal to 1, X is equal to N or N+1, and Y is less than or equal to M; wherein
    the first SID list is used by the head node to send to-be-forwarded data received by the head node; and
    the second SID list is used by the intermediate node to send a to-be-forwarded packet received by the intermediate node.
  29. A data forwarding system, wherein the system comprises:
    a head node, wherein the head node is configured to perform the data forwarding method according to any one of claims 1 to 8; and
    at least one intermediate node, wherein the intermediate node is configured to perform the data forwarding method according to any one of claims 9 to 17.
  30. The system according to claim 29, wherein the system further comprises:
    a tail node, wherein the tail node is configured to perform the data forwarding method according to claim 18 or 19.
  31. The system according to claim 29 or 30, wherein the system further comprises:
    a controller, wherein the controller is configured to perform the data forwarding method according to any one of claims 20 to 22.
  32. The system according to claim 30, wherein the head node is a level-1 aggregation device PE-AGG, the intermediate node is a level-2 aggregation device PRE-AGG or a data gateway DCGW, and the tail node is a DCGW.
  33. The system according to claim 31, wherein the controller is a data center network controller DCN Controller.
EP20749251.3A 2019-01-30 2020-01-11 Data forwarding method and related device Pending EP3907942A4 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910094301.8A CN111510387B (en) 2019-01-30 2019-01-30 Data forwarding method and related device
PCT/CN2020/071570 WO2020156105A1 (en) 2019-01-30 2020-01-11 Data forwarding method and related device

Publications (2)

Publication Number Publication Date
EP3907942A1 true EP3907942A1 (en) 2021-11-10
EP3907942A4 EP3907942A4 (en) 2022-03-02

Family

ID=71840929

Family Applications (1)

Application Number Title Priority Date Filing Date
EP20749251.3A Pending EP3907942A4 (en) 2019-01-30 2020-01-11 Data forwarding method and related device

Country Status (5)

Country Link
US (1) US20210377173A1 (en)
EP (1) EP3907942A4 (en)
JP (1) JP7290732B2 (en)
CN (1) CN111510387B (en)
WO (1) WO2020156105A1 (en)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11356361B2 (en) * 2019-04-04 2022-06-07 Cisco Technology, Inc. Systems and methods for steering traffic into SR-TE policies
JP7056626B2 (en) * 2019-04-09 2022-04-19 日本電信電話株式会社 Communication system and communication method
US11777847B1 (en) * 2020-02-12 2023-10-03 Juniper Networks, Inc. Point-to-multipoint transport chain
CN111988395B (en) * 2020-08-18 2022-05-17 深圳信息职业技术学院 Service function chain construction system and method
CN114338495A (en) * 2020-09-30 2022-04-12 华为技术有限公司 Service processing method and related equipment
CN114374634A (en) * 2020-10-15 2022-04-19 华为技术有限公司 Message forwarding method and network equipment
CN112422426B (en) * 2020-10-28 2022-06-28 中盈优创资讯科技有限公司 Service processing method and device based on SR
CN116846807A (en) * 2020-11-27 2023-10-03 华为技术有限公司 Communication method and device
CN112422398B (en) * 2020-12-08 2022-04-15 中国联合网络通信集团有限公司 Message transmission method and communication device
US20240106740A1 (en) * 2021-06-29 2024-03-28 New H3C Technologies Co., Ltd. Method and apparatus for packet forwarding, network node and storage medium
CN113726655B (en) * 2021-08-30 2022-09-20 新华三信息安全技术有限公司 Message drainage method and device, head-end equipment and storage medium
CN116074243A (en) * 2021-11-03 2023-05-05 华为技术有限公司 Message transmission method, device and equipment
CN116264560A (en) * 2021-12-14 2023-06-16 中国移动通信有限公司研究院 Path planning method and device
CN114285781B (en) * 2021-12-17 2024-01-19 中国电信股份有限公司 SRV6 service flow statistics method, device, electronic equipment and medium
WO2023155068A1 (en) * 2022-02-16 2023-08-24 Telefonaktiebolaget Lm Ericsson (Publ) Communication device, sdn controller, and methods therein for facilitating path computation
CN115348203B (en) * 2022-10-12 2023-03-24 北京合众方达科技有限公司 IPv6 network method based on TSN

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6717950B2 (en) * 2002-01-20 2004-04-06 General Instrument Corporation Method and apparatus for priority-based load balancing for use in an extended local area network
CN101436998A (en) * 2008-12-16 2009-05-20 华为技术有限公司 Method for obtaining message forwarding route and apparatus for forwarding message
CN105337785B (en) * 2014-07-18 2018-10-02 华为技术有限公司 A kind of path connectivity detection method and device
US10270691B2 (en) * 2016-02-29 2019-04-23 Cisco Technology, Inc. System and method for dataplane-signaled packet capture in a segment routing environment
CN107666438B (en) * 2016-07-27 2021-10-22 中兴通讯股份有限公司 Message forwarding method and device
CN107666436B (en) * 2016-07-27 2019-05-17 中兴通讯股份有限公司 Message forwarding method and device
CN109863725B (en) * 2016-08-15 2021-08-31 瑞典爱立信有限公司 Segment routing method based on maximum segment identifier depth and electronic equipment
CN107566272B (en) * 2017-10-17 2021-10-12 新华三技术有限公司 Forwarding table establishing method and data forwarding method
CN108768848B (en) * 2018-09-04 2020-06-05 北京邮电大学 Segmented routing method and device
CN109067652A (en) * 2018-09-25 2018-12-21 盛科网络(苏州)有限公司 The method and device of segment identification expense is saved in a kind of IPv6 Segment routing
US11134002B2 (en) * 2018-10-22 2021-09-28 Cisco Technology, Inc. Packet network interworking including segment routing
CN109218200B (en) * 2018-11-26 2021-05-28 新华三技术有限公司 Message processing method and device

Also Published As

Publication number Publication date
JP2022523087A (en) 2022-04-21
WO2020156105A1 (en) 2020-08-06
CN111510387B (en) 2021-12-14
JP7290732B2 (en) 2023-06-13
US20210377173A1 (en) 2021-12-02
CN111510387A (en) 2020-08-07
EP3907942A4 (en) 2022-03-02

Similar Documents

Publication Publication Date Title
EP3907942A1 (en) Data forwarding method and related device
US11870755B2 (en) Dynamic intent-based firewall
US10757008B2 (en) Flow specification protocol-based communications method, device, and system
CN111865796B (en) Path Computation Element Central Controller (PCECC) for network traffic
EP2806601B1 (en) Tunnels between virtual machines
JP4531063B2 (en) System and method for guaranteeing service quality in virtual private network
JP2022510555A (en) End-to-end ID recognition routing across multiple management domains
Shvedov et al. Segment routing in data transmission networks
US20230308391A1 (en) Communication of policy changes in lisp-based software defined networks
CN113904981A (en) Routing information processing method and device, electronic equipment and storage medium
US9407544B1 (en) Network virtualization using IP map and encapsulation
CN112671650A (en) End-to-end SR control method, system and readable storage medium under SD-WAN scene
US20230261963A1 (en) Underlay path discovery for a wide area network
WO2012084626A1 (en) Method for inter-domain communications
CN110838965B (en) Tunnel establishment method and receiving node
WO2023158959A1 (en) Underlay path discovery for a wide area network
CN115695284A (en) Return flow drainage method, device, equipment and storage medium in computational power network

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20210804

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

A4 Supplementary search report drawn up and despatched

Effective date: 20220128

RIC1 Information provided on ipc code assigned before grant

Ipc: H04L 12/46 20060101ALI20220124BHEP

Ipc: H04L 45/50 20220101ALI20220124BHEP

Ipc: H04L 45/00 20220101AFI20220124BHEP

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
REG Reference to a national code

Ref country code: DE

Ref legal event code: R079

Free format text: PREVIOUS MAIN CLASS: H04L0012741000

Ipc: H04L0012460000

RIC1 Information provided on ipc code assigned before grant

Ipc: H04L 45/745 20220101ALI20240321BHEP

Ipc: H04L 45/74 20220101ALI20240321BHEP

Ipc: H04L 45/64 20220101ALI20240321BHEP

Ipc: H04L 45/50 20220101ALI20240321BHEP

Ipc: H04L 45/02 20220101ALI20240321BHEP

Ipc: H04L 45/00 20220101ALI20240321BHEP

Ipc: H04L 12/46 20060101AFI20240321BHEP