SPRING C. Filsfils
Internet-Draft F. Clad, Ed.
Intended status: Informational P. Camarillo, Ed.
Expires: September 18, 2018 Cisco Systems, Inc.
A. AbdelSalam
Gran Sasso Science Institute
S. Salsano
Universita di Roma "Tor Vergata"
O. Bonaventure
Universite catholique de Louvain
J. Horn
J. Liste
March 17, 2018

SRv6 interoperability report


Segment Routing (SR) can be applied to the IPv6 data plane by leveraging a new type of routing extension header, called Segment Routing Header (SRH). An SRH contains an ordered list, or sequence, of segments representing topological or service-based instructions, or any combination of those.

This draft provides an overview of IPv6 Segment Routing (SRv6) implementations and interoperability. It makes an inventory of the various pieces of hardware and software that have been demonstrated to support the processing of an SRH, and details some interoperability scenarios that have been showcased at a public event.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on September 18, 2018.

Copyright Notice

Copyright (c) 2018 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

Table of Contents

1. Introduction

Segment Routing (SR), defined in [I-D.ietf-spring-segment-routing], allows a node to steer packets through a controlled sequence of instructions, called segments, by prepending an SR header to the packets. The IPv6 instantiation of Segment Routing (SRv6) leverages the Segment Routing Header (SRH), a new type of IPv6 routing extension header defined in [I-D.ietf-6man-segment-routing-header].

As described in [I-D.filsfils-spring-srv6-network-programming], an SRv6 segment is a network instruction composed of a locator and a function that is encoded as an IPv6 address. The segment locator is an IPv6 prefix used by routing devices to steer the packet along the shortest IGP path up to the node that advertises this prefix. Since the active segment is placed in the Destination Address field of the IPv6 header, steering by intermediate devices only involves plain IPv6 forwarding and does not require any SR-specific capability. Once the packet reaches the node indicated by the segment locator, the segment function is identified and the packet is processed accordingly. Although the SR functions are locally defined on each node, a set of general purpose functions have been proposed for standardization in [I-D.filsfils-spring-srv6-network-programming] in order to ease interoperability. This set is further extended with specific purposes functions in [I-D.ietf-dmm-srv6-mobile-uplane] and [I-D.xuclad-spring-sr-service-chaining].

2. Routing platforms supporting SRH processing

The hardware and software platforms listed below have been demonstrated to support the processing of an SRH as described in [I-D.ietf-6man-segment-routing-header]. This section also indicates the supported SRv6 functions and transit behaviors on open-source software.

Open-source platforms:


Barefoot Networks:

3. Applications supporting SRH

In addition to the aforementioned routing platforms, the following open-source applications have been extended to support the processing of IPv6 packets containing an SRH. For Wireshark, tcpdump, iptables and nftables, these extensions have been included in the mainstream version.

4. Interoperability testing

The following interoperability testing scenarios were publicly showcased on August 21-24, 2017 at the SIGCOMM conference.

Five different implementations of SRv6 behaviors were used for this testing:

4.1. Testbed configuration

+--------+     +---+        +---+        +---+     +--------+
| Site A +-----+ 1 +--------+ 2 +--------+ 3 +-----+ Site B |
+--------+     +-+-+        +---+        +-+-+     +--------+
                 |                         |
                 |     +---+     +---+     |
                 +-----+ 4 +-----+ 5 +-----+
                       +-+-+     +-+-+  
                         |         |
                       +-+-+     +-+-+
                       | 6 |     | 7 |
                       +-+-+     +-+-+
                         |         |
                       +-+-+     +-+-+
                       | 8 |     | 9 |
                       +---+     +---+

Figure 1: Testbed topology

As shown in the figure above, the testbed consisted of 9 different nodes:

On sites A and B the TRex software is used for traffic generation.

In addition, after every layer 3 operation in the network, Wireshark traffic analyzer is used to verify proper functionality.

4.2. Scenarios

4.2.1. L3 VPN

This scenario covers simple L3 VPN functionality for IPv6 traffic using the SRv6 behaviors T.Encaps and End.DX6 in conjunction with regular IPv6 routing.

4.2.2. L3 VPN with traffic engineering

