Introduzione al Network Troubleshooting su Linux
Il network troubleshooting su Linux è una competenza fondamentale per qualsiasi amministratore di sistema o ingegnere di rete. Quando si verifica un problema di connettività, la capacità di diagnosticare rapidamente la causa radice può fare la differenza tra minuti e ore di downtime.
Linux offre un arsenale straordinario di strumenti nativi e di terze parti per analizzare il traffico di rete, verificare la connettività, esaminare le tabelle di routing e monitorare le interfacce. In questa guida esploreremo una metodologia sistematica e vedremo come applicare ogni strumento nel contesto reale.
L’approccio corretto al troubleshooting non è casuale: si parte dagli strati più bassi del modello OSI e si risale verso l’applicazione, isolando progressivamente la causa del problema.
Prerequisiti
Prima di iniziare, assicurati di avere:
- Un sistema Linux (Ubuntu, CentOS, Debian o similari)
- Accesso root o privilegi sudo
- Conoscenza di base del modello TCP/IP
- Pacchetti essenziali installati:
net-tools,iproute2,tcpdump,nmap
Questi tools sono già presenti in SysLinuxOS. Per installare i pacchetti necessari su sistemi Debian/Ubuntu:
sudo apt update sudo apt install net-tools iproute2 tcpdump nmap curl dnsutils -y
Su sistemi RHEL/CentOS:
sudo yum install net-tools iproute tcpdump nmap curl bind-utils -y
Metodologia Strutturata: Il Modello OSI Applicato
Il segreto di un troubleshooting efficace è seguire una metodologia top-down o bottom-up basata sul modello OSI. L’approccio bottom-up parte dal livello fisico e risale verso l’applicazione:
- Livello 1 – Fisico: verifica cavi, LED, interfacce
- Livello 2 – Data Link: ARP, MAC address, VLAN
- Livello 3 – Rete: IP, routing, subnet
- Livello 4 – Trasporto: TCP/UDP, porte, sessioni
- Livello 7 – Applicazione: DNS, HTTP, servizi
Step 1: Verifica delle Interfacce di Rete
Il primo passo è verificare lo stato delle interfacce di rete. Il comando moderno è ip, parte del pacchetto iproute2:
ip addr show ip link show
Output tipico:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
Verifica che l’interfaccia sia in stato UP e che abbia un indirizzo IP assegnato correttamente. Se l’interfaccia è DOWN, puoi attivarla con:
sudo ip link set eth0 up
Per verificare le statistiche di errore sull’interfaccia:
ip -s link show eth0
Un numero elevato di RX errors o TX dropped indica problemi al livello fisico o di configurazione MTU.
Step 2: Test di Connettività con Ping
Il comando ping è il primo strumento di diagnostica per verificare la raggiungibilità di un host:
ping -c 4 8.8.8.8 ping -c 4 192.168.1.1
Analizza attentamente l’output:
- TTL: valori bassi possono indicare molti hop o loop di routing
- Latenza: tempi elevati suggeriscono congestione o problemi di routing
- Packet loss: perdita di pacchetti indica instabilità del percorso
Se il ping al gateway locale funziona ma quello verso Internet fallisce, il problema è nel routing o nel firewall upstream.
Step 3: Analisi del Routing
Verifica la tabella di routing per capire come il sistema instrada il traffico:
ip route show ip route get 8.8.8.8
Il comando ip route get mostra esattamente quale interfaccia e gateway verranno usati per raggiungere un host specifico. Output esempio:
8.8.8.8 via 192.168.1.1 dev eth0 src 192.168.1.100
Se manca il default gateway, aggiungilo con:
sudo ip route add default via 192.168.1.1 dev eth0
Step 4: Traceroute per Analisi del Percorso
Il comando traceroute (o tracepath) rivela ogni hop nel percorso verso la destinazione:
traceroute 8.8.8.8 tracepath 8.8.8.8 mtr --report 8.8.8.8
MTR (My TraceRoute) è particolarmente potente perché combina ping e traceroute in tempo reale, mostrando statistiche di latenza e packet loss per ogni hop. È lo strumento ideale per identificare dove esattamente si verifica una degradazione delle prestazioni.
Interpreta i risultati:
- Asterischi (
* * *) indicano hop che non rispondono (firewall ICMP) - Latenza che cresce improvvisamente identifica il collo di bottiglia
- Loop (stesso IP che appare più volte) indica problemi di routing
Step 5: Risoluzione DNS
Molti problemi di rete apparenti sono in realtà problemi DNS. Verifica con:
nslookup google.com dig google.com dig @8.8.8.8 google.com
Il comando dig fornisce output dettagliato sul processo di risoluzione:
dig +trace google.com
Per verificare il DNS configurato sul sistema:
cat /etc/resolv.conf resolvectl status
Se il DNS non risponde, prova con un server alternativo (es. 8.8.8.8) per capire se il problema è nel server DNS configurato o nella connettività generale.
Step 6: Analisi delle Connessioni con SS e Netstat
Il comando ss (socket statistics) è il successore moderno di netstat e permette di esaminare tutte le connessioni attive:
ss -tuln ss -tunap ss -s
Opzioni principali:
-t: connessioni TCP-u: connessioni UDP-l: socket in ascolto (LISTEN)-n: mostra numeri di porta invece di nomi-p: mostra il processo associato
Per trovare quale processo usa una porta specifica:
ss -tlnp | grep :80 lsof -i :443
Step 7: Cattura del Traffico con TCPDump
TCPDump è lo strumento più potente per l’analisi del traffico di rete a basso livello. Richiede privilegi root:
sudo tcpdump -i eth0 -n sudo tcpdump -i eth0 host 8.8.8.8 sudo tcpdump -i eth0 port 80 -w capture.pcap
Filtri utili:
sudo tcpdump -i eth0 'tcp port 443 and host 192.168.1.50' sudo tcpdump -i any icmp -v
Il flag -w salva la cattura in un file .pcap che può essere analizzato con Wireshark per un’analisi più approfondita con interfaccia grafica.
Step 8: Verifica del Firewall
Il firewall locale può bloccare traffico legittimo. Verifica le regole con:
sudo iptables -L -n -v sudo iptables -L INPUT -n --line-numbers
Su sistemi con firewalld (CentOS/RHEL):
sudo firewall-cmd --list-all sudo firewall-cmd --list-services
Su Ubuntu con UFW:
sudo ufw status verbose
Se sospetti che il firewall stia bloccando il traffico, puoi temporaneamente disabilitarlo per il testing (mai in produzione senza autorizzazione).
Troubleshooting: Scenari Comuni e Soluzioni
Problema: Nessuna Connettività Internet
Segui questo albero decisionale:
- Ping al loopback:
ping 127.0.0.1→ se fallisce, problema stack TCP/IP - Ping al gateway:
ping 192.168.1.1→ se fallisce, problema livello 2/3 locale - Ping a IP pubblico:
ping 8.8.8.8→ se fallisce, problema routing o ISP - Ping a nome DNS:
ping google.com→ se fallisce solo questo, problema DNS
Problema: Latenza Elevata
Usa MTR per identificare l’hop problematico, poi verifica:
- Utilizzo banda con
iftoponethogs - Errori interfaccia con
ip -s link - Configurazione duplex:
ethtool eth0
sudo ethtool eth0 | grep -i speed sudo iftop -i eth0
Problema: Connessione TCP che Non Si Stabilisce
Verifica con telnet o nc (netcat):
telnet host.example.com 80 nc -zv host.example.com 443 nmap -p 80,443 host.example.com
Se la porta è chiusa o filtrata, controlla firewall locale e remoto, e verifica che il servizio sia in ascolto.
Problema: Perdita di Pacchetti Intermittente
La perdita intermittente è la più difficile da diagnosticare. Strumenti utili:
ping -i 0.2 -c 100 192.168.1.1 mtr --report --report-cycles 100 8.8.8.8
Verifica anche i buffer di sistema e possibili problemi di QoS con:
tc qdisc show dev eth0 cat /proc/net/dev
Strumenti Avanzati: Panoramica Rapida
Oltre agli strumenti base, considera questi tool avanzati:
- Wireshark: analisi grafica dei file .pcap con filtri avanzati
- iperf3: test delle prestazioni di banda tra due host
- Nmap: scansione porte e rilevamento servizi
- Nethogs: monitoraggio banda per processo
- Iftop: monitoraggio traffico in tempo reale per connessione
- Bmon: monitoraggio bandwidth per interfaccia
iperf3 -s iperf3 -c server_ip -t 30 nmap -sV -p 1-1000 target_ip
Conclusione
Il network troubleshooting su Linux richiede metodologia, pazienza e la giusta combinazione di strumenti. Seguendo l’approccio strutturato per livelli OSI e utilizzando gli strumenti descritti in questa guida, sarai in grado di identificare e risolvere la grande maggioranza dei problemi di rete in modo efficiente.
Ricorda i punti chiave:
- Segui sempre una metodologia strutturata, non procedere per tentativi casuali
- Documenta ogni passo e i risultati ottenuti
- Usa
ipessinvece dei deprecatiifconfigenetstat - TCPDump e Wireshark sono i tuoi migliori alleati per problemi complessi
- MTR è indispensabile per analizzare problemi di routing e latenza
Con la pratica, il troubleshooting di rete diventerà un processo intuitivo e i tempi di risoluzione si ridurranno drasticamente.

