pySROS and Event Handler System Makes BGP-VPLS Easier

Github for this blog post – https://github.com/thinghacker/blog-labs/tree/main/bgp-vpls-pysros-ehs

A few months ago I was in a situation where I needed to have some Nokia routers participating in VPLS Services based on RFC4761 and using RSVP-TE signaled LSPs as the service transport in a Seamless-MPLS environment.

While contemporary networks are more likely to be looking at using EVPN service constructs with either SR-MPLS or SRv6 as the service transport, sometimes we need to work within an existing environment because what is currently working is considered “good enough” and changing to more recent technologies are cool, sometimes the cost of change is not worth it to the business, so you need to integrate with what is there.

Nokia routers and SROS most definitely support BGP-VPLS service instances with RSVP-TE transport, however the BGP auto-discovery piece doesn’t extend to automatic tunnel creation like we would get with IP-VPN or EVPN based services, so we need to provision those service tunnels (SDPs) and when the SDP is within the same IGP area it is necessary to also manually build an RSVP-TE LSP and bind it to the SDP. Once the SDP is present, SROS can be configured to use it in the VPLS service through the use of psuedowire templates however this becomes a tedious exercise especially if there additional sites to be added over time as we get to the N squared problem.

SROS routers that are operating in model driven mode (MD-CLI) are blessed with the ability to run python3 scripts directly on the router itself (pySROS) or elsewhere (for instance on a management station) against a number of routers. These scripts allow programmatic tasks that can be quite complex and extends the capability of the router and network to be more than just reporting on state changes but being able to take action and dynamically enable configurations to occur.

It is this capability in combination with the Event Handler System, when an event occurs such as the system failing to bind an SDP for a VPLS we could invoke a script to create that SDP and RSVP-TE LSP (if need be)

The github repo/directory supporting this blog post walks through a number of scenarios showing how these scripts can be a time saver as well as reducing errors (and be dynamic through the coupling with EHS)

While you might not be needing to deploy BGP-VPLS these days, hopefully this might serve as a base for your own ideas in on-router (or external) automation activities – feel free to look at the configurations and code and modify and extend it to your need!