All we want for X-mas šŸŽ„: Hyper-scale targeted LDP signaled MACsec šŸ” protected Traffic Engineered epipe āˆæ services using Segment Routing over ISIS ā˜„

Jeroen Van Bemmel
4 min readDec 29, 2021

--

Featuring Netsim-Tools 1.0.6+ by Ivan Pepelnjak

Traffic Engineering in SR-ISIS networks (from Derekā€™s post)

As the dust slowly settles over 2021, some of you may be wondering if that is it for this year. As it turns out, it is not ā€” there is more! Ivan just released version 1.0.6 of Netsim-Tools, and itā€™s a doozy.

Extensible Model-Driven Architecture: Truly šŸ˜®penā„¢ collaboration

What is so great about Netsim-Tools and this latest release in particular, is that it is fully customizable by design. The new plugin mechanism allows anyone to add whatever ā€œnerd knobsā€ they need for their particular use case. Just like SR Linux, Netsim-Tools is truly open ā€” which makes it a great tool to build upon and collaborate with.

Evolutionary paths ā€” some platforms are more open than others

[ā€¦] The animal species, in which individual struggle has been reduced to its narrowest limits, and the practice of mutual aid has attained the greatest development, are invariably the most numerous, the most prosperous, and the most open to further progress ā€” Peter Kropotkin on ā€œsurvival of the fittestā€

Last week I already talked about Segment Routing (SR) support for 7250 IXR devices running the new SR Linux 21.11.1 release. While we could use that to implement the SR-ISIS part of the scenario suggested by Derek Cheung (back in 2020) ā€” i.e. R2 and R3 in the diagram ā€” R1 and R4 need to use SR OS, and given my curiosity about SR Traffic Engineering (a.k.a. decorating the network with tunnels all over the place ā€” exciting new territoryā€¦) I decided to go all-in on SR OS this time.

So hereā€™s what weā€™ll be doing today:

  • Recreate Derekā€™s SR-ISIS MPLS with Traffic Engineering use case, using Netsim-Tools (extended/enhanced with various ā€œnerd knobsā€ as needed) and Containerlab
  • Explore what it would take to add MACsec encryption to the L2 service

Github project can be found here; requires this pending PR (and perhaps a little patienceā€¦)

ePipe services ā€” adding custom L2 networking

Netsim-Tools provides the core functionality to model routed network topologies, but prefers to leave (vendor-specific) details to custom plug-ins. For this exercise Iā€™ve created a small ā€˜epipeā€™ plugin module which resolves a custom link attribute containing a node name to a nexthop loopback IP address, for use in a custom Jinja2 template.

On the network side, this introduces the need for L2-only ports ā€” i.e. ports without any IP address assigned. To support this, I modified Netsim-Tools to allow for ā€œipv4: Falseā€ (and since I was in the neighborhood, I also added index-based addressing where users can specify an offset relative to a subnet prefix)

Seamless hyper-scale security-as-a-service at layer 2

As an aside: The reason we (i.e. including you) need this type of L2 connectivity service is also articulated here. Security is a key requirement and investment driver for enterprises, and being able to add it to an existing network service seamlessly ā€” meaning without customers having to make any changes ā€” is essential. Doing that at scale means automation; in other words, what Iā€™m showing here is how we can model and automate security services at hyper-scale, in a form that you can experiment with in your lab.

BFD module

Bidirectional Forwarding Detection (BFD) as defined in RFC5880 is a staple of rapid fault detection and associated failover mechanisms. In this use case it is enabled for ISIS interfaces, using parameters defined in the RFC. One could do the same for OSPF and BGP ā€” but weā€™ll leave those for another day. The same goes for ā€œseamless bfdā€ (RFC7880) extensions.

MACsec on 7x50 SROS

Nokia SR OS has long supported Media Access Control security (MACsec, formally IEEE 802.1AE), a security feature supported in hardware on certain MDAs. I could not find a simple table to tell me which MDAs support it, but the vSIM installation guide lists the ā€˜maxp10ā€“10/1gb-msec-sfp+ā€™ MDA for sr-a4/a8 ā€” so I guess ā€œmsecā€ means MACsec and the sr-a4 is our guy.

Exceptā€¦Containerlab(Vrnetlab) didnā€™t support that particular model. Not to worry ā€” we can add that ā€” and so we are good to go.

Or so I thought

As it turns out, MACsec has more of a hop-by-hop architecture, and doesnā€™t ā€œjustā€ work across a multi-hop MPLS network; the MKA session doesnā€™t come up. There is a ā€˜eapol-destination-addressā€™ (MAC address) under port/ethernet/dot1x/macsec which looks promising ā€” but this would require R1 and R4 to have a MAC address to target, which they currently donā€™t. Maybe a PBB VPLS could work?

Besides that, the MTUs will need some tweaking: MACsec adds 32 bytes to each packet.

Letā€™s figure it out together ā€” suggestions appreciated!

It looks so simpleā€¦
MPLS packets captured at R3, following a Traffic Engineering LSP path R1-R3-R2-R4 (QED)

--

--

Jeroen Van Bemmel
Jeroen Van Bemmel

Written by Jeroen Van Bemmel

Sustainable digital transformation at Webscale ā€” real life stories about our discoveries in the world of networking. Views represented are my own.

No responses yet