MPLS/IP and SRv6: Difficulties and Breakthroughs
MPLS/IP and SRv6: Difficulties and Breakthroughs
From the birth of Arpanet in 1969 to the official depletion of IPv4 addresses in 2019, Internet technology has been continuously updated and iterated over the years. The bearer network of operators has experienced the evolution of various technologies such as SDH, PTN, and IP RAN. Under the development trend of all-IP and large bandwidth of mobile base stations, IP MPLS technology has been widely used.
With the upgrading of 2C (autonomous driving, cloud VR/AR, cloud games, ultra-high-definition), 2B (smart manufacturing, telemedicine) services and the trend of cloudification of 5G services, new services will bring users the ultimate experience while also It has brought great challenges to traditional networks. In this context, SRv6 emerges as the times require, and has been popularized and applied along with the large-scale deployment of IPv6.
Traditional network dilemma
The MPLS/IP dilemma
MPLS plays an important role in IP transmission, but it will cause network islanding and complicate inter-domain network interconnection.
More precisely, MPLS unifies the bearer network, but the IP backbone network, the MAN, and the mobile bearer network are independent MPLS domains, which are separated from each other and need to be interconnected using complex technologies such as cross-domain VPN. The deployment of end-to-end services is very complicated. Therefore, a variety of inter-autonomous system (AS) solutions have been proposed for inter-domain MPLS VPN, such as Option-A, Option-B, and Option-C, and the service deployment of each is relatively complicated.
For example, in the diagram above, traffic from an end user to a cloud data center needs to traverse multiple network domains. The traffic first passes through the MPLS-based Fixed Mobile Convergence (FMC) transmission network, then the traffic enters the MPLS-based IP backbone network through the local IP network, then accesses the IP network at the edge of the data center, and finally reaches the VXLAN gateway. In the VXLAN gateway, along the VXLAN tunnel, reach the TOR switch at the exit of the VXLAN tunnel, and finally access the virtual network function (VNF) device.
If you want to go through these network domains, you can imagine how complicated the entire service access process will be.
In addition, scalability is also the main factor hindering the development of MPLS, which involves two aspects: the scalability of label space and the scalability of encapsulation. In the MPLS label space, as shown in the figure below, the MPLS label has 20 bits, which is equivalent to 2^20 label spaces.
At present, many new services need to add more forwarding information in the forwarding plane, but the IETF has issued a statement to stop formulating updated standards for IPv4. In addition, MPLS has only 20 bits of label space, and the label field is fixed, the length is fixed, and it lacks scalability. As a result, it is difficult to meet the network programming needs of future businesses.
With the development of the network and the continuous carrying of more emerging services, the combination of IP and MPLS faces the following problems and challenges:
- Declining forwarding advantage: With the improvement of search routing algorithm, especially the hardware upgrade represented by network processor (NP), MPLS no longer has obvious advantages in forwarding performance.
- Difficulties in cloud-network integration: There are many attempts to use MPLS to provide VPN services in data centers. However, these attempts have mostly failed due to factors such as network management boundaries, management complexity, and scalability.
- Difficulty in cross-domain deployment: relatively complex service deployment is involved.
- Complex service management: When multiple services (such as L2VPN and L3VPN services) coexist, protocols such as LDP, RSVP, IGP, and BGP may exist on the device at the same time. This makes service deployment difficult and management complex, making it difficult to achieve large-scale service deployment in the 5G and cloud era.
- Protocol state complexity: As the number of nodes and tunnels increases, the number of states also increases. The exponential growth of states puts enormous pressure on the performance of transmission nodes, hindering the construction of large-scale networks.
IPv4 dilemma
One of the biggest problems with IPv4 is the lack of address resources. With the final /22 IPv4 allocation from the available pool by the European Network Information Center (RIPE NCC) on November 25, 2019, all 4.3 billion IPv4 addresses worldwide have been allocated, meaning there are no more IPv4 addresses to allocate To Internet Service Providers (ISPs) and other large network infrastructure providers.
Although technologies such as Network Address Translation (NAT) can alleviate this problem by reusing private network address blocks, it is not the ultimate solution. NAT does not support IPv4 address source tracing, which hides the actual IPv4 address and presents management risks.
IPv4 also faces another dilemma: the lack of scalability of the packet header leads to the lack of programmability. For this reason, it is difficult for IPv4 networks to support many new services that require extensions to the packet header, such as source routing, SFC, and IOAM.
In order to solve the problems of IPv4 address exhaustion and poor scalability, the industry has designed a next-generation IPv4 upgrade solution—IPv6.
How does SRv6 break the game?
Using general-purpose hardware, software-defined functions, and open source models in the computer field, Stanford professor Nick McKeown's team proposed a new network architecture SDN, which has the following three characteristics:
- Open Network Programmability
- Separation of control plane and data plane
- Logic centralized control
It is worth noting that SDN is just a network architecture, and a variety of technologies have been proposed to realize it, such as OpenFlow, SR (Segment Routing, Segment Routing) and so on. OpenFlow is not widely deployed due to its limitations.
In 2013, Segment Routing was proposed, which is a transitional extension based on the existing network and provides network programmability. The core idea of SR is to divide the message forwarding path into different segments, and insert segment information into the message at the starting point of the path, and the intermediate nodes only need to forward according to the segment information carried in the message. Such a path segment is called a "Segment", and is identified by a SID (Segment Identifier, segment identifier).
Currently, SR has two data planes: MPLS and IPv6. When SR is applied to the MPLS data plane, it is called SR-MPLS, and the SID is encoded as an MPLS label. When SR is applied to the IPv6 data plane, it is called SRv6, and the SID is encoded as an IPv6 address.
SR-MPLS provides network programming capability by reusing the existing MPLS forwarding mechanism. It can support smooth upgrade from existing MPLS network to SR-MPLS network. This could allow for easier industry adoption. Furthermore, SR preserves the distributed intelligence of the network while introducing the global traffic optimization of the SDN controller.
Although SR-MPLS can provide good programmability, due to the poor scalability of MPLS encapsulation, it cannot meet the services that need to carry metadata such as SFC and IOAM. Compared with SR-MPLS, SRv6 based on IPv6 data plane not only inherits all the advantages of SR-MPLS, but also provides better scalability.
SRv6 Technical Overview
IPv6 has network programmability, which allows new services to be deployed quickly and easily. Although IPv4 also provides a programmable Options field, this field is not commonly used. However, IPv6 has considered the scalability of the header from the beginning, and many extended headers, including hop-by-hop options, destination options, and routing headers, support further extensions.
With the rise of new services such as 5G and cloud, and the development of network programmable technologies, services require the network forwarding plane to provide stronger programming capabilities and simpler converged network solutions. This is where SRv6 comes into play.
The full name of SRv6 is Segment Routing IPv6. It is an SR network paradigm based on the IPv6 data plane. It uses segments encoded in the SR Extension Header (SRH) to clearly tell the network which IPv6 packets it should traverse. paths, and the functions to be performed on each SRv6 node.
In SRv6, each segment is identified by SID. SID is a special IPv6 address, which not only has the routing capability of ordinary IPv6 addresses, but also has the unique behavior capability of SRv6. Each SRv6 node maintains a SID table (actually part of the routing table), which consists of many 128bit SIDs. The standard format of the SID is Locator+Function(Args), as shown below:
The Locator identifies the locator of the SRv6 node. Each node has at least one globally unique Locator value, which serves as the shared prefix of the local SID. Other nodes access the SID of the node through the Locator route. Function(Args) identifies different behaviors in the SRv6 node, such as END, END.X, etc. A few behaviors also need to pass the Args parameter.
After the SRv6 node receives the IPv6 message, it will search the global routing table according to the IPv6 DA (Destination Address). If it matches a certain SID, it will be processed by the behavior defined by the SID, otherwise it will perform the normal routing forwarding action.
In order to implement SR technology based on the IPv6 forwarding plane, an SRH (Segment Routing Header) extension header is added to the IPv6 routing extension header. This extension header specifies an IPv6 explicit path and stores IPv6 Segment List information. Segment List is a forwarding path obtained by orderly arranging segments and network nodes. When the packet is forwarded, the IPv6 destination address (IPv6 DA) information is determined based on the Segments Left and Segment List fields, so as to guide the forwarding path and behavior of the packet. Its format is shown in the figure below.
The IETF SRv6 network programming draft defines a set of capabilities that can be associated with a SID, including:
SRv6-based VPNs are a use case for SRv6 deployments. The SRv6 VPN draft defines the processes and messages of BGP SRv6-based L3 VPN and Ethernet VPN. The following diagram illustrates how L3 VPN services are delivered over an SRv6 network and how packets are encapsulated at various nodes in the network:
Since the SRv6 network programming draft was submitted to the IETF, SRv6 has been deployed by many operators around the world. Such rapid development is rare in intellectual property technologies.
The key to breaking the game in SRv6
To sum up, although MPLS-based transmission has achieved great success, it is now in deep trouble, and SRv6 technology is the way to break the situation:
SRv6 directly uses IPv6 addresses as forwarding labels, and implements unified bearer on the control plane and data plane. Cloud, pipe, and end are based on a unified IPv6 standard protocol to achieve end-to-end manageability and control.
SRv6 is based on SRH and supports encapsulating more information in packets to meet the diverse requirements of new services.
The affinity of SRv6 with IPv6 enables it to seamlessly integrate IP transport network with IPv6-enabled applications, and provide operators with more potential value-added services through application-aware networks.
As shown in the figure above, with the development of 5G, cloud, Internet of Things (IoT) and other services, more and more network devices require more addresses and network programmability. SRv6 can better meet the needs of these services, facilitate the development of network services, and promote the network into a new All IP era, that is, the intelligent IP era based on IPv6-based Internet of Everything.