DEV Community

Rocky
Rocky

Posted on

The App Team Swore It Wasn't Them. It Wasn't. It Also Wasn't The App.

Ticket comes in: "Can't reach the reporting server, app must be down." You're two weeks into a help desk role that's supposed to turn into a network engineering one, and this is your first escalation. You restart the app service. Still nothing. You restart it again, because sometimes that's just what fixes things. Still nothing. You ping the app team, they check their logs, service is up, healthy, listening. Forty-five minutes gone and the two teams are now firmly convinced the problem is the other team's.

Nobody checked the network path. That's usually where "can't reach the server" actually lives, and there's a reason experienced engineers don't guess at it: they work it bottom-up, one OSI layer at a time, instead of starting wherever the ticket happens to point.

Layer 1, physical. Is the interface even up? show interface status on the switch, or the link light on the NIC itself. If there's no link, nothing above this layer matters yet — no amount of app restarts fixes a dead port.

Layer 2, data link. Assuming the port's up, is it in the VLAN it's supposed to be in? Check the switch port config and the MAC address table (show mac address-table) to confirm the server's MAC is showing up where you expect. Then check ARP (arp -a) for a stale entry pointing at a MAC that doesn't exist anymore — a classic symptom after hardware gets swapped or a port gets reassigned.

Layer 3, network. Can you ping the default gateway from the server's subnet? Can you ping the server's IP directly? If the gateway answers but the server doesn't, check the routing table for a route that's missing, wrong, or pointing somewhere that used to be correct. A subnet that got re-carved without every device's static route getting updated is a routine cause of "it pings from some places and not others."

Layer 4, transport. Ping succeeding doesn't mean the service is reachable. telnet <ip> <port> or nc -zv <ip> <port> tells you whether the actual TCP handshake completes on the port the app listens on. A host can answer ICMP all day and still hard-refuse the one port that matters, usually because of a firewall rule or security group that only opened ICMP.

DNS, before you even get to the app. nslookup or dig the hostname the ticket actually used. If it resolves to an IP that isn't the one you've been testing against, you've been debugging the wrong host this whole time.

Layer 7, application, last. Only once everything below has checked out does curl -v against the actual endpoint tell you anything useful — the real HTTP status, the real headers, the real error. Jumping here first is what burns forty-five minutes restarting a healthy service while the actual fault sits two layers down.

In the scenario above, it's layer 2: a switch config push earlier that day moved the server's port into a different VLAN, and that VLAN's gateway was never added to the routing table. Link light was fine. Ping to anything on the same broken subnet was fine. Ping to the actual default gateway timed out immediately, which is where the bottom-up method finds it in about ninety seconds instead of an hour of two teams blaming each other.

This is also, not coincidentally, the exact shape of a CCNA-style interview question: not "define OSI," but "here's a ticket, walk me through how you'd isolate it." The candidates who answer well aren't reciting the seven layers from memory, they're demonstrating that they'd check them in order instead of guessing.

That bottom-up instinct doesn't show up from memorizing a diagram. It comes from actually building and breaking networks across the full range this scenario touches: physical topology and VLANs at the foundation, routing and switching at the enterprise level, and the architecture decisions above that which decide how all of it fits together in the first place. Codelivly's Network Engineer Book Bundle covers that whole arc, L1 through L3, as one connected progression rather than three separate things to cram. If subnetting and VLANs are still the shaky part, the free Routing & Switching Fundamentals learning path on codelivly.com is a solid place to start building that base before going deeper.

Top comments (0)