On this page

Network Troubleshooting Methodology

Layered troubleshooting—eliminate one layer at a time from L1 to L7. MTU black holes (ICMP filtered, causing TCP handshake to complete but data to stall), DNS resolution anomalies, TCP handshake timeouts—each classic failure has a specific diagnostic path. mtr is better suited than ping/traceroute for locating intermittent packet loss.

Overview

The core methodology for network troubleshooting is layered diagnosis: from L1 (Physical) to L7 (Application), eliminating one layer at a time. The most common failure modes are: MTU black holes (ICMP filtered, causing TCP to stall), DNS resolution anomalies, and data transmission stalling after TCP connection establishment (buffer/window issues). mtr is better suited for long-term packet loss monitoring than ping/traceroute—it displays packet loss rates and latency jitter for every hop end-to-end.

Layered Diagnosis

L1 (Physical): ip link, ethtool eth0 | grep Link
L2 (Data Link): ip neigh, tcpdump arp
L3 (Network): ping -M do, traceroute, ip route
L4 (Transport): ss -tlnp, tcpdump 'tcp[tcpflags] & tcp-syn != 0'
L5-6 (TLS): openssl s_client -connect host:443, tshark 'tls.alert_message.level==2'
L7 (Application): curl -v, dig, ss -tianp (Recv-Q / Send-Q)

Classic Failure Modes

"Network is up but inaccessible"

ping succeeds → L3 OK, L4 may have issues

Check:
  ss -tlnp | grep <port>            Is the service listening?
  iptables -L -n -v                  Is the firewall blocking?
  tcpdump 'tcp[tcpflags] & tcp-rst != 0' Who is sending RST?
  cat /proc/sys/net/netfilter/nf_conntrack_count Is the conntrack table full?

MTU Black Hole

Symptoms: ping succeeds, TCP SYN+ACK completes, data transmission stalls.

Root Cause: MTU on the path is smaller than the packet size + DF=1 + ICMP Frag Needed is filtered
  → Packets are dropped along the path, sender is unaware

Detection: ping -M do -s 1472 <target> → fails (but small pings succeed) → MTU black hole
Mitigation: iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

DNS Issues

dig <domain> +short                   What does it return?
dig +trace <domain>                   Where does the recursive path break?
tcpdump -nn 'port 53'                 Was the request sent? Is there a response?

Intermittent Timeouts

mtr -r -c 100 <target>               Which hop starts dropping packets + jitter?
ethtool -S eth0 | grep -E 'err|drop'  NIC packet drops?
cat /proc/net/dev                      Soft drops?
tc -s qdisc show dev eth0              Qdisc drops (bufferbloat?)

References

  • mtr: bitwizard.nl/mtr
  • iptables: netfilter.org/documentation

Keywords: network troubleshooting, L1-L7, MTU black hole, DNS, TCP RST, conntrack, bufferbloat