This is the first technical post in the series, and before we dive into actual study material and protocol configurations, I want to walk you through the lab environment I’m using to study for the JNCIE-SP exam. The goal here is flexibility, I can work on labs from my desktop, laptop, or even my phone when I’m away from home! Everything runs locally on an old laptop, with remote access via VPN and a web browser.

Lab Hardware & Software Stack

Physical Setup:

  • Repurposed laptop (Intel i7-8850H @ 2.60GHz, 32GB RAM)
  • Running Xubuntu (lighter than Ubuntu/Gnome, those vMX routers are RAM hungry!)
  • Connected to home network with OpenVPN access for remote study sessions!

Virtualization Platform: I’m running GNS3 natively on Xubuntu. There are plenty of GNS3 installation guides already out there, so I won’t rehash that here (Though I might create one after the exam).

Note: I’ve experimented with Containerlab and liked it, definitely something I’ll explore more in the future. EVE-NG seems to be the popular choice these days, but I haven’t felt the need to switch. GNS3 works well for what I need, and I’m not a fan of paying for the EVE-NG pro features.

Router Images: Juniper has made lab images freely available (finally!). You used to need a customer account or have to find images in the darker corners of the internet. Now you can download them directly:

The Automation Layer

This is where things get fun and interesting for a study environment. I’m using the GNS3 “Network Automation toolbox” as my Ansible control node, combined with GitHub for version control.

GNS3 Network Automation Toolbox: Available here: https://www.gns3.com/marketplace/appliances/networkers-toolkit

This appliance comes with syslog and SNMP tools pre-installed, great for testing the initial “system config” part of the exam.

Getting Ansible running on it is straightforward:
1. Ensure the appliance has internet connectivity
2. Install required packages:

apt-get update
apt-get install ansible
apt-get install pip
apt-get install git
apt-get install sshpass
pip install ncclient
ansible-galaxy collection install junipernetworks.junos

GitHub Repository: All my configurations and Ansible playbooks live in a GitHub repository. This setup gives me a workflow that works from anywhere:

  1. Edit configs/playbooks on github.dev (browser-based editor)
  2. Pull changes to the toolbox server
  3. Run playbooks to deploy configs
  4. All from a browser – laptop or phone

This means I can tweak a router configurations on my couch or in a car, load and test it remotely, and then if needed have deep dive from a larger monitor at my desk.

Lab Topology

This lab uses a minimal 5 router topology that will build progressively throughout the series. From a high level view R1-R4 form a box, then R5 sits in the middle of the other four (it also acts as a BGP route reflector). I essentially wanted something that I’ll be able to do “Z” style MPLS label switched paths. Each chapter adds new protocols and features to the base configuration. All router configurations and the Ansible playbooks that I use are available in the GitHub repository (link below).

Starting from R1, the perimeter routers connect in a square:
– R1 ge-0/0/0 → R2 ge-0/0/1
– R2 ge-0/0/0 → R4 ge-0/0/1
– R4 ge-0/0/0 → R3 ge-0/0/1
– R3 ge-0/0/0 → R1 ge-0/0/1

R5 sits in the center (acting as BGP route reflector), connecting to all four:
– R5 ge-0/0/4 → R4 ge-0/0/3
– R5 ge-0/0/1 → R1 ge-0/0/3
– R5 ge-0/0/2 → R2 ge-0/0/3
– R5 ge-0/0/3 → R3 ge-0/0/3

How to Use This Lab Setup

Throughout this series, each post will have a corresponding folder in the GitHub repository. These folders contain:

  • Base configs: Minimum configuration needed to start that chapter
  • Ansible playbooks: For automated deployment (optional, but recommended)

You can follow along by:

  1. Cloning the repository
  2. Loading the base config for each chapter into your own lab
  3. Following the blog post to build out the features
  4. Or, if you want to skip ahead, load the full configs to see everything working

Why This Setup Works

Pros:

  • Completely portable study environment
  • Version controlled configs – never lose your work, sometimes the vMX images can be get corrupted and it sucks trying to restart from scratch manually!
  • Can study from anywhere with VPN access!
  • Ansible automation speeds up lab rebuilds and lets you mock up different ideas a lot faster
  • Free/low cost (repurposed laptop for the win!, free software)

Cons:

  • 32GB RAM is tight with 5 vMX routers (they’re memory hogs)
  • Initial setup takes time, but well worth it when it’s in place!

GitHub Repository

https://github.com/timjbaron/jncie-ansible

Each folder corresponds to a blog post / video in the series. Start with “Initial Config” for the base topology, then progress through each chapter as we build out IGP, BGP, MPLS, and beyond.


Next up: We’ll start with initial system configuration, the foundational settings every Junos device needs before we start building protocols.