This scenario covers L3 VPN overlay with underlay optimization in a single SRv6 encapsulation (IPv6 header + SRH). It leverages the same T.Encaps and End.DX6 behaviors as the first scenario, combined with the End and End.X functions.

4.2.3. L3 VPN with traffic engineering and service chaining

This scenario covers L3 VPN overlay with underlay optimization and service chaining. Snort and iptables are SR-unaware services in this situation and accessed via SRv6 dynamic proxy endpoint functions implemented on nodes 6 and 7.

5. Contributors

David Lebrun, Prem Jonnalagadda and Milad Sharif substantially contributed to the content of this document.

6. Acknowledgements


7. IANA Considerations

This document does not require any action from IANA.

8. Security Considerations

This document does not introduce any security consideration.

9. Informative References

[I-D.filsfils-spring-srv6-network-programming] Filsfils, C., Li, Z., Leddy, J., daniel.voyer@bell.ca, d., daniel.bernier@bell.ca, d., Steinberg, D., Raszuk, R., Matsushima, S., Lebrun, D., Decraene, B., Peirens, B., Salsano, S., Naik, G., Elmalky, H., Jonnalagadda, P. and M. Sharif, "SRv6 Network Programming", Internet-Draft draft-filsfils-spring-srv6-network-programming-04, March 2018.
[I-D.ietf-6man-segment-routing-header] Previdi, S., Filsfils, C., Raza, K., Dukes, D., Leddy, J., Field, B., daniel.voyer@bell.ca, d., daniel.bernier@bell.ca, d., Matsushima, S., Leung, I., Linkova, J., Aries, E., Kosugi, T., Vyncke, E., Lebrun, D., Steinberg, D. and R. Raszuk, "IPv6 Segment Routing Header (SRH)", Internet-Draft draft-ietf-6man-segment-routing-header-09, March 2018.
[I-D.ietf-dmm-srv6-mobile-uplane] Matsushima, S., Filsfils, C., Kohno, M., Camarillo, P., daniel.voyer@bell.ca, d. and C. Perkins, "Segment Routing IPv6 for Mobile User Plane", Internet-Draft draft-ietf-dmm-srv6-mobile-uplane-01, March 2018.
[I-D.ietf-spring-segment-routing] Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B., Litkowski, S. and R. Shakir, "Segment Routing Architecture", Internet-Draft draft-ietf-spring-segment-routing-15, January 2018.
[I-D.xuclad-spring-sr-service-chaining] Clad, F., Xu, X., Filsfils, C., daniel.bernier@bell.ca, d., Li, C., Decraene, B., Ma, S., Yadlapalli, C., Henderickx, W. and S. Salsano, "Segment Routing for Service Chaining", Internet-Draft draft-xuclad-spring-sr-service-chaining-01, March 2018.
[ref-1] "Implementing IPv6 Segment Routing in the Linux Kernel", July 2017.
[ref-2] "Reaping the Benefits of IPv6 Segment Routing", October 2017.
[ref-3] "Add support for Segment Routing (Type 4) Extension Header", June 2016.
[ref-4] "Add support for IPv6 routing header type 4", December 2017.
[ref-5] "[net-next,v2] netfilter: add segment routing header 'srh' match", January 2018.
[ref-6] "[iptables,v2] extensions: add support for 'srh' match", January 2018.
[ref-7] "[nft] nftables: Adding support for segment routing header 'srh'", March 2018.
[ref-8] "IPv6 Segment Routing (SRv6) aware snort", March 2018.

Authors' Addresses

Clarence Filsfils Cisco Systems, Inc. Belgium EMail: cf@cisco.com
Francois Clad (editor) Cisco Systems, Inc. France EMail: fclad@cisco.com
Pablo Camarillo Garvia (editor) Cisco Systems, Inc. Spain EMail: pcamaril@cisco.com
Ahmed AbdelSalam Gran Sasso Science Institute Italy EMail: ahmed.abdelsalam@gssi.it
Stefano Salsano Universita di Roma "Tor Vergata" Italy EMail: stefano.salsano@uniroma2.it
Olivier Bonaventure Universite catholique de Louvain Belgium EMail: olivier.bonaventure@uclouvain.be
Jakub Horn Cisco USA EMail: jakuhorn@cisco.com
Jose Liste Cisco USA EMail: jliste@cisco.com