Quando i sistemi incontrano problemi, come accade talvolta, è necessario conoscere il modo per affrontare il problema e ripristinarli a uno stato normale e funzionante. In questa sezione, ci concentriamo sulle competenze fondamentali di risoluzione dei problemi di rete che ogni amministratore di sistemi Linux dovrebbe avere.
Comprensione fondamentale della risoluzione dei problemi di rete
Nella maggior parte dei casi, c’è una grande differenza tra gli amministratori di rete e i sysadmin. I sysadmin privi di visibilità di rete di solito incolperanno gli amministratori di rete per le interruzioni e i tempi di inattività mentre gli amministratori di rete con conoscenze insufficienti sui server spesso rivolgono le colpe dei sysadmin per il fallimento dei dispositivi endpoint. Tuttavia, il gioco delle colpe non aiuta a risolvere i problemi e in un ambiente lavorativo, questo può ostacolare le relazioni tra colleghi.
Come sysadmin, avere una comprensione fondamentale della risoluzione dei problemi di rete aiuterà a risolvere i problemi più rapidamente e contribuirà a promuovere un ambiente di lavoro coeso. È per questo motivo che abbiamo messo insieme questa sezione per evidenziare alcuni dei consigli di base per la risoluzione dei problemi di rete che saranno utili quando si diagnosticano problemi legati alla rete.
A Recap of the TCP / IP Model
Nel nostro precedente argomento della serie LFCA, abbiamo esaminato il modello concettuale TCP/IP che mostra la trasmissione dei dati in un computer e i protocolli che si trovano in ciascuno strato.

Un altro modello concettuale altrettanto importante è il modello OSI (Open Systems Interconnection). Si tratta di un framework TCP/IP a 7 livelli che suddivide un sistema di rete e le funzioni informatiche in ogni livello.
Nel modello OSI, queste funzioni sono suddivise nei seguenti livelli a partire dal basso: Strato fisico, Strato di collegamento dati, Strato di rete, Strato di trasporto, Strato di sessione, Strato di presentazione e infine Strato di applicazione in cima.

È impossibile parlare di risoluzione dei problemi di rete senza fare riferimento al modello OSI. Per questo motivo, vi guideremo attraverso ogni livello e scopriremo i vari protocolli di rete utilizzati e come risolvere i difetti associati ad ogni livello.
Livello 1: Strato fisico
Questo è probabilmente uno dei livelli più trascurati, eppure è uno dei livelli più essenziali necessari affinché avvenga qualsiasi comunicazione. Il livello fisico comprende i componenti fisici della rete del PC come schede di rete, cavi Ethernet, fibre ottiche, ecc. La maggior parte dei problemi inizia qui e sono principalmente causati da:
- Cavo di rete/Ethernet scollegato
- Cavo di rete/Ethernet danneggiato
- Scheda di rete mancante o danneggiata
In questo livello, le domande che vengono in mente sono:
- “Il cavo di rete è collegato?”
- “Il collegamento di rete fisico è attivo?”
- “Hai un indirizzo IP?”
- “Riesci a fare ping all’indirizzo IP del gateway predefinito?”
- “Riesci a fare ping al server DNS?”
Per verificare lo stato delle tue interfacce di rete, esegui il comando ip:
$ ip link show

Dall’output sopra, abbiamo 2 interfacce. La prima interfaccia – lo
– è l’indirizzo di loopback e di solito non viene utilizzato. L’interfaccia di rete attiva che fornisce connettività alla rete e a Internet è l’interfaccia enp0s3
. Possiamo vedere dall’output che lo stato dell’interfaccia è UP.
Se un’interfaccia di rete è inattiva, vedrai l’output stato DOWN.

In tal caso, puoi attivare l’interfaccia utilizzando il comando:
$ sudo ip link set enp0s3 up

In alternativa, puoi eseguire il comando ifconfig mostrato di seguito.
$ sudo ifconfig enp0s3 up $ ip link show

Per confermare che il tuo PC ha ricevuto un indirizzo IP dal router o dal server DHCP, esegui il comando ifconfig.
$ ifconfig

L’indirizzo IPv4 è preceduto dal parametro inet come mostrato. Ad esempio, l’indirizzo IP di questo sistema è 192.168.2.104 con una subnet o netmask di 255.255.255.0.
$ ifconfig

In alternativa, puoi eseguire il comando ip address come segue per controllare l’indirizzo IP del tuo sistema.
$ ip address
Per controllare l’indirizzo IP del gateway predefinito, esegui il comando:
$ ip route | grep default
L’indirizzo IP del gateway predefinito, che nella maggior parte dei casi è il server DHCP o il router, è indicato come mostrato di seguito. In una rete IP, dovresti essere in grado di fare ping al gateway predefinito.

Per controllare i server DNS che stai utilizzando, esegui il seguente comando sui sistemi systemd.
$ systemd-resolve --status

A better way to check the DNS servers in use is to run the nmcli command shown
$ ( nmcli dev list || nmcli dev show ) 2>/dev/null | grep DNS

Come hai osservato, una grande parte della risoluzione dei problemi di rete avviene qui.
Layer 2: Livello di collegamento dati
Essenzialmente, il livello di collegamento dati determina il formato dei dati sulla rete. Qui avviene la comunicazione dei frame di dati tra host. Il protocollo predominante in questo strato è l’ARP ( Protocollo di risoluzione degli indirizzi).
L’ARP è responsabile della scoperta degli indirizzi del livello di collegamento e esegue la mappatura degli indirizzi IPv4 sul livello 3 agli indirizzi MAC. Di solito, quando un host contatta il gateway predefinito, è probabile che abbia già l’IP dell’host, ma non gli indirizzi MAC.
Il protocollo ARP colma il divario tra il livello 3 e il livello 2 traducendo gli indirizzi IPv4 a 32 bit al livello 3 in indirizzi MAC a 48 bit al livello 2 e viceversa.
Quando un PC si unisce a una rete LAN, il router (gateway predefinito) gli assegna un indirizzo IP per l’identificazione. Quando un altro host invia un pacchetto dati destinato al PC al gateway predefinito, il router richiede all’ARP di cercare l’indirizzo MAC corrispondente all’indirizzo IP.
Ogni sistema ha la propria tabella ARP. Per controllare la tua tabella ARP, esegui il comando:
$ ip neighbor show

Come puoi notare, l’indirizzo MAC del router è popolato. Se ci sono problemi di risoluzione, il comando non restituisce alcun output.
Livello 3: Livello di Rete / Internet
Questo è il livello con cui lavori esclusivamente con gli indirizzi IPv4 che sono familiari agli amministratori di sistema. Fornisce vari protocolli come ICMP e ARP di cui abbiamo parlato e altri come RIP (Routing Information Protocol).
Alcuni dei problemi comuni includono la configurazione errata dei dispositivi o problemi con dispositivi di rete come router e switch. Un buon punto di partenza per la risoluzione dei problemi è controllare se il tuo sistema ha acquisito un indirizzo IP come segue:
$ ifconfig

Inoltre, è possibile utilizzare il comando ping per verificare la connettività Internet inviando un pacchetto di eco ICMP al DNS di Google. Il flag -c
indica il numero di pacchetti inviati.
$ ping 8.8.8.8 -c 4

L’output mostra una risposta positiva dal DNS di Google senza perdita di pacchetti. Se si ha una connessione intermittente, è possibile verificare il punto in cui i pacchetti vengono persi utilizzando il comando traceroute come segue.
$ traceroute google.com

Gli asterischi indicano il punto in cui i pacchetti vengono persi o smarriti.
Il comando nslookup interroga il DNS per ottenere l’indirizzo IP associato a un dominio o hostname. Questo è noto come ricerca DNS diretta.
Per esempio.
$ nslookup google.com
Il comando rivela gli indirizzi IP associati al dominio google.com.
Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: Name: google.com Address: 142.250.192.14 Name: google.com Address: 2404:6800:4009:828::200e
Il comando dig è un altro comando utilizzato per interrogare i server DNS associati a un nome di dominio. Ad esempio, per interrogare i nameserver DNS eseguire:
$ dig google.com
Layer 4: Strato di trasporto
Il livello di trasporto gestisce la trasmissione dei dati utilizzando i protocolli TCP e UDP. Solo per ricapitolare, TCP è un protocollo orientato alla connessione mentre UDP è senza connessione. Le applicazioni in esecuzione ascoltano su socket composti da porte e indirizzi IP.
Tra i problemi comuni che possono verificarsi c’è il blocco delle porte TCP che potrebbero essere richieste dalle applicazioni. Se hai un server web e vuoi verificare il suo stato di funzionamento, utilizza il comando netstat o ss per verificare se il servizio web è in ascolto sulla porta 80
$ sudo netstat -pnltu | grep 80 OR $ ss -pnltu | grep 80

A volte una porta può essere utilizzata da un servizio in esecuzione nel sistema. Se desideri che un altro servizio utilizzi quella porta, potresti essere costretto a configurarlo per utilizzare una porta diversa.
Se continui ad avere problemi, controlla il firewall e verifica se la porta di interesse è bloccata.
La maggior parte della risoluzione dei problemi avviene attraverso questi 4 livelli. Molto poco troubleshooting viene fatto nei livelli sessione, presentazione e applicazione. Questo perché svolgono un ruolo meno attivo nel funzionamento di una rete. Tuttavia, diamo rapidamente un’occhiata a cosa succede in quei livelli.
Livello 5: Livello di sessione
Il livello di sessione apre canali di comunicazione chiamati sessioni e si assicura che rimangano aperti durante la trasmissione dei dati. Li chiude anche una volta che la comunicazione è terminata.
Livello 6: Livello di Presentazione
Noto anche come livello di sintassi, il livello di presentazione sintetizza i dati da utilizzare dal livello dell’applicazione. Specifica come i dispositivi dovrebbero crittografare, codificare e comprimere i dati con l’obiettivo di garantire che siano ben ricevuti dall’altro capo.
Livello 7: Livello dell’Applicazione
Infine, abbiamo il livello dell’applicazione che è il più vicino agli utenti finali e consente loro di interagire con il software dell’applicazione. Il livello dell’applicazione è ricco di protocolli come HTTP, HTTPS, POP3, IMAP, DNS, RDP, SSH, SNMP e NTP, per citarne alcuni.
Conclusione
Quando si risolvono i problemi di un sistema Linux, l’approccio a strati utilizzando il modello OSI è molto raccomandato, partendo dal livello più basso. Ciò fornisce informazioni su cosa non funziona e ti aiuta a restringere il problema.
Source:
https://www.tecmint.com/basic-network-troubleshooting-tips/