whatisgithub

What is network-fundamentals-lab?

gnu-gnu/network-fundamentals-lab — explained in plain English

Analysis updated 2026-05-18

54HTMLAudience · developerComplexity · 4/5Setup · moderate

In one sentence

A hands-on lab series that teaches TCP/IP fundamentals by deliberately breaking network setups with containerlab, then having you observe, diagnose, and fix each failure yourself.

Mindmap

mindmap
  root((network-fundamentals-lab))
    What it does
      Break-observe-fix labs
      TCP/IP fundamentals
      Guided walkthroughs
    Tech stack
      containerlab
      Docker
      FRR
      netshoot
    Use cases
      Learn ARP and L2 basics
      Practice NAT and routing
      Onboard new network engineers
    Audience
      Network engineers
      Students
      New hires

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Work through a lesson to see how ARP and Layer 2 addressing actually behave when a network breaks.

USE CASE 2

Use the curriculum's core track to onboard new engineers into networking fundamentals.

USE CASE 3

Practice diagnosing NAT and conntrack failures using tcpdump and traceroute in a safe sandbox.

USE CASE 4

Run the labs on an EC2 instance to give a group of trainees their own isolated environment.

What is it built with?

containerlabDockerFRRnetshootShell

How does it compare?

gnu-gnu/network-fundamentals-lab21lochan/3dmark-pro-benchmark-core42web-kenya/arcgis-pro-resource-kit
Stars545454
LanguageHTMLHTMLHTML
Setup difficultymoderatehardhard
Complexity4/53/53/5
Audiencedevelopergeneralgeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Needs containerlab and Docker, macOS requires the clab.sh wrapper since containerlab can't manage host networking directly there.

So what is it?

This project is a hands-on series of network troubleshooting labs meant to teach the core ideas behind TCP/IP by breaking things on purpose, watching what fails, and then fixing it. Rather than covering cloud-specific features, it focuses on fundamentals that apply anywhere, things like AWS or Kubernetes only show up as real-world examples of the same underlying concepts. Each lesson follows the same structure: it explains one concept, sets up a minimal network topology, starts in a broken state, has you observe the failure using tools like tcpdump, traceroute, and ip, explains why it broke, shows a one-line fix, and closes with a general lesson you can carry to other situations. Every lesson lives in its own folder containing the topology file, a README with the steps, a fix script, and a WALKTHROUGH.md file that records a full worked example. The recommended approach is to try the README on your own first, then compare your work against the walkthrough afterward, since jumping straight to the answer skips the diagnostic practice. There is also a browser-based viewer for reading through every walkthrough page by page with copyable commands. The labs run on containerlab, using the netshoot container image for common networking tools, with FRR added for the lessons on dynamic routing. On Linux with containerlab installed, you deploy a lesson directly. On macOS, where containerlab cannot manage networking the same way, a wrapper script called clab.sh runs containerlab inside a container on top of Docker Desktop instead. The project also documents running the labs on an EC2 instance for onboarding multiple new engineers at once, each on their own instance to avoid network conflicts. The curriculum builds up in layers, starting with basics like IP and subnet notation, then moving through Layer 2 topics like ARP and broadcast domains, VLANs, Layer 3 routing and longest prefix match, TTL and routing loops, VXLAN overlays, TCP handshake failure types, connection tracking and NAT, MTU and fragmentation, DNS, ICMP blocking, NAT hairpinning, and dynamic routing protocols like OSPF and BGP. A core track of about ten lessons is meant as required onboarding, with the rest marked as deeper, optional material. Two self-diagnostic checkpoints test whether you can identify a cause from symptoms alone, without the README to guide you.

Copy-paste prompts

Prompt 1
Help me set up containerlab and clab.sh so I can run the network-fundamentals-lab labs on macOS.
Prompt 2
Walk me through lesson 01 on L2 adjacency and ARP without showing me the WALKTHROUGH answer yet.
Prompt 3
Explain why a single /32 route can silently break connectivity, based on the LPM and blackhole lesson.
Prompt 4
Show me how to deploy this lab series on an EC2 instance for a group of new hires.

Frequently asked questions

What is network-fundamentals-lab?

A hands-on lab series that teaches TCP/IP fundamentals by deliberately breaking network setups with containerlab, then having you observe, diagnose, and fix each failure yourself.

What language is network-fundamentals-lab written in?

Mainly HTML. The stack also includes containerlab, Docker, FRR.

How hard is network-fundamentals-lab to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is network-fundamentals-lab for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.