Network engineering from zero to senior.
341 short steps from zero. Real Cisco, Juniper and Arista routers run in a lab on your laptop.
Thanks, there. You are on the list. We will email you when the first blocks open.
Change the address or the prefix. Network bits are orange, host bits are grey.
- Network
- 192.168.10.64
- Broadcast
- 192.168.10.127
- First host
- 192.168.10.65
- Last host
- 192.168.10.126
- Usable hosts
- 62
- Mask
- 255.255.255.192
The route, part by part
Each part leans on the one before it. Nothing jumps ahead: you meet a vendor CLI only after you understand packets, addresses and services.
-
1
Foundations free 0-21
Your lab bench, How data moves, IPv4 addressing, Transport and core services
-
2
Switching and routing
Network operating systems, Switching, Routing basics, OSPF, EIGRP and redistribution, IPv6, Multicast
-
3
Internet edge, WAN and service provider
BGP, WAN, VPN, SD-WAN and QoS, MPLS and segment routing
-
4
Data center
Data center fabrics, Servers, load balancers and the network
-
5
Security
Lab: Cisco IOL, Linux nftables, FreeRADIUS, Suricata, Batfish
-
6
Campus and wireless
Lab: design exercises, packet captures, calculators
-
7
Cloud networking
Lab: AWS free tier, Azure, Terraform, kind, Cilium
-
8
Automation and NetDevOps
Python for network engineers, Model-driven automation and NetDevOps
-
9
Operations and observability
Lab: SNMP, syslog, pmacct, gNMIc, Prometheus, Grafana
-
10
Senior engineer
Troubleshooting tickets, War room: real outages, Design and business, Capstone
What one step looks like
Every step takes 10 to 15 minutes and adds one idea. This is step 62, Trunks and 802.1Q tags.
Goal
One or two sentences: what you will have built by the end.
Recall
Two to four links back to the steps this one stands on.
What's new
The one new idea, every term explained the first time it appears.
Lab
Three to five tasks on the lab topology, each with the command and the output you should see.
Break it
You unplug the trunk or mistype a VLAN on purpose and watch what the failure looks like.
Check
./check.shlogs into the switches and confirms the result. Green means the step is done.
name: trunks-8021q
topology:
nodes:
sw1: { kind: cisco_iol, image: vrnetlab/cisco_iol:L2-17.12.01, type: L2 }
sw2: { kind: arista_ceos, image: ceos:4.33.1F }
pc10: { kind: linux, image: wbitt/network-multitool }
pc20: { kind: linux, image: wbitt/network-multitool }
links:
- endpoints: ["sw1:Ethernet0/1", "sw2:eth1"] # the trunk
- endpoints: ["sw1:Ethernet0/2", "pc10:eth1"] # VLAN 10
- endpoints: ["sw2:eth2", "pc20:eth1"] # VLAN 20
What runs on your laptop
containerlab starts real network operating systems as containers and wires them together. A typical lab fits in 16 GB of RAM.
Linux hosts and FRR
Blocks A to D, and most routing labs later
free, public images
Cisco IOL and IOL-L2
Switching, routing, security
free CML account
Arista cEOS
Switching and data center fabrics
free arista.com account
Juniper cJunos and vJunos
Junos syntax, BGP, MPLS
free download, vJunos Labs
Nokia SR Linux
EVPN and gNMI telemetry
free, public image
Fortinet FortiGate
Firewall policies, NAT and VPN
free trial VM, FortiCare account
Batfish, NetBox, Grafana
Automation and monitoring blocks
free, open source
AWS and Azure
Cloud block, built with Terraform
free tier, destroyed after each step
The course never ships vendor images: their licenses forbid it. The first step of block E walks you through getting each one yourself.
The full syllabus
341 steps in 26 blocks. Steps 0 to 21 are free. Each block ends with a case that puts the whole block to work, and the senior part replays real outages from their published reports.
No step matches. Try a protocol name, such as OSPF.
1 Foundations
A Your lab bench free 000-009 10 steps
Lab: Linux containers only
- 000 What a network engineer does all day
- 001 The terminal: 12 commands you need first
- 002 Files, editors and permissions in Linux
- 003 Install Docker and run your first container
- 004 Install containerlab
- 005 First lab: two hosts and one cable
- 006 Read a topology file line by line
- 007 Deploy, inspect, destroy, redeploy
- 008 Git for your lab files
- 009 How every step here is checked
B How data moves free 010-021 12 steps
Lab: Linux hosts, tcpdump, Wireshark
- 010 Bits, frames, packets, segments
- 011 The TCP/IP model and the OSI model
- 012 Encapsulation: one ping, four headers
- 013 Capture your first packet with tcpdump
- 014 Open a capture in Wireshark
- 015 Ethernet frames and MAC addresses
- 016 ARP: from IP address to MAC address
- 017 Cables, fiber and transceivers
- 018 Speed, duplex and autonegotiation
- 019 MTU and what happens to a big packet
- 020 Bandwidth, latency and jitter, measured
- 021 Case: the ping that worked and the page that did not
C IPv4 addressing 022-033 12 steps
Lab: Linux hosts
- 022 Binary in 10 minutes
- 023 Anatomy of an IPv4 address
- 024 Prefix length and subnet mask
- 025 Network, broadcast and usable hosts
- 026 Subnetting a /24 by hand
- 027 Subnetting drills: 20 fast rounds
- 028 Private ranges and special addresses
- 029 The default gateway
- 030 Addresses and routes on a Linux host
- 031 VLSM: subnets of different sizes
- 032 Route summarization
- 033 Case: an address plan for a 60-person office
D Transport and core services 034-048 15 steps
Lab: Linux hosts, dnsmasq, Kea, nftables
- 034 Ports and sockets
- 035 UDP: send and forget
- 036 TCP: the three-way handshake
- 037 TCP windows, retransmits and resets
- 038 ICMP, ping and traceroute
- 039 DNS: how a name becomes an address
- 040 DNS records you will touch every week
- 041 Run your own DNS server
- 042 DHCP: the four messages
- 043 Run a DHCP server and a relay
- 044 NTP: why clocks matter to networks
- 045 NAT and PAT
- 046 NAT on Linux with nftables
- 047 HTTP and TLS on the wire
- 048 Case: a home network, end to end
2 Switching and routing
E Network operating systems 049-058 10 steps
Lab: Cisco IOL, Arista cEOS, Juniper cJunosEvolved, FRR
- 049 Get the vendor images legally
- 050 Cisco IOS: CLI modes
- 051 Cisco IOS: show commands that answer questions
- 052 Cisco IOS: change, verify, save
- 053 Arista EOS: the same tasks
- 054 Junos: set, commit, rollback
- 055 FRR: a router inside Linux
- 056 One task in four syntaxes
- 057 Management access: SSH, users, banners
- 058 Backups and config diffs
F Switching 059-077 19 steps
Lab: Cisco IOL-L2, Arista cEOS
- 059 How a switch learns MAC addresses
- 060 VLANs: one switch, several networks
- 061 Access ports
- 062 Trunks and 802.1Q tags
- 063 The native VLAN and its traps
- 064 Routing between VLANs on a router
- 065 Routing between VLANs on a layer 3 switch
- 066 Why loops kill networks
- 067 STP: root bridge election
- 068 Rapid STP and port roles
- 069 MSTP: one tree per group of VLANs
- 070 PortFast and BPDU Guard
- 071 Link aggregation with LACP
- 072 LLDP and CDP: who is my neighbor
- 073 Port security
- 074 Private VLANs
- 075 DHCP snooping and Dynamic ARP Inspection
- 076 Switch stacks and chassis redundancy
- 077 Case: find the loop in a broken office
G Routing basics 078-088 11 steps
Lab: Cisco IOL, FRR, Juniper
- 078 Read a routing table
- 079 Connected routes
- 080 Static routes
- 081 The default route
- 082 Longest prefix match
- 083 Administrative distance and metrics
- 084 Floating static routes for backup
- 085 ECMP: several equal paths
- 086 First-hop redundancy: VRRP and HSRP
- 087 Policy-based routing
- 088 Troubleshoot a route that is missing
H OSPF 089-101 13 steps
Lab: FRR, Cisco IOL, Arista cEOS, Juniper
- 089 Why dynamic routing
- 090 Link-state routing in one picture
- 091 First OSPF neighbors
- 092 Neighbor states and why they get stuck
- 093 DR and BDR on shared segments
- 094 Cost and path choice
- 095 Passive interfaces and the default route
- 096 Multi-area OSPF
- 097 LSA types you actually meet
- 098 Summarization and stub areas
- 099 OSPF authentication
- 100 One OSPF domain across three vendors
- 101 Case: OSPF that flaps every 40 seconds
I EIGRP and redistribution 102-110 9 steps
Lab: Cisco IOL, FRR, Arista cEOS
- 102 EIGRP: neighbors and the topology table
- 103 EIGRP metrics and feasible successors
- 104 EIGRP summarization and stub routers
- 105 Why one network runs several routing protocols
- 106 Redistribute static and connected routes
- 107 Redistribution between OSPF and BGP
- 108 Route tags: stop redistribution loops
- 109 Filter routes at the redistribution point
- 110 Case: two merged companies, one routing domain
J IPv6 111-121 11 steps
Lab: FRR, Cisco IOL, Linux
- 111 Why IPv6 and why now
- 112 Writing and shortening IPv6 addresses
- 113 Link-local, global and unique local
- 114 Neighbor Discovery replaces ARP
- 115 SLAAC and DHCPv6
- 116 Static IPv6 routing
- 117 OSPFv3
- 118 Dual stack on one network
- 119 IPv6 first-hop security: RA Guard
- 120 NAT64 and DNS64
- 121 Case: an IPv6 address plan for a company
K Multicast 122-128 7 steps
Lab: FRR, Cisco IOL, Linux senders and receivers
- 122 Multicast: one sender, many receivers
- 123 Multicast addresses and MAC mapping
- 124 IGMP and IGMP snooping
- 125 PIM sparse mode and the rendezvous point
- 126 Source-specific multicast
- 127 Troubleshoot a stream that does not arrive
- 128 Case: a market data feed for a trading floor
3 Internet edge, WAN and service provider
L BGP 129-148 20 steps
Lab: FRR, Arista cEOS, Juniper, Routinator
- 129 Autonomous systems and why BGP exists
- 130 First eBGP session
- 131 Advertise your prefixes
- 132 iBGP and next-hop-self
- 133 Path attributes
- 134 Best path selection, in order
- 135 Local preference: choose your exit
- 136 AS-path prepending: influence the way in
- 137 MED
- 138 Communities
- 139 Prefix lists, route maps and Junos policies
- 140 Multihoming to two providers
- 141 Filter what you accept: bogons and max-prefix
- 142 RPKI and route origin validation
- 143 Route reflectors
- 144 BFD: detect failure in milliseconds
- 145 Graceful restart and nonstop forwarding
- 146 Troubleshoot a BGP session that will not come up
- 147 War room: Pakistan Telecom hijacks YouTube (2008) war room
- 148 War room: Facebook withdraws itself (2021) war room
M WAN, VPN, SD-WAN and QoS 149-163 15 steps
Lab: FRR, strongSwan, WireGuard, Linux tc, Juniper
- 149 WAN options: MPLS, internet, LTE
- 150 GRE tunnels
- 151 IPsec and IKEv2 concepts
- 152 Certificates and PKI for network engineers
- 153 Site-to-site IPsec
- 154 Route-based VPN with BGP over IPsec
- 155 WireGuard
- 156 Remote access VPN for employees
- 157 Hub-and-spoke and DMVPN
- 158 SD-WAN: controllers, overlay, policies
- 159 Build a mini SD-WAN: probe paths, steer apps
- 160 SASE and SSE
- 161 QoS: classify and mark with DSCP
- 162 QoS: queues, policing, shaping
- 163 Case: voice breaks every afternoon
N MPLS and segment routing 164-174 11 steps
Lab: FRR, Juniper vJunos-router, Nokia SR Linux
- 164 IS-IS basics
- 165 Label switching
- 166 LDP
- 167 VRF-lite: several routing tables on one box
- 168 MPLS L3VPN with MP-BGP
- 169 L2VPN and EVPN for providers
- 170 Segment routing with MPLS
- 171 TI-LFA fast reroute
- 172 SRv6 in one lab
- 173 Traffic engineering
- 174 Case: a small provider for three customers
4 Data center
O Data center fabrics 175-194 20 steps
Lab: Arista cEOS, Nokia SR Linux, Juniper, FRR
- 175 Three-tier and spine-leaf designs
- 176 Clos math and oversubscription
- 177 MLAG
- 178 eBGP underlay
- 179 BGP unnumbered
- 180 VXLAN: layer 2 over layer 3
- 181 EVPN: the control plane for VXLAN
- 182 Layer 2 VNI
- 183 Layer 3 VNI and symmetric IRB
- 184 Anycast gateway
- 185 EVPN multihoming with ESI
- 186 Tenants and VRFs in the fabric
- 187 Border leaf: the fabric meets the WAN
- 188 Interconnect two data centers
- 189 Lossless Ethernet for storage and AI traffic
- 190 PFC and ECN
- 191 RoCEv2 on a GPU fabric
- 192 Rail-optimized design for AI clusters
- 193 Troubleshoot EVPN route by route
- 194 Case: build a 2-spine, 4-leaf fabric on two vendors
P Servers, load balancers and the network 195-202 8 steps
Lab: Linux, HAProxy, FRR
- 195 Linux bridges, VLAN interfaces and bonds
- 196 Network namespaces and veth pairs
- 197 Layer 4 and layer 7 load balancing
- 198 HAProxy with health checks
- 199 Anycast services with BGP
- 200 ECMP to servers and hashing
- 201 Global server load balancing with DNS
- 202 Case: zero-downtime web tier
5 Security
Q Network security 203-221 19 steps
Lab: Cisco IOL, Linux nftables, FreeRADIUS, Suricata, Batfish
- 203 A threat model for a network
- 204 Standard and extended ACLs
- 205 Stateful firewalls
- 206 Zones and zone-based policy
- 207 What a next-generation firewall adds
- 208 FortiGate: first policy and NAT
- 209 FortiGate: VPN and security profiles
- 210 Review and clean up a firewall rule base
- 211 Segmentation and microsegmentation
- 212 802.1X and RADIUS
- 213 802.1X with certificates: EAP-TLS
- 214 TACACS+ for device logins
- 215 Protect the control plane: CoPP
- 216 uRPF and anti-spoofing
- 217 DDoS basics: RTBH and Flowspec
- 218 Intrusion detection with Suricata
- 219 Zero trust and ZTNA
- 220 Audit configs with Batfish
- 221 Case: harden a branch office
6 Campus and wireless
R Campus, wireless and the physical world 222-233 12 steps
Lab: design exercises, packet captures, calculators
- 222 Structured cabling and the wiring closet
- 223 PoE and the power budget
- 224 Campus design: access, distribution, core
- 225 Radio basics for Wi-Fi
- 226 802.11 standards from Wi-Fi 4 to Wi-Fi 7
- 227 Channels, interference and channel plans
- 228 Controllers and cloud-managed Wi-Fi
- 229 WPA3 and enterprise Wi-Fi with 802.1X
- 230 Roaming
- 231 Site surveys and heatmaps
- 232 Troubleshoot slow Wi-Fi from a capture
- 233 Case: Wi-Fi for a 3-floor office
7 Cloud networking
S Cloud networking 234-251 18 steps
Lab: AWS free tier, Azure, Terraform, kind, Cilium
- 234 How cloud networks differ from yours
- 235 AWS VPC, subnets and route tables
- 236 Internet and NAT gateways
- 237 Security groups and network ACLs
- 238 VPC peering
- 239 Transit Gateway
- 240 Site-to-site VPN from your lab to AWS with BGP
- 241 Direct Connect and private links
- 242 PrivateLink and endpoints
- 243 Hybrid DNS with Route 53 Resolver
- 244 Azure VNet and Virtual WAN
- 245 Google Cloud VPC
- 246 What egress costs and how to cut it
- 247 The whole network in Terraform
- 248 Kubernetes networking: pods, services, CNI
- 249 Cilium and eBPF
- 250 Ingress and gateway API
- 251 Case: connect an office, a data center and two clouds
8 Automation and NetDevOps
T Python for network engineers 252-263 12 steps
Lab: Python 3, Netmiko, NAPALM, Nornir, Jinja2
- 252 Python setup and your first script
- 253 Variables, lists and dictionaries
- 254 Loops and conditions over devices
- 255 Functions and modules
- 256 Files, JSON and YAML
- 257 The ipaddress module
- 258 SSH to a device with Netmiko
- 259 Parse show output with TextFSM
- 260 Templates with Jinja2
- 261 NAPALM: one API, many vendors
- 262 Nornir: run tasks on 50 devices at once
- 263 Case: a backup and diff tool for the whole lab
U Model-driven automation and NetDevOps 264-281 18 steps
Lab: NETCONF, RESTCONF, gNMI, Ansible, NetBox, GitHub Actions
- 264 YANG models
- 265 NETCONF with ncclient
- 266 RESTCONF
- 267 gNMI and OpenConfig
- 268 Ansible for network devices
- 269 Ansible roles and inventories
- 270 NetBox as the source of truth
- 271 Generate configs from NetBox
- 272 Standards and golden configs
- 273 Network changes through Git and pull requests
- 274 CI for configs: lint, Batfish, lab test
- 275 Pre- and post-change tests with pyATS
- 276 Detect config drift
- 277 Terraform for network devices
- 278 Controller APIs: Meraki and Catalyst Center
- 279 Event-driven automation
- 280 AI assistants in network operations, with guardrails
- 281 Case: a full CI/CD pipeline for the fabric
9 Operations and observability
V Monitoring and operations 282-299 18 steps
Lab: SNMP, syslog, pmacct, gNMIc, Prometheus, Grafana
- 282 SNMP v2c and v3
- 283 Syslog that you can search
- 284 NetFlow, IPFIX and sFlow
- 285 Streaming telemetry into Prometheus
- 286 Grafana dashboards for a network
- 287 Alerts that wake you for real problems
- 288 Synthetic monitoring
- 289 A troubleshooting method that works
- 290 MTU black holes and path MTU discovery
- 291 Slow transfers: TCP on long links
- 292 Bufferbloat
- 293 Changes, maintenance windows and rollback plans
- 294 Upgrade a router without downtime
- 295 Run a major incident as incident commander
- 296 Capacity planning
- 297 Network documentation and diagrams
- 298 SLOs for a network
- 299 Case: an on-call night, three incidents
10 Senior engineer
W Troubleshooting tickets 300-312 13 steps
Lab: broken labs, one fault each, no hint which block it belongs to
- 300 How to work a ticket: scope, evidence, fix, note
- 301 Ticket: a new VLAN cannot reach the internet
- 302 Ticket: one branch is slow only on video calls
- 303 Ticket: OSPF neighbors are up, routes are missing
- 304 Ticket: a BGP session flaps every 3 minutes
- 305 Ticket: the VPN is up, no traffic passes
- 306 Ticket: DHCP works on one floor only
- 307 Ticket: an EVPN host answers from one leaf only
- 308 Ticket: file transfers stall halfway
- 309 Ticket: a duplicate IP after a change
- 310 Ticket: the cloud cannot resolve office names
- 311 Ticket: monitoring is green, users say it is broken
- 312 Shift: 10 mixed tickets against the clock
X War room: real outages 313-319 7 steps
Lab: outages reproduced in containerlab
- 313 How to read a post-incident report
- 314 War room: AS7007 leaks the internet (1997) war room
- 315 War room: a route leak through a small ISP (2019) war room
- 316 War room: a backbone config change takes a CDN down (2020) war room
- 317 War room: a national carrier goes dark (Rogers, 2022) war room
- 318 War room: a cloud region's internal network congests (2021) war room
- 319 Write your own post-incident report
Y Design and business 320-331 12 steps
Lab: design documents, cost models
- 320 Inherit an undocumented network: discovery
- 321 Clean up a brownfield network without outages
- 322 Gather requirements from people who are not engineers
- 323 Write a network design document
- 324 Choose a vendor with a decision matrix
- 325 Total cost of ownership
- 326 Find what to automate and count the hours saved
- 327 Propose an optimization to management
- 328 Plan a migration with no downtime
- 329 Lead a change review
- 330 The network design interview
- 331 The troubleshooting interview
Z Capstone 332-340 9 steps
Lab: everything above, in one lab
- 332 Capstone brief: a company with HQ, 3 branches, a DC and AWS
- 333 Capstone: addressing, sites and the WAN
- 334 Capstone: data center fabric
- 335 Capstone: internet edge and cloud
- 336 Capstone: security
- 337 Capstone: automation and CI
- 338 Capstone: monitoring and runbooks
- 339 Capstone: break it and fix it
- 340 Capstone: the design review
How it maps to certifications
The course teaches the job and does not drill exam questions. These blocks cover the objectives of each exam.
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CCNA (200-301) | How data moves | IPv4 addressing | Transport and core services | Network operating systems | Switching | Routing basics | OSPF | IPv6 | Network security | Campus, wireless and the physical world | Python for network engineers | |||||||||||||||
| CCNP ENCOR (350-401) | Switching | Routing basics | OSPF | EIGRP and redistribution | IPv6 | Multicast | BGP | WAN, VPN, SD-WAN and QoS | Network security | Campus, wireless and the physical world | Model-driven automation and NetDevOps | Monitoring and operations | ||||||||||||||
| JNCIA-Junos (JN0-105) | IPv4 addressing | Network operating systems | Routing basics | OSPF | BGP | |||||||||||||||||||||
| AWS Advanced Networking Specialty | BGP | WAN, VPN, SD-WAN and QoS | Cloud networking |
Questions
I have never worked in IT. Can I start?
Yes. Block A starts with the terminal and Docker. You meet the first router in block E, after 49 steps on packets, addresses and services.
What computer do I need?
16 GB of RAM and an x86 machine: Linux, or Windows with WSL2. Most vendor images do not run on Apple Silicon Macs, so block A shows how to rent a cloud VM by the hour instead.
Do I have to buy Cisco or Juniper licenses?
No. Cisco IOL comes with a free CML account, Arista cEOS with a free arista.com account, and Juniper offers vJunos for free download. Linux, FRR and SR Linux are open.
How long does the course take?
Each step takes 10 to 15 minutes, so the whole course takes 57 to 85 hours. At 3 steps a day that is about 4 months.
Will it get me through CCNA?
It covers the CCNA topics shown in the map above, through labs. It has no practice exams, so add a question bank in the last 2 weeks before a test.
How do you teach Wi-Fi without radios?
Wi-Fi cannot be emulated in containerlab. The Wi-Fi block uses real packet captures, channel plans and a design task for a 3-floor office.
Get the first blocks when they open
Leave your email. You will hear from us once, when steps 0 to 21 are ready.
Thanks, there. You are on the list. We will email you when the first blocks open.