New Project: BGP Hands-On Labs

Approximately 30 years ago I managed to persuade the powers-that-be within Cisco’s European training organization that they needed a deep-dive BGP course, resulting in a 3 (later 5) day Advanced BGP Configuration and Troubleshooting (ABCT) course1. I was delivering that course for close to a decade, and gradually built a decent story explaining the reasoning and use cases behind most of (then available) BGP features, from simple EBGP sessions to BGP route reflectors and communities2.

Now imagine having more than a dozen hands-on labs that go with the “BGP from rookie to hero” story available for any platform of your choice3. I plan to make that work (eventually) as an open-source project that you’ll be able to download and run free-of-charge.

The project will be based on netlab4 and use Cumulus Linux (or FRR if NVIDIA strays too far away from being useful) as external BGP routers. You’ll be able to use whatever networking devices you wish to work on5, and if they happen to be supported by netlab you’ll get lab topology and basic device configuration for each lab set up in seconds6. I will also provide device configurations for the external BGP routers for people who love wasting time with GUI.

I set up a GitHub repository and created the first labs. I also put together a long list of labs that would be nice to have. I might add newer BGP features and BGP security to the list, but it’s already long enough that it will take me months7 to create all the planned labs. I probably missed something important, or you might have better ideas how to structure them – leave a comment or (even better) become a contributor and submit a PR.

Revision History

The list of lab ideas has been heavily restructured based on your feedback (thank you!). I also added links to the first labs.

  1. If you happen to have the original ABCT course description please send it over. I tried to find it in Web Archive but it’s been way too long… ↩︎

  2. The echoes of those ideas are still visible (if you know where to look) in the Configuring BGP on Cisco Routers course – ABCT eventually morphed into CBCR and became part of the original CCIP curriculum in early 2000s, but that’s another story. ↩︎

  3. As long as it’s supported by netlab↩︎

  4. When you happen to have a Hammer of Thor handy everything looks like a nail waiting to be hit ;) ↩︎

  5. Including physical hardware if you happen to have a few extra Cumulus switches or are willing to do some crazy stuff to set things up. ↩︎

  6. Unless you love using resource hogs like Nexus OS, IOS XR, or some Junos variants. ↩︎

  7. At least… look at how quickly my How Networks Really Work project is progressing; it’s been over four years since I started it. ↩︎


  1. Really looking forward to this!

  2. Hi Ivan,

    I still have my ABCT course notes folder from around '97-98 when I took the course that at the time was presented by Kevin Swannell from MTS. Looking at the first page, I had handwritten the following:

    "ABCT is written by Ivan Pepelnjak ( - [email protected])"

    This is the course agenda from that first page:

    Day 1 - BGP basics - Simple BGP setup - Multihomed leaf AS

    Day 2 - Configuring transit AS - Managing large number of BGP neighbors

    Day 3 - Advanced BGP topics - Wrap-up

    The advanced BGP topics are further broken down as follows: - Local preference - MED - Communities

    There are also the following sections that are part of the course notes, but not listed in the contents above" - Advanced aggregation - Lab exercises - Lab solutions

    Let me know if you want any more detail - I have the whole course notes, so I can easily send you photos/scans of any of it.


    1. Wow. Now I'm REALLY impressed ;)

      Thanks a million for the rough agenda -- that's all I needed.

  3. Love this idea, cant wait till its finished! ^^

Add comment