🚀 Service Provider Lab Series: Building the Backbone

Start your journey into Service Provider networking with a hands-on lab that builds the backbone using BGP, MPLS, and multi-vendor routers.

🚀 Service Provider Lab Series: Building the Backbone
Starting with a BGP lab using Cisco IOS and Juniper, and expanding into real-world SP architectures, MPLS, L3VPN, security filtering, and more.

🎯 Why This Lab?

I’m usually the type to jump head-first into building massive lab environments without a real plan. And then, surprise — I end up stuck in rabbit holes and never finish! 😅 Whether it’s environment issues, interoperability pain between Cisco and Juniper, or even differences with Cisco IOS and XR, or just me overthinking the whole approach, it’s easy to get derailed.

This time though, I’m taking it step-by-step. Start simple — get basic connectivity, verify it works — then move to the next layer.

And honestly? I rarely know what kind of lab I want to do until I’m already neck-deep in it. Ideas start flowing once I begin building and doing a bit of research. I lean toward Service Provider-focused labs since that’s my current role, and I try to incorporate real-world scenarios — questions I’ve been asked on the job, in interviews, or things I’ve just been curious about and wanted to understand better.


🧰 Lab Environment

As with most of my labs, I’ll be doing this in EVE-NG.


🔥 Quick Juniper vMX Tips

When spinning up Juniper vMX images, you might hit the dreaded Auto Image Upgrade: No DHCP loop. Don’t worry — they tell you how to fix it.

💡 To stop auto image upgrade, on the CLI run:

delete chassis auto-image-upgrade
commit

And while you’re at it, you’ll probably need to set the root password. I just use the simple plain-text option:

set system root-authentication plain-text-password

🙌 So – Follow Along and Let’s Begin

Follow along, and feel free to jump in with your own ideas or suggestions — comments are always welcome! Maybe even spin up a similar lab of your own, and let’s see if we can connect them across the real World Wide of Webs. 🌐😄

I’ll be posting each phase of this lab to my blog in Markdown format, so it’s easy to read, follow, and copy configs as needed.


⚠️ Quick Note

Forgive me if I post any incorrect configs. I try to share them exactly as I enter them on the routers, but as things evolve and configs change, it’s easy to miss something. If you catch any mistakes, please let me know so I can fix them!


BGP Network Lab Using EVE-NG

🧪 BGP: Cisco IOS ↔ Juniper vMX Interop

🧠 Lab Overview

  • Objective: Establish EBGP between Cisco IOS and Juniper vMX
  • Goal: Exchange loopback routes using BGP
  • Topology:
  Cisco IOS R1 ------- Juniper vMX R2
   (AS 65001)           (AS 65002)
    Gi0/0                ge-0/0/0
   10.1.12.1/30         10.1.12.2/30

🔢 IP Scheme & AS Numbers

Device Interface IP Address ASN
Cisco IOS R1 Gi0/0 10.1.12.1/30 65001
Juniper vMX R2 ge-0/0/0 10.1.12.2/30 65002
Cisco IOS R1 Lo0 1.1.1.1/32
Juniper vMX R2 lo0 2.2.2.2/32

📄 Configuration

Cisco IOS R1

hostname R1
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
!
interface GigabitEthernet0/0
 ip address 10.1.12.1 255.255.255.252
 no shutdown
!
router bgp 65001
 neighbor 10.1.12.2 remote-as 65002
 network 1.1.1.1 mask 255.255.255.255

Juniper vMX R2

set system host-name R2
set interfaces lo0 unit 0 family inet address 2.2.2.2/32
set interfaces ge-0/0/0 unit 0 family inet address 10.1.12.2/30

set routing-options autonomous-system 65002

set protocols bgp group ebgp-peers type external
set protocols bgp group ebgp-peers peer-as 65001
set protocols bgp group ebgp-peers neighbor 10.1.12.1
set protocols bgp group ebgp-peers export export-lo0

set policy-options policy-statement export-lo0 term 1 from route-filter 2.2.2.2/32 exact
set policy-options policy-statement export-lo0 term 1 then accept
set policy-options policy-statement export-lo0 then reject

🔍 Verification

On Cisco IOS

show ip bgp summary
show ip route bgp
ping 2.2.2.2

On Juniper vMX

show bgp summary
show route receive-protocol bgp 10.1.12.1


✅ Results

  • BGP sessions Established
  • Loopbacks 1.1.1.1 and 2.2.2.2 reachable
  • Routing tables should contain BGP-learned routes

🚧 Up Next

Next, we’ll build a BGP Route Reflector core, using Juniper to simplify the iBGP mesh and scale things up — while keeping Cisco on the edge. From there, we’ll start getting into MPLS and L3VPN territory. Stay tuned — it’s gonna get good. 😎

--Bryan Steele

🚀 Next up: Phase 2 – Scaling BGP with Route Reflectors