You have the toolkit (06-01) and the microscope (06-02). But tools alone don't resolve incidents: without a method you fall into "diagnosis by hunch" — rebooting things at random, changing three parameters at once, fixing the symptom without understanding the cause (which will come back). This lesson turns everything you know into a systematic method: the three layered approaches and when to use each, a 7-step procedure that works the same for a lost ping as for a full outage, a decision tree with the exact command for every check, and — most valuable of all — three real Grupo Meridiano incidents solved start to finish, with the output of every command, so you can watch the method breathe. It is the lesson that closes module 6 and, with it, the theoretical part of the course.
Contents
- Why a method is needed
- The three layered approaches: bottom-up, top-down, divide and conquer
- The systematic method in 7 steps
- The decision tree: "the network isn't working"
- Case A: "Ana has no network"
- Case B: "Bilbao can't reach the intranet, but browses fine"
- Case C: "the intranet is slow... only sometimes"
- Documenting: the step nobody does and everybody is grateful for
Why a method is needed
A network incident is a huge search space: dozens of components (cable, switch, VLAN, IP, DHCP, routes, VPN, DNS, firewall, service, application) and the fault can be in any of them. Trying things at random has exponential cost; a layered method reduces it to an ordered walk where each check rules out an entire block of causes. On top of that, the method provides two things intuition doesn't:
- Reproducibility: two technicians with the same method reach the same conclusion and can hand the incident over mid-way.
- Evidence: every step leaves a command output that proves what was ruled out — indispensable for escalating (to the ISP, to the VPN provider) without the problem bouncing back to you.
The good news: you almost have the method already. The OSI and TCP/IP models you studied were not decorative theory, they were the map for diagnosis; module 4's "funnel" and module 3's "layer 1 first" were its first sketches.
The three layered approaches: bottom-up, top-down, divide and conquer
Given the map of layers, there are three ways to walk it:
| Approach | Path | When it pays off | Meridiano example |
|---|---|---|---|
| Bottom-up (bottom → top) | Cable → link → IP → transport → application | Total symptoms ("I have nothing"), recent physical changes, a single machine affected | Ana with no network after her desk was moved: cable first |
| Top-down (top → bottom) | Application → transport → IP → ... | The user can do something (the basic network works); failures of one specific application | "The browser shows a certificate error": start at TLS, not at the cable |
| Divide and conquer | Start at a middle layer (typically 3: ping) and decide which way to go |
Almost always the most efficient when the symptom is ambiguous | "The intranet?" → ping 192.168.10.10: if it responds, go up (DNS, TCP, app); if not, go down (ARP, cable) |
The third is the professionals' favorite because a single successful ping validates layers 1, 2 and 3 at a stroke up to that destination: half the map ruled out with one command. That is why the decision tree below pivots on it. And "layer 1 first" (module 3) still stands as the golden exception: if there is any physical clue (an unlit LED, "Media disconnected", building work, desk moves), start bottom-up even if the symptom looks application-level — checking a cable costs 10 seconds.
The systematic method in 7 steps
The approaches say where to look; the 7 steps say how to work the incident end to end:
- Define the problem and its scope. "The network is down" is not a defined problem. Ask until you get: what exactly fails, since when, what changed and — the most profitable question in all of diagnosis — who is affected?: one user or everyone? one site or both? one service or all of them? Each answer trims the map: if only Ana fails, the cause is at her desk or her segment; if all of Valencia fails but Bilbao browses, look at the electronics or Valencia's uplink; if both sites fail against the intranet but browse fine, look at the .10.10 server.
- Reproduce the failure. Seeing it with your own eyes (or with a command) saves you from chasing inaccurate descriptions. If it is intermittent, leave monitoring in place (
ping -t, a capture) until you catch it. - Form a hypothesis. With the scope and the reproduction, pick the most likely cause and the approach (bottom-up/top-down/divide). A hypothesis is stated so it can be falsified: "DHCP is not serving addresses", not "something with DHCP".
- Test the hypothesis with the tool that confirms or refutes it — changing only one thing at a time. If you refute it, go back to step 3 with what you learned (what got ruled out is information too).
- Apply the fix. With a rollback plan if at all possible (write down the previous value before changing it).
- Verify that the original problem is gone and that you haven't broken anything else. Verify with the user and with the command that used to fail.
- Document. Symptom, root cause, fix, evidence. We develop this at the end — it is the step that turns a painful incident into reusable knowledge.
flowchart LR
P1[1. Define and scope] --> P2[2. Reproduce] --> P3[3. Hypothesis] --> P4[4. Test]
P4 -- refuted --> P3
P4 -- confirmed --> P5[5. Apply] --> P6[6. Verify]
P6 -- still failing --> P3
P6 -- resolved --> P7[7. Document]
The decision tree: "the network isn't working"
For the generic report from a workstation, this is the ordered checklist — from layer 1 upward — with the exact command at each node. Memorize it: it is the whole of module 6 in one diagram.
flowchart TD
A["Report: 'the network isn't working'"] --> B{"Physical link?<br/>ipconfig: 'Media disconnected'?<br/>ip link: LOWER_UP? Port LED?"}
B -- no link --> B1["Layer 1: cable, wall jack,<br/>switch port, Wi-Fi associated"]
B -- link present --> C{"Valid IP?<br/>ipconfig /all | ip addr<br/>169.254.x.x (APIPA)?"}
C -- APIPA or no IP --> C1["DHCP not reaching: service on .10.1,<br/>port's VLAN, ipconfig /renew"]
C -- correct IP --> D{"Gateway responding?<br/>ping 192.168.10.1<br/>(+ arp -a if it fails)"}
D -- no response --> D1["Local layer 2/3: wrong gateway,<br/>mask, VLAN, router down"]
D -- responds --> E{"DNS resolving?<br/>nslookup grupomeridiano.example<br/>(and cross-check: nslookup x 8.8.8.8)"}
E -- not resolving --> E1["DNS: configured server,<br/>cache (flushdns), DNS service"]
E -- resolves --> F{"Service port open?<br/>curl -v https://... <br/>refused / timeout / connects?"}
F -- refused/timeout --> F1["Service or firewall:<br/>ss -tlnp on the server"]
F -- connects --> G["Application layer:<br/>HTTP 4xx/5xx, logs, certificate"]
| Tree step | Command (Windows / Linux) | What it rules out if healthy |
|---|---|---|
| Physical link | ipconfig / ip link (+ LED) |
All of layer 1 |
| Valid IP (APIPA?) | ipconfig /all / ip addr |
DHCP and local IP configuration |
| Gateway responds | ping 192.168.10.1 (+ arp -a) |
Layers 1–3 within the LAN |
| DNS resolves | nslookup name (and against 8.8.8.8) |
Name resolution |
| Port/service | curl -v https://service |
Transport and TLS up to the app |
| Application | HTTP codes, server logs | — (you have reached the cause) |
Two usage nuances: if the scope (step 1 of the method) already tells you everyone is affected, don't start at one user's desk — go to what's shared (router, DHCP, DNS, server). And if the destination is at the other site, insert the "route/VPN?" node after the gateway: tracert toward the remote IP, as in case B.
Case A: "Ana has no network"
Step 1 — define and scope. Monday, 9:05. Ana (Valencia) calls: "I have nothing, no intranet, no Internet". Scoping questions: Marta, two desks away, is working normally → a single Valencia user is affected. Changes? On Friday afternoon the desks in her area were rearranged. Scope + physical change decide the approach: bottom-up.
Step 2 — reproduce. On Ana's PC:
C:\> ipconfig /all
Ethernet adapter Ethernet0:
Physical Address. . . . . . . . . : 8C-16-45-2A-99-B7
DHCP Enabled. . . . . . . . . . . : Yes
IPv4 Address. . . . . . . . . . . : 169.254.131.77(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.0.0
Default Gateway . . . . . . . . . :Reproduced, with half a diagnosis thrown in: there is link (otherwise it would say "Media disconnected" — layer 1 ruled out despite the desk move), but the IP is APIPA (module 5): the PC asked for DHCP and nobody answered. With no valid IP and no gateway, "having nothing" is consistent.
Step 3 — hypothesis. DHCP down on the .10.1 router? Quick scope cross-check: ipconfig /all on Marta's PC shows a lease renewed at 8:47 → DHCP works for others. Refined hypothesis: the problem is between Ana and the DHCP; and since DHCP runs on the VLAN 10 router, the concrete suspicion: when the desks were recabled, Ana's PC ended up plugged into a switch port assigned to VLAN 20 (guests) — on that VLAN her DORA exchange (module 2) never reaches the corporate DHCP.
Step 4 — test. On the switch, the port behind Ana's new wall jack (port 14):
Port 14 is on VLAN 20. Hypothesis confirmed: on Friday, Ana's patch cable got plugged into a guest jack.
Steps 5 and 6 — apply and verify. Port 14 is reassigned to VLAN 10 (or the patch cable is moved to a corporate jack; the first option is chosen, and the previous value is written down). On Ana's PC:
C:\> ipconfig /renew
IPv4 Address. . . . . . . . . . . : 192.168.10.112
Default Gateway . . . . . . . . . : 192.168.10.1
C:\> ping -n 2 192.168.10.10
Reply from 192.168.10.10: bytes=32 time<1ms TTL=64
Reply from 192.168.10.10: bytes=32 time<1ms TTL=64An IP from the dynamic range (.100–.199), correct gateway, intranet reachable. Ana confirms. Step 7 comes at the end of the lesson.
Case B: "Bilbao can't reach the intranet, but browses fine"
Step 1 — define and scope. Jon (Bilbao): "I can't open the intranet since this morning; the Internet works perfectly". Checked with another colleague in Bilbao: same → the whole Bilbao site, only toward Valencia resources, Internet intact. In Valencia everything works, intranet included. This scope speaks volumes: Bilbao's LAN is healthy (they browse), the server is healthy (Valencia uses it) → suspicion lands straight on the inter-site link: the VPN. Approach: divide and conquer along the route.
Step 2 — reproduce. From Jon's PC (.20.7):
C:\> ping -n 2 192.168.10.10
Request timed out.
Request timed out.
C:\> tracert -d 192.168.10.10
1 <1 ms <1 ms <1 ms 192.168.20.1
2 * * * Request timed out.
3 * * * Request timed out.The reading (06-01): hop 1 responds — everything up to his gateway is fine — and the route dies right after 192.168.20.1, on the tunnel segment. Asterisks to the very end: a real break, not a shy router.
Step 3 — hypothesis. Either the VPN tunnel is down, or the Bilbao router has lost its route to 192.168.10.0/24 (module 4: with no route, those packets leave via the default toward the Internet, where an RFC 1918 private address goes nowhere — which is exactly why "the Internet works perfectly" while Valencia is unreachable).
Step 4 — test. On the Bilbao router:
router-bio# show vpn status
Tunnel1 peer 203.0.113.10 state: DOWN (since 2026-07-15 06:12:44)
last error: IKE negotiation timeout
router-bio# ip route
default via 172.16.31.1 dev wan0
192.168.20.0/24 dev lan0 proto kernel scope linkConfirmed twice over: the tunnel has been DOWN since 6:12, and with it down, the 192.168.10.0/24 via Tunnel1 route has vanished from the table. The router's log shows that at 6:10 Bilbao's ISP renewed the site's public IP, and the Valencia end was still waiting on the old one (recall from module 5 how much NAT and dynamic IPs complicate things).
Steps 5 and 6 — apply and verify. The tunnel negotiation is restarted with the new IP (and a permanent improvement is noted for step 7: switch the tunnel identification to a dynamic DNS name instead of a fixed IP). Verification from Jon's PC:
C:\> tracert -d 192.168.10.10
1 <1 ms <1 ms <1 ms 192.168.20.1
2 36 ms 38 ms 37 ms 192.168.10.1
3 38 ms 37 ms 38 ms 192.168.10.10
C:\> curl -s https://intranet.grupomeridiano.example/api/proyectos
[{"id":1,"nombre":"Migración ERP Ondarreta"},{"id":2,"nombre":"Web Ayto. Mislata"}]The trace crosses the tunnel again in 3 hops and the API responds: verified at layer 3 and at the application layer.
Case C: "the intranet is slow... only sometimes"
Step 1 — define and scope. Several Valencia users, over two weeks: "the intranet sometimes takes forever to load; then it's fine again". It affects several users, a single application, intermittently. Intermittent problems are the ones that punish hunch-based diagnosis the hardest — and where the method shines brightest.
Step 2 — reproduce (or monitor until you catch it). It can't be reproduced on demand, so it gets instrumented: on Marta's PC a loop is left measuring the API every minute with curl (the -w option, which prints per-phase timings — the stopwatch version of 06-01's -v), logging to a file. The next day, the data:
09:41 dns: 0.002 tcp: 0.001 tls: 0.009 total: 0.041
09:42 dns: 0.002 tcp: 0.001 tls: 0.008 total: 0.038
09:43 dns: 4.012 tcp: 0.001 tls: 0.009 total: 4.049 ← here!
09:44 dns: 0.002 tcp: 0.001 tls: 0.008 total: 0.040
09:47 dns: 4.008 tcp: 0.001 tls: 0.010 total: 4.051 ← againInstrumented reproduction is worth gold: the slowness is not in TCP, nor TLS, nor the server (those phases are constant): it is ~4 exact seconds of DNS, in bursts. That round number smells of timeout + retry: the resolver waits for a server that isn't answering and, after the deadline expires, asks the next one.
Step 3 — hypothesis. Meridiano's DHCP hands out two DNS servers. Hypothesis: the first one fails intermittently; when it fails, every resolution pays the timeout before falling back to the secondary. Step 4 — test, first by looking at the configuration and then with the microscope (06-02) — an authorized capture on Marta's PC, filter dns:
C:\> ipconfig /all | findstr "DNS"
DNS Servers . . . . . . . . . . . : 192.168.10.2
192.168.10.1
No. Time Source Destination Proto Info
310 0.0000 192.168.10.21 192.168.10.2 DNS Standard query A intranet.grupomeridiano.example
311 1.0004 192.168.10.21 192.168.10.2 DNS Standard query A intranet... (retransmission)
312 2.0012 192.168.10.21 192.168.10.2 DNS Standard query A intranet... (retransmission)
313 4.0007 192.168.10.21 192.168.10.1 DNS Standard query A intranet.grupomeridiano.example
314 4.0031 192.168.10.1 192.168.10.21 DNS Standard query response A 192.168.10.10There is the whole movie: three attempts to the primary .10.2 (a test machine someone configured as the primary DNS in DHCP two weeks ago... and which gets switched off now and then) with no answer, and at the 4-second mark the system asks .10.1, which answers in 2 ms. It matches the curl -w bursts to the millisecond. Hypothesis confirmed with packet evidence.
Steps 5 and 6 — apply and verify. The DHCP DNS option is corrected (primary .10.1, .10.2 removed), renewal is forced (ipconfig /renew + /flushdns on the affected machines, or wait for the lease cycle). The curl -w monitor runs for another 48 h: no measurement above 0.06 s. Verified — with data, not with "it seems fine now".
Documenting: the step nobody does and everybody is grateful for
Step 7 is the cheapest (10 minutes) and the one with the highest return. What to record for each incident, using case C as the example:
| Field | Case C |
|---|---|
| Symptom (the user's literal words) | "The intranet sometimes takes forever" |
| Scope | Several Valencia users, intranet only, intermittent |
| Root cause | DHCP's primary DNS pointing at an unstable test machine (.10.2) |
| Fix | DHCP DNS option corrected to .10.1; renewal forced |
| Evidence | curl -w log, capture dns-marta-0715.pcap (delete at closure) |
| How to prevent it | Changes to DHCP options: only with a change log and review |
| Time spent | 3 h (2 of them unattended monitoring) |
Why it pays off, coldly:
- Next time it takes 5 minutes: the symptom "burst slowness of ~4 s" will be linked to "primary DNS timeout" in the team's knowledge base.
- It reveals patterns: three misassigned-VLAN incidents in two months (case A) are not three accidents: they are a recabling procedure that's missing.
- The root cause prevents recurrence: without it, case B would have been "fixed" by rebooting the router — until the ISP's next IP renewal. Documenting forces you to distinguish I fixed the symptom from I understood the cause.
- It protects the team: faced with "the intranet has been slow on your watch for two weeks", the record proves what was done, when, and with what evidence.
Common Mistakes and Tips
- Skipping step 1 and going straight to the commands. Two scoping questions (who? since when/what changed?) save more time than any tool.
- Changing several things at once. If you touch the VLAN, the cable and the DHCP and something improves, you don't know which one it was — and you may have introduced a fresh fault. One change, one verification.
- Confusing correlation with cause. "I rebooted the switch and it came back" doesn't prove it was the switch (maybe the DHCP lease renewed at the same time). Root cause demands evidence, not coincidence.
- Closing without verifying with the command that used to fail (and with the user). "It should work now" is not a closure.
- Not noting the previous state before changing something. Without a rollback plan, one failed attempt becomes two incidents.
- Chasing intermittent problems with one-off tests. A lone ping at 12:00 doesn't catch a 9:43 failure. Instrument and wait:
ping -t,curl -wloops, scheduled captures. - Treating the layered model as dogma. The approaches are heuristics: if there is a strong clue (building work, yesterday's change), jump straight to it. The method exists to order the search, not to slow it down.
Exercises
- A report comes in at 9:00: "the intranet isn't working". Before touching a single command, write the three scoping questions you would ask and, for each of the following answer combinations, say where you would start looking: (a) it fails only for Marta, nobody else; (b) it fails for all of Valencia and all of Bilbao, but everyone browses the Internet; (c) it fails for all of Bilbao, and only Bilbao.
- In case A, after seeing the APIPA on Ana's PC, a technician proposes as the fix "give her a static IP: 192.168.10.50, /24 mask, gateway .10.1". Show that this "fix" would most likely appear to work partially or not at all — reason through exactly what would happen with the port still on VLAN 20 — and explain why, even if it had worked, it would still be a poor resolution of the incident by the method's standards.
- Design the diagnostic plan (steps 1–4 of the method, without solving it) for this symptom: "from the laptop in the Valencia meeting room, connected to the guest Wi-Fi, the intranet can't be opened; from the corporate Wi-Fi, it can". Include the most likely hypothesis given Meridiano's network design and the command that would confirm it.
Solutions
- Questions: Who is affected? (one user, one site, everyone?), what exactly fails and what works? (only the intranet, or Internet/other services too?), since when, and what changed?. Answers: (a) a single user → the cause is at Marta's desk or her segment: start on her machine (
ipconfig /all,pingto the gateway and the intranet). (b) Both sites fail only against the intranet and everything else works → the only thing common to that symptom is the .10.10 server (or its web service): go straight to it (ping 192.168.10.10from Valencia, andss -tlnpon the server — dead host or closed port?). (c) Only Bilbao, and only toward Valencia → the inter-site segment: VPN/routes, as in case B (tracert -d 192.168.10.10from Bilbao to see where it dies). - With the port on VLAN 20, the static IP 192.168.10.50 is useless: VLANs separate layer 2 domains (module 3), so Ana's ARP requests asking for .10.1 or .10.10 would never reach VLAN 10 —
arp -awould show incomplete entries and the pings would fail just the same (perhaps with the added confusion of conflicts if VLAN 20 uses a different plan). In other words: the proposal doesn't even attack the cause (port on the wrong VLAN), only the visible symptom (missing IP). And even if it had worked, it would violate the method: no confirmed hypothesis and no root cause (why did DHCP stop serving Ana?), it introduces an undocumented exception (a static IP outside the addressing plan and the reservations, a future source of conflicts with the DHCP range) and it guarantees a repeat with the next machine plugged into that wall jack. - Step 1 (define/scope): it affects any device on the guest Wi-Fi (check with a second device), only toward the intranet (verify the Internet does work from the guest network), always or since a specific date (did it ever work?). Step 2 (reproduce): from the laptop on the guest network,
ipconfig /all(expected: an IP from the guest network, not 192.168.10.x) andcurl -v https://intranet.grupomeridiano.example, noting which phase fails. Step 3 (hypothesis): the guest Wi-Fi lands on VLAN 20, deliberately isolated from the corporate VLAN 10 — guests not reaching the intranet is not a fault but Meridiano's security design working as intended (most likely with router rules allowing guests→Internet but blocking guests→VLAN 10). Step 4 (test):ping 192.168.10.10andtracertfrom the guest network (expected: blocked or cut at the router) and an immediate cross-check of the samecurlfrom the corporate Wi-Fi (works). With the hypothesis confirmed, the "fix" is not technical but procedural: whoever needs the intranet must use the corporate network; if access from the guest network were genuinely needed, that would be a policy change to decide and document, not a quick hack.
Conclusion
Module 6 is now complete: the utilities sharpened one by one (06-01), the packet microscope with its legal framework (06-02) and, in this lesson, the method that governs them — the three layered approaches and when to use each, the 7 steps from define to document, the decision tree with its command per node, and three Meridiano incidents (Ana's APIPA that ended in a VLAN, the VPN tunnel that took Bilbao down, the intermittent DNS caught with instrumentation and a capture) solved start to finish. Notice what has happened over the course of the module: ARP, TTL, DORA, APIPA, VLANs, routes, sockets, the handshake... everything learned in modules 1 through 5 has stopped being syllabus and become diagnostic parts. You now have knowledge and method. What remains is fluency, and that is only earned by training: module 7 is exactly that — the course's gym, with exercises for every block and integrated practical cases in which to consolidate everything you now know how to do.
Networking Course
Module 1: Introduction to Networks
Module 2: Communication Protocols
- Introduction to Communication Protocols
- Data Link Protocols
- Network Protocols
- Transport Protocols
- Application Protocols
Module 3: The OSI Model
- Introduction to the OSI Model
- Physical Layer
- Data Link Layer
- Network Layer
- Transport Layer
- Session Layer
- Presentation Layer
- Application Layer
Module 4: The TCP/IP Model
- Introduction to the TCP/IP Model
- Network Access Layer
- Internet Layer
- Transport Layer
- Application Layer
- OSI vs TCP/IP Comparison
