FRRouting added basic Segment Routing support, see Issue 2639 in the FRRouting version 7.x. In this blog is a networking lab setup using the OSPF SR implementation.
This demo shows the Segment Routing working using MPLS data plane and IS-IS. FRRouting 8.3.1 supports following features in context of the IS-IS SR segment routing:
- IPv4
- IPv6
- ECMP
Segment Routing SR used here relies on the MPLS linux kernel modules to be available and loaded in the kernel. Main focus is SR running using MPLS data plane.
Using MPLS dataplane, segments are encoded as a list of MPLS labels. But using IPv6 dataplane, a new header called a Segment Routing Header (SRH) is used. Segments in a SRH are encoded as a list of IPv6 addresses. Read RFC8287 - Label Switched Path (LSP) Ping/Traceroute for Segment Routing (SR) IGP-Prefix and IGP-Adjacency Segment Identifiers (SIDs) with MPLS Data Planes.
Network topology
Network topology with IP adressing:
lo lo
192.0.2.1 192.0.2.2
2001:db8:1111:: 2001:db8:2222::
+-------+ +-------+
| | eth0 eth0 | | eth2
| R1 |-----------------------------------| R2 |---------------+
| | .1/30 .2/30 | | .17/30 |
+-------+ +-------+ |
eth1 | .14/30 .5/30 | eth1 |
| | |
| | |
| | .18/30 | eth2
| | +-------+
| | | | lo
| | | R5 | 192.0.2.5
| | | | 2001:db8:5555::
| | +-------+
| | .21/30 | eth3
| | |
| | |
eth1 | .13/30 .6/30 | eth1 |
+-------+ +-------+ |
| | .10/30 .9/30 | | .22/30 |
| R4 |-----------------------------------| R3 |----------------+
| | eth0 eth0 | | eth3
+-------+ +-------+
lo lo
192.0.2.4 192.0.2.3
2001:db8:4444:: 2001:db8:3333::
5 routers. Partial mesh network topology. Point-to-point links.