Networking, Hands On: How Your Devices Really Reach the Internet · Edorax
← Catalog Instructor · Dev Weekends
Networking, Hands On: How Your Devices Really Reach the Internet Find out how your laptop, phone and home router really reach the internet. Read the real numbers on your own machine, play with interactive pieces where addresses, ports and TTL change hop by hop, write the core address and routing logic in graded code exercises, and build a working home network inside one Linux machine (subnets, a router, NAT, DHCP and DNS) that you then break on purpose and fix. Part 2 shows how networks run by different companies reach each other with BGP, builds a WireGuard VPN, and teaches seven everyday network tools.
Difficulty Beginner
Duration ~59 hours
Price Free
Explore the syllabus
Course curriculum 12 modules · 318 lessons. Open a module to see its lesson list.
01 Your laptop is already on a network 29 lessons View lessons Hide lessons 01.01 Which address is yours?15 min 01.01 Which address is yours?15 min 01.01 Which address is yours?15 min 01.01 Which address is yours?15 min 01.02 Install the lab40 min 01.02 Install the lab40 min What you'll build
Build a small internet on one laptop from Linux network namespaces: two subnets, a home router with NAT and port forwarding, a guest network, DHCP and DNS, prove it with ping, curl, dig and tcpdump, then break it on purpose, fix it from evidence, and explain it in a five-minute demo.
01.02 Install the lab
40 min
01.03 Seven commands and your own numbers25 min
01.03 Seven commands and your own numbers25 min
01.03 Seven commands and your own numbers25 min
01.04 Two computers inside your laptop45 min
01.04 Two computers inside your laptop45 min
01.04 Two computers inside your laptop45 min
01.04 Two computers inside your laptop45 min
01.04 Two computers inside your laptop45 min
01.05 What one ping actually sent35 min
01.05 What one ping actually sent35 min
01.05 What one ping actually sent35 min
01.05 What one ping actually sent35 min
01.05 What one ping actually sent35 min
01.06 Why does one packet carry three kinds of address?30 min
01.06 Why does one packet carry three kinds of address?30 min
01.06 Why does one packet carry three kinds of address?30 min
01.06 Why does one packet carry three kinds of address?30 min
01.07 Your laptop on a network15 min
01.07 Your laptop on a network15 min
01.08 Your home network on one page25 min
01.08 Your home network on one page25 min
01.08 Your home network on one page25 min 02 IP addresses, and why we ran out 23 lessons View lessons Hide lessons 02.01 4.3 billion was supposed to be enough10 min 02.01 4.3 billion was supposed to be enough10 min 02.01 4.3 billion was supposed to be enough10 min 02.02 An address is one 32-bit number35 min 02.02 An address is one 32-bit number35 min 02.02 An address is one 32-bit number35 min 02.03 From classes to CIDR45 min 02.03 From classes to CIDR45 min 02.03 From classes to CIDR45 min 02.03 From classes to CIDR45 min 02.04 Private, shared and special addresses40 min 02.04 Private, shared and special addresses40 min 02.04 Private, shared and special addresses40 min 02.04 Private, shared and special addresses40 min 02.05 Code: addresses as numbers45 min 02.05 Code: addresses as numbers45 min 02.05 Code: addresses as numbers45 min 02.06 IP addresses15 min 02.06 IP addresses15 min 02.06 IP addresses15 min 02.07 Why your phone starts with 192.168 or 1020 min 02.07 Why your phone starts with 192.168 or 1020 min 02.07 Why your phone starts with 192.168 or 1020 min 03 Your local network: subnets and neighbours 36 lessons View lessons Hide lessons 03.01 Two masks, two networks10 min 03.01 Two masks, two networks10 min 03.01 Two masks, two networks10 min 03.02 Network part and host part40 min 03.02 Network part and host part40 min 03.02 Network part and host part40 min 03.03 Neighbours: MAC addresses and ARP35 min 03.03 Neighbours: MAC addresses and ARP35 min 03.03 Neighbours: MAC addresses and ARP35 min 03.04 Why split a network35 min 03.04 Why split a network35 min 03.04 Why split a network35 min 03.05 Cutting a block into subnets40 min 03.05 Cutting a block into subnets40 min 03.05 Cutting a block into subnets40 min 03.06 Overlaps: the bug you find later30 min 03.06 Overlaps: the bug you find later30 min 03.06 Overlaps: the bug you find later30 min 03.07 Code: subnet calculator, part 140 min 03.07 Code: subnet calculator, part 140 min 03.08 Code: subnet calculator, part 235 min 03.08 Code: subnet calculator, part 235 min 03.08 Code: subnet calculator, part 235 min 03.09 Same cable, wrong mask50 min 03.09 Same cable, wrong mask50 min 03.09 Same cable, wrong mask50 min 03.09 Same cable, wrong mask50 min 03.10 Lab: plan the school network40 min 03.10 Lab: plan the school network40 min 03.10 Lab: plan the school network40 min 03.11 Subnets and neighbours15 min 03.11 Subnets and neighbours15 min 03.12 Defend your plan15 min 03.12 Defend your plan15 min 03.12 Defend your plan15 min 03.12 Defend your plan15 min 04 Leaving your network: gateways and routes 33 lessons View lessons Hide lessons 04.01 A dozen hops to a website15 min 04.01 A dozen hops to a website15 min 04.02 The default gateway35 min 04.02 The default gateway35 min 04.02 The default gateway35 min 04.02 The default gateway35 min 04.03 Routing tables and longest prefix match40 min 04.03 Routing tables and longest prefix match40 min 04.03 Routing tables and longest prefix match40 min 04.04 TTL, ICMP and traceroute35 min 04.04 TTL, ICMP and traceroute35 min 04.04 TTL, ICMP and traceroute35 min 04.04 TTL, ICMP and traceroute35 min 04.05 Networks of networks15 min 04.05 Networks of networks15 min 04.05 Networks of networks15 min 04.06 Code: longest prefix match40 min 04.06 Code: longest prefix match40 min 04.07 Build a router75 min 04.07 Build a router75 min 04.07 Build a router75 min 04.07 Build a router75 min 04.07 Build a router75 min 04.08 Lab: fix the broken office40 min 04.08 Lab: fix the broken office40 min 04.08 Lab: fix the broken office40 min 04.08 Lab: fix the broken office40 min 04.09 Routing15 min 04.09 Routing15 min 04.10 Your traceroute, explained25 min 04.10 Your traceroute, explained25 min 04.10 Your traceroute, explained25 min 04.10 Your traceroute, explained25 min 05 Ports, TCP and UDP: which app gets the packet 29 lessons View lessons Hide lessons 05.01 One address, forty conversations10 min 05.01 One address, forty conversations10 min 05.01 One address, forty conversations10 min 05.02 Ports and sockets40 min 05.02 Ports and sockets40 min 05.02 Ports and sockets40 min 05.02 Ports and sockets40 min 05.03 Why your phone cannot open localhost30 min 05.03 Why your phone cannot open localhost30 min 05.03 Why your phone cannot open localhost30 min 05.03 Why your phone cannot open localhost30 min 05.04 TCP: a conversation that survives loss40 min 05.04 TCP: a conversation that survives loss40 min 05.04 TCP: a conversation that survives loss40 min 05.04 TCP: a conversation that survives loss40 min 05.05 UDP: why DNS, games and calls skip the handshake30 min 05.05 UDP: why DNS, games and calls skip the handshake30 min 05.05 UDP: why DNS, games and calls skip the handshake30 min 05.06 Watch a conversation happen60 min 05.06 Watch a conversation happen60 min 05.06 Watch a conversation happen60 min 05.06 Watch a conversation happen60 min 05.07 Ports and transport15 min 05.07 Ports and transport15 min 05.07 Ports and transport15 min 05.08 One line of your capture20 min 05.08 One line of your capture20 min 05.08 One line of your capture20 min 05.08 One line of your capture20 min 06 NAT: how every device at home reaches the internet 36 lessons View lessons Hide lessons 06.01 Fifteen devices, one public address10 min 06.01 Fifteen devices, one public address10 min 06.01 Fifteen devices, one public address10 min 06.02 The NAT table40 min 06.02 The NAT table40 min 06.02 The NAT table40 min 06.03 Why the internet cannot reach your laptop35 min 06.03 Why the internet cannot reach your laptop35 min 06.03 Why the internet cannot reach your laptop35 min 06.03 Why the internet cannot reach your laptop35 min 06.04 Carrier-grade NAT30 min 06.04 Carrier-grade NAT30 min 06.04 Carrier-grade NAT30 min 06.05 NAT timeouts, keepalives and video calls35 min 06.05 NAT timeouts, keepalives and video calls35 min 06.05 NAT timeouts, keepalives and video calls35 min 06.06 Code: a NAT table45 min 06.06 Code: a NAT table45 min 06.06 Code: a NAT table45 min 06.07 Build a home router, part 1: masquerade75 min 06.07 Build a home router, part 1: masquerade75 min 06.07 Build a home router, part 1: masquerade75 min 06.07 Build a home router, part 1: masquerade75 min 06.08 Build a home router, part 2: forwarding and a guest network50 min 06.08 Build a home router, part 2: forwarding and a guest network50 min 06.08 Build a home router, part 2: forwarding and a guest network50 min 06.08 Build a home router, part 2: forwarding and a guest network50 min 06.09 Lab: reach the home server from outside40 min 06.09 Lab: reach the home server from outside40 min 06.09 Lab: reach the home server from outside40 min 06.09 Lab: reach the home server from outside40 min 06.10 NAT15 min 06.10 NAT15 min 06.11 Answer the course question25 min 06.11 Answer the course question25 min 06.11 Answer the course question25 min 07 Joining a network and finding names: DHCP and DNS 25 lessons View lessons Hide lessons 07.01 Connected, no internet10 min 07.01 Connected, no internet10 min 07.01 Connected, no internet10 min 07.02 DHCP: how your phone got an address in a second35 min 07.02 DHCP: how your phone got an address in a second35 min 07.02 DHCP: how your phone got an address in a second35 min 07.02 DHCP: how your phone got an address in a second35 min 07.03 DNS: from a name to an address40 min 07.03 DNS: from a name to an address40 min 07.03 DNS: from a name to an address40 min 07.04 Caches, TTLs and DNS outages35 min 07.04 Caches, TTLs and DNS outages35 min 07.04 Caches, TTLs and DNS outages35 min 07.04 Caches, TTLs and DNS outages35 min 07.05 Lab: debug "no internet" layer by layer40 min 07.05 Lab: debug "no internet" layer by layer40 min 07.05 Lab: debug "no internet" layer by layer40 min 07.05 Lab: debug "no internet" layer by layer40 min 07.06 DHCP and DNS on your router70 min 07.06 DHCP and DNS on your router70 min 07.07 DHCP and DNS15 min 07.07 DHCP and DNS15 min 07.08 A "no internet" runbook25 min 07.08 A "no internet" runbook25 min 07.08 A "no internet" runbook25 min 08 Capstone: a whole internet on one laptop 27 lessons View lessons Hide lessons 08.01 What really happens when you open a link30 min 08.01 What really happens when you open a link30 min 08.01 What really happens when you open a link30 min 08.02 Capstone part 1: addresses and routes60 min 08.02 Capstone part 1: addresses and routes60 min 08.02 Capstone part 1: addresses and routes60 min 08.02 Capstone part 1: addresses and routes60 min 08.03 Capstone part 2: NAT, forwarding and isolation45 min 08.03 Capstone part 2: NAT, forwarding and isolation45 min 08.03 Capstone part 2: NAT, forwarding and isolation45 min 08.03 Capstone part 2: NAT, forwarding and isolation45 min 08.04 Capstone part 3: DHCP and DNS45 min 08.04 Capstone part 3: DHCP and DNS45 min 08.04 Capstone part 3: DHCP and DNS45 min 08.04 Capstone part 3: DHCP and DNS45 min 08.05 Capstone part 4: break it, fix it60 min 08.05 Capstone part 4: break it, fix it60 min 08.05 Capstone part 4: break it, fix it60 min 08.05 Capstone part 4: break it, fix it60 min 08.06 Final check20 min 08.06 Final check20 min 08.07 Demo and defence60 min 08.07 Demo and defence60 min 08.07 Demo and defence60 min 08.07 Demo and defence60 min 08.07 Demo and defence60 min 08.07 Demo and defence60 min 09 IPv6: enough addresses for everyone 15 lessons View lessons Hide lessons 09.01 The address you did not know you had10 min 09.01 The address you did not know you had10 min 09.02 Reading IPv6 addresses35 min 09.02 Reading IPv6 addresses35 min 09.02 Reading IPv6 addresses35 min 09.03 A network without NAT35 min 09.03 A network without NAT35 min 09.03 A network without NAT35 min 09.03 A network without NAT35 min 09.04 IPv615 min 09.04 IPv615 min 09.05 Why IPv4 is still here20 min 09.05 Why IPv4 is still here20 min 09.05 Why IPv4 is still here20 min 09.05 Why IPv4 is still here20 min 10 How networks reach each other: autonomous systems and BGP 25 lessons View lessons Hide lessons 10.01 Whose network is each hop?20 min 10.01 Whose network is each hop?20 min 10.02 What an autonomous system is30 min 10.02 What an autonomous system is30 min 10.02 What an autonomous system is30 min 10.03 BGP: how networks tell each other what they can reach35 min 10.03 BGP: how networks tell each other what they can reach35 min 10.04 Who carries whose traffic: customers, providers and peers35 min 10.04 Who carries whose traffic: customers, providers and peers35 min 10.05 Where networks meet: exchange points and undersea cables15 min 10.05 Where networks meet: exchange points and undersea cables15 min 10.06 Code: pick the best route40 min 10.06 Code: pick the best route40 min 10.07 Build: three networks that talk BGP60 min 10.07 Build: three networks that talk BGP60 min 10.08 Build: a backup link and your own preference50 min 10.08 Build: a backup link and your own preference50 min 10.09 When routes go wrong: hijacks, leaks, and an outage you met in module 730 min 10.09 When routes go wrong: hijacks, leaks, and an outage you met in module 730 min 10.10 Build: a wrong announcement and the filter that stops it40 min 10.10 Build: a wrong announcement and the filter that stops it40 min 10.11 Networks of networks15 min 10.11 Networks of networks15 min 10.12 Your path, network by network30 min 10.12 Your path, network by network30 min 11 VPNs: your own private network over the internet 18 lessons View lessons Hide lessons 11.01 Why the office server is out of reach15 min 11.01 Why the office server is out of reach15 min 11.02 A tunnel is a packet inside a packet30 min 11.02 A tunnel is a packet inside a packet30 min 11.03 WireGuard: keys and allowed addresses35 min 11.03 WireGuard: keys and allowed addresses35 min 11.04 Build: an office and a café, each behind NAT50 min 11.04 Build: an office and a café, each behind NAT50 min 11.05 Build: the tunnel60 min 11.05 Build: the tunnel60 min 11.06 Build: full tunnel and split tunnel45 min 11.06 Build: full tunnel and split tunnel45 min 11.07 What a VPN hides, and what it does not30 min 11.07 What a VPN hides, and what it does not30 min 11.08 VPNs15 min 11.08 VPNs15 min 11.09 Explain your tunnel20 min 11.09 Explain your tunnel20 min 12 Your network toolbox 22 lessons View lessons Hide lessons 12.01 The slow, broken network20 min 12.01 The slow, broken network20 min 12.01 The slow, broken network20 min 12.02 Wireshark: read any capture40 min 12.02 Wireshark: read any capture40 min 12.03 tcpdump: capture only what you need35 min 12.03 tcpdump: capture only what you need35 min 12.04 mtr: traceroute that keeps watching35 min 12.04 mtr: traceroute that keeps watching35 min 12.05 dig: ask DNS yourself35 min 12.05 dig: ask DNS yourself35 min 12.06 nmap: which doors are open35 min 12.06 nmap: which doors are open35 min 12.06 nmap: which doors are open35 min 12.07 iperf3: how fast is this path really35 min 12.07 iperf3: how fast is this path really35 min 12.08 curl: where the time goes30 min 12.08 curl: where the time goes30 min 12.09 Tools15 min 12.09 Tools15 min 12.10 Your toolbox40 min 12.10 Your toolbox40 min