LFCA: Impara i suggerimenti di base per la risoluzione dei problemi di rete – Parte 12

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.

TCP/IP Layer Model

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.

OSI Model

È 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
Check Network Interface Status

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.

Network Interface Down

In tal caso, puoi attivare l’interfaccia utilizzando il comando:

$ sudo ip link set enp0s3 up
Active Network Interface

In alternativa, puoi eseguire il comando ifconfig mostrato di seguito.

$ sudo ifconfig enp0s3 up
$ ip link show
Enable Network Interface

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

$ ifconfig
Check Server IP Address

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
Check Server IP Address

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.

Check Network Gateway

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

$ systemd-resolve --status
Check DNS Servers

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
Check DNS Using nmcli Command

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
Check Network ARP Table

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
Check Server IP Address

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
Check Network Activity

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
Trace Network Activity

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
Check Network Ports Status

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/