NetPractice
ProjectM4
Fix ten network diagrams by hand: IP addressing, masks, routes and TCP/IP basics.
Requires
Unlocks
Guide
NetPractice is a milestone M4 networking project, done solo, with no code at all. You get a web interface with ten levels, each showing a small network of hosts, switches, routers and sometimes the internet, and you fill in IP addresses, subnet masks and routes until every requested connection works. At the end you export your configuration files and push them to your repository. It is the core's practical introduction to TCP/IP addressing, and the evaluation is a timed run of random levels in front of your evaluator.
What you will learn
- IPv4 addresses and masks in both notations (
255.255.255.192and/26) - Computing the network address, broadcast address and usable host range of a subnet
- Why two hosts on the same switch must share a subnet, and why two interfaces of a router must not
- Routing tables: destination, next hop, and the default route
0.0.0.0/0 - Private address ranges (
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16) and why the internet will not route them - Reading a network diagram and tracing a packet hop by hop
Before you start
- Previous nodes: Born2beroot is the natural predecessor (you configured an interface and a firewall there). The project itself needs only a browser.
- Download the training archive from the project page and open
index.htmllocally. Enter your login so the levels match the ones you will be evaluated on. - Be fluent in binary for numbers from 0 to 255; practise converting masks until it is automatic.
- Memorise the masks for
/24to/30and the block size each gives (256, 128, 64, 32, 16, 8, 4).
Plan of attack
- Day 1: learn the theory: what a mask does, how to AND an address with a mask, and the network and broadcast addresses that hosts cannot use.
- Day 1: do levels 1 to 3 (single subnets and a switch). For each, write down on paper why the answer works.
- Day 2: levels 4 to 6, where a router appears. Learn to give each router interface its own subnet and to add a route on each host.
- Day 3: levels 7 to 10, with several routers and the internet. Build routing tables for both directions; a reply needs a route back.
- Day 3: reset the training and solve all ten levels again with a timer. Repeat until each level takes you a few minutes.
- Day 4: export each level's configuration with the "Get my config" button and push the ten files to the repository root.
- Day 4: practise with someone else's login to get different random values; the evaluation generates fresh levels.
A quick way to check a subnet by hand:
address 192.168.10.77 = 11000000.10101000.00001010.01001101
mask /27 = 11111111.11111111.11111111.11100000
network 192.168.10.64
broadcast 192.168.10.95
hosts 192.168.10.65 to 192.168.10.94
Common pitfalls
- Using the network or broadcast address as a host address.
- Overlapping subnets on two interfaces of the same router.
- Forgetting the return route: the ping goes out and the reply has nowhere to go.
- Giving a private address to something that must be reachable from the internet.
- Relying on memory instead of understanding: evaluation levels have different numbers.
- Masks such as
/31or/32on host links where the interface needs room for two hosts and the network.
How it is evaluated
- Peer evaluation. The evaluator checks that the ten configuration files are in the repository.
- Then the evaluator opens the training interface in evaluation mode, which generates three random levels. You must solve them within a time limit (usually 15 minutes) without help.
- One failed level fails the evaluation.
- Expect questions on what a mask is, what a default route does, and why a given address cannot be used.