# Guided Exercise: Categorize the Failure Before You Fix It This is a paper exercise — commit to a category before checking it in the Lab. ## Your task For each symptom, name which of the four failure categories (DNS / routing-connection / TCP-hangs / HTTP-application) it belongs to: 1. `curl: (6) Could not resolve host: api.internal` 2. `curl: (7) Failed to connect to api.internal port 443: Connection refused` 3. A request eventually returns, but with HTTP 502 Bad Gateway 4. A request just hangs for 30 seconds with no response, then finally times out ## A worked shape to check yourself against 1. DNS — the name never resolved. 2. Routing/connection — DNS worked, but nothing accepted the connection on that port. 3. HTTP/application — a full HTTP response came back (502 is a real, complete response), so DNS/routing/TCP all worked; the failure is in the application layer (often a proxy unable to reach ITS OWN backend, which is itself worth investigating further). 4. TCP-hangs / ambiguous-timeout — this is the least specific signature; it could mean unreachable, silently dropped by a firewall, or an application that accepted the connection but never responds — worth narrowing further with `ss`/`ip route` before concluding. ## Instructor Notes **Facilitation:** Item 3 (502) is a good one to slow down on — many students initially assume any 5xx code means "the network is broken," when it actually proves the OPPOSITE for every layer below the application. **Approximate timing:** 10-12 minutes live discussion; 8 minutes self-paced.