Fix the broken server
A lab network where a web service cannot be reached. Find each fault, layer by layer, and fix it.
Open the project: Fix the broken serverHow machines find and talk to each other, from IP addresses and ports to DNS, HTTP, TLS, routing and firewalls, and how to find out why they cannot.
Beginner · 18 topics · 3 projects · about 4 hours of reading
Step 6 of the DevOps engineer roadmap
Hosts, links, packets, switches and routers. Building a small network of your own to practise on.
IPv4 and IPv6 addresses, private and public ranges, network interfaces and the loopback, and an interface's MTU.
Network masks, CIDR notation, and working out which addresses are on the same network.
The layers a packet passes through, what each one adds, and which tools work at which layer.
How one machine runs many services, well-known ports, seeing what is listening, and testing a port with nc.
Connections, the three-way handshake, connection states, and what reliable delivery costs.
Sending without a connection, where that is the right choice, and what can go missing.
How a name becomes an address, /etc/hosts and resolvers, record types, caching and TTLs, and following a lookup with dig.
Requests and responses, methods, status codes, headers, redirects and JSON, and watching a request with curl.
Installing nginx, serving a site, server blocks, and reading its logs.
What TLS protects, certificates and the chain of trust, inspecting a site's certificate, and signing one with your own CA.
The routing table, the default gateway, and following a packet's path with traceroute.
How private addresses reach the internet, and forwarding a port from outside to a machine inside.
Packet filtering, rules and chains, default policies, and locking down a server without locking yourself out.
Capturing packets, filtering them, and reading what was actually sent.
Keys, the SSH config file, jump hosts, and forwarding ports through SSH.
Putting nginx in front of applications and spreading requests across several of them.
A layer-by-layer method for working out why a service cannot be reached.
Do these after the topics. Each one runs on your own computer.
A lab network where a web service cannot be reached. Find each fault, layer by layer, and fix it.
Open the project: Fix the broken serverTwo application servers behind an nginx load balancer with HTTPS from your own certificate authority and a name in the lab's DNS.
Open the project: Build a small web stackCapture a request from start to finish and explain every packet: the TCP handshake, TLS and HTTP.
Open the project: Diagnose traffic with tcpdump