BGP Labs: Use Your Preferred Device for External Routers
TL&DR: With the recent changes to online BGP labs, you can also use Aruba CX, Cisco IOS, Cisco IOS XE, Cisco IOS XR, Dell OS10, Junos, or VyOS as external lab devices in most lab exercises (you could always use these devices for the routers you worked on). Previously, you could choose between Arista EOS and FRRouting, both of which are (obviously) still supported.
One of the goals of the Online BGP Labs project was to create an environment in which you could practice the BGP features you were interested in without spending an inordinate amount of time preparing the lab.
For example, if you want to figure out why BGP wedgies work the way they do, you need at least four additional autonomous systems, two of them acting as upstream ISPs for your customer router, and at least one of them implementing BGP policies using BGP communities.
While many labs used netlab features like originate BGP default route to configure “external” routers1, more complex labs used custom configuration templates to configure AS-path filters, BGP community lists, and route maps. Those templates were only available for FRRouting and Arista EOS, forcing you to use potentially unfamiliar devices in your labs.
In the meantime, we implemented routing policies, AS-path filters, and BGP community lists on a half-dozen network operating systems (for a total of ~20 device types), and it would be a shame not to use that functionality in the BGP labs.
In March 2026, I rewrote most of the lab topologies that used custom configuration templates to use the netlab Generic Routing features, resulting in a much wider range of devices you can use for the external routers. For example, it’s now perfectly feasible to run almost all labs in a Cisco IOS-only (or Junos-only) environment, making it much easier to troubleshoot the labs because you won’t have to deal with less-familiar devices2.
Hope you’ll like the wider selection of lab devices. If you experience any problems, please report them by opening a GitHub issue.