Date created: Thursday, March 18, 2021 8:09:28 AM. Last modified: Sunday, June 12, 2022 10:22:16 AM

Base IPv6 IS-IS SR-MPLS Topology

Overview:

The topology below is a basic IPv6 only, IS-IS SR-MPLS network, that forms the underlay for a typical service provider network. This network is a mixture of Cisco ASR9Kv version 7.2.2, Juniper vMX 18.2R1.9 and Arista vEOS 4.25.2F.

 

The full config for each device is available below:

xrv9k-1, xrv9k-2, veos-1, veos-2, vmx-1, vmx-2, ce1, ce3, ce5.

 

Interop Notes:

In order to have the same SRGB on all devices it must be explicitly configured because all three vendors use a different default SRGB range. The IOS-XR default range of 16000 to 23999 is configured on the Junos and EOS devices. On EOS this was a problem because it overlapped with the label range reserved for static labels, so the static label range on EOS had to be reconfigured before the SRGB could be configured.

Junos doesn't have a native method for preventing/suppressing point-to-point link subnets from being advertised into IS-IS (EOS and IOS-XR both support this). An export policy is explicitly configured on the two vMX PEs to only advertise the loopback IP into IS-IS.

None of the devices allow IPv6 format IS-IS router IDs (although no router-ID should be required with IS-IS). vEOS requires a router-id to be configured under router isis 65535 > segment-routing otherwise labels aren't advertised in IS-IS, and this must be a 32bit ID in IPv4 dotted format. No other format is supported. Junos allows IS-IS to be configured without a router-id but it does throw up a warning. To clear the warning by setting a router ID, again only an IPv4 dotted format 32bit number can be used. IOS-XR doesn't care and just uses 0.0.0.0 by default. vEOS and Junos won't allow one to configure 0.0.0.x or 255.255.255.x as the IS-IS router ID.

All devices required a 32bit router ID in IPv4 dotted format for the BGP router ID, this is baked into BGP4, an IPv6 router ID isn't supported by the standard.

 

CE Traceroute:

All CEs can traceroute to each other but any traceroute to/from CE3 attached to vEOS-1, doesn't display the traceroute entry for penultimate LSR, xrv9k-2 from CE1 to CE3 and vEOS-2 from CE5 to CE3:

ce1#traceroute fd:1:5:ce5::ce5
Type escape sequence to abort.
Tracing the route to FD:1:5:CE5::CE5

1 FD:1:1:CE1::1 4 msec 8 msec 28 msec
2 FD:0:6:1::6 [MPLS: Label 16005 Exp 0] 36 msec 212 msec 240 msec
3 FD:0:5:6::5 36 msec 56 msec 52 msec
4 FD:1:5:CE5::CE5 12 msec 8 msec 8 msec

ce1#traceroute fd:1:3:ce3::ce3
Type escape sequence to abort.
Tracing the route to FD:1:3:CE3::CE3

1 FD:1:1:CE1::1 36 msec 40 msec 32 msec
2 * * *
3 FD:0:2:3::3 32 msec 36 msec 36 msec
4 FD:1:3:CE3::CE3 32 msec 24 msec 36 msec


ce3#traceroute fd:1:1:ce1::ce1
Type escape sequence to abort.
Tracing the route to FD:1:1:CE1::CE1

1 FD:1:3:CE3::3 8 msec 12 msec 8 msec
2 * * *
3 FD:0:1:2::1 40 msec 32 msec 32 msec
4 FD:1:1:CE1::CE1 36 msec 36 msec 32 msec


ce5#traceroute fd:1:3:ce3::ce3
Type escape sequence to abort.
Tracing the route to FD:1:3:CE3::CE3

1 FD:1:5:CE5::5 4 msec 12 msec 8 msec
2 * * *
3 FD:0:3:4::3 40 msec 44 msec 20 msec
4 FD:1:3:CE3::CE3 40 msec 32 msec 36 msec

 

Show Commands:

Here are the output of the various show commands from one of each type of vendor:

xrv9k-1, veos-1, vmx-cp-1.

 

Packet Captures:

Below are packet captures showing ISIS establishment between pairs of vendors:

xrv9k-1 and vmx-2

vmx-1 and veos-2

veos-1 and xrv9k-2

Note that vEOS is padding ISIS hellos even though padding is disabled?

^ Update: This is not strictly a problem, check the spec http://www.ccieordie.com/wp-content/uploads/2018/09/iso10589.pdf. vEOS is sending padded IIH's when the link first comes up, but once the ISIS session is established it switches to non-padded IIH's. The standard does state that an IS should start by sending padded hellos, what happens later (i.e., switching to non-padded) is ambiguous.