Come utilizzare il comando ip per gestire le reti in Linux
La parte fondamentale dell’amministrazione e della risoluzione dei problemi di Linux è controllare la configurazione IP di un sistema per assicurarsi che il sistema abbia un IP valido e sia accessibile sulla rete locale.
Il comando ip in Linux è un potente strumento che non solo visualizza l’indirizzo IP corrente di un sistema, ma consente anche di visualizzare e gestire la configurazione corrente di interfacce di rete, indirizzi IP, percorsi e tabelle ARP.
Diamo un’occhiata ad alcuni dei casi d’uso comuni del comando ip in Linux.
Trova l’indirizzo IP su Linux
Per trovare l’indirizzo IP del tuo sistema Linux, usa il comando ip seguito da address , addr o un’opzione :
ip address
Verrà visualizzata la configurazione di tutte le interfacce di rete, inclusi i relativi indirizzi IP.
Nell’esempio seguente, puoi vedere che il sistema ha tre interfacce di rete: lo (indirizzo di loopback), ens33 e ens37 . L’output include le seguenti informazioni:
- Informazioni di livello 1 come la capacità dell’interfaccia e lo stato di connettività del livello fisico, MTU, lo stato operativo dell’interfaccia (ad esempio, UP o DOWN) e la lunghezza della coda di trasmissione (qlen).
- Informazioni di livello 2 come l’indirizzo MAC dell’interfaccia.
- Le informazioni di livello 3 includono l’indirizzo IP e il relativo tipo (indirizzamento IP dinamico o indirizzamento IP statico).
Per visualizzare brevi informazioni sulle interfacce di rete, utilizzare il comando ip con l’ opzione –brief come segue:
ip --brief address show
Per visualizzare solo le informazioni sull’indirizzo IPv4, utilizzare il seguente comando:
ip -4 addr
Per trovare le informazioni sull’indirizzo IP di una particolare interfaccia di rete, utilizzare la seguente sintassi:
ip address show dev [interface]
Ad esempio, per visualizzare l’indirizzo IP di un’interfaccia di rete ens33 , il comando sarebbe:
ip address show dev ens33
Visualizza e modifica l’indirizzo MAC
Utilizzando il comando ip, puoi anche visualizzare e modificare l’indirizzo MAC del tuo sistema.
Per visualizzare l’indirizzo MAC del tuo sistema Linux, usa il seguente comando:
ip --brief link show
Per visualizzare l’indirizzo MAC di una particolare interfaccia, utilizzare:
ip --brief link show dev [interface]
Per modificare l’indirizzo MAC, per prima cosa abbassa l’interfaccia:
sudo ip link set dev [interface] down
Quindi utilizzare il seguente comando per modificare l’indirizzo MAC dell’interfaccia:
sudo ip link set dev [interface] address [new-mac-adddress]
Successivamente, apri l’interfaccia:
sudo ip link set dev [interface] up
Visualizza le statistiche dell’interfaccia di rete
Usando il comando ip, puoi anche visualizzare le statistiche di un’interfaccia di rete. Usa il seguente comando ip per visualizzare le statistiche per tutte le interfacce di rete sul tuo sistema:
ip -s link
L’output include statistiche come byte/pacchetti trasmessi e ricevuti, errori, pacchetti scartati, multicast, ecc. Per visualizzare le statistiche per una particolare interfaccia, utilizzare la seguente sintassi:
ip -s link show dev [interface]
Modifica le proprietà del collegamento tramite ip
Per visualizzare un’interfaccia, utilizzare il seguente comando ip:
sudo ip link set [interface] up
Per abbattere l’interfaccia, eseguire:
sudo ip link set [interface] down
È inoltre possibile modificare l’MTU (unità di trasmissione massima) di un’interfaccia utilizzando il seguente comando:
sudo ip link set mtu [number] dev [interface]
Ad esempio, per impostare l’MTU di un’interfaccia di rete ens33 su 8000 , il comando sarebbe:
sudo ip link set mtu 8000 dev ens33
Aggiungi/Rimuovi indirizzo IP su Linux
Per aggiungere un indirizzo IP a un’interfaccia di rete, utilizzare la seguente sintassi:
ip addr add [ip-address] dev [interface]
Per aggiungere un indirizzo IP 192.168.42.140/24 all’interfaccia di rete ens33 , il comando sarebbe:
ip addr add 192.168.42.140/24 dev ens33
Utilizzare la seguente sintassi del comando per rimuovere l’indirizzo IP da un’interfaccia:
ip addr del [ip-address] dev [interface]
Per rimuovere l’indirizzo IP 192.168.42.140/24 dall’interfaccia ens33 , il comando sarebbe:
ip addr del 192.168.42.140/24 dev ens33
Visualizza la tabella di instradamento su Linux
Il comando ip route viene utilizzato per visualizzare e modificare i percorsi in un sistema Linux. Per visualizzare la tabella di instradamento del tuo sistema, usa il comando ip route senza alcuna opzione:
ip route
Ogni riga nell’output rappresenta un percorso configurato. Un instradamento è costituito da un indirizzo di rete di destinazione, un salto successivo (ovvero l’indirizzo IP del router), un’interfaccia attraverso la quale verrà inviato il pacchetto e la metrica (un valore utilizzato per determinare l’instradamento preferito quando sono presenti più instradamenti disponibile alla destinazione). In questo caso è preferibile il percorso con la metrica inferiore.
Nell’esempio precedente, le prime due voci rappresentano il percorso predefinito, che viene utilizzato quando nessun altro percorso è disponibile per l’indirizzo di destinazione. 192.168.42.2 e 192.168.10.1 sono gli indirizzi IP del router. Il dev ens33 e ens37 indicano l’interfaccia che verrà utilizzata per inviare i pacchetti al router. I campi proto dhcp indicano che il percorso predefinito viene appreso da DHCP.
La seconda voce rappresenta l’indirizzo APIPA (Automatic Private IP Addressing) 169.254.0.0/16 . Quando un host non riesce a ottenere un indirizzo IP da un server DHCP, si assegna un indirizzo IP casuale da questa rete. Consente loro di comunicare con altri host nella sottorete che non sono riusciti a ottenere l’indirizzo IP.
La terza e la quarta voce mostrano gli indirizzi di rete delle reti locali a cui è connesso il sistema. 192.168.10.0 è la rete a cui è collegata l’interfaccia ens37 mentre 192.168.42.0 è la rete a cui è collegata ens33 .
Il campo src indica l’indirizzo IP dell’interfaccia utilizzata come indirizzo di origine durante l’invio di pacchetti attraverso questo percorso.
Modifica la tabella di instradamento usando ip
Per aggiungere manualmente un percorso, utilizzare il comando ip route seguito dall’indirizzo di rete di destinazione e dall’IP del gateway:
sudo ip route add [network-id] via [gateway-ip]
Ad esempio, per aggiungere una route che invii tutto il traffico destinato alla rete 192.168.20.0 al gateway in 192.168.10.16 , dovresti utilizzare il seguente comando:
sudo ip route add 192.168.20.0/24 via 192.168.10.16
Utilizzare il seguente comando per aggiungere una route predefinita:
sudo ip route add default via [ip-address] dev [interface]
Ad esempio, per aggiungere la route predefinita che indirizza il traffico al router da 192.168.10.1 a ens33 , il comando sarebbe:
sudo ip route add default via 192.168.10.1 dev ens33
ip route get [ip-address]
Per eliminare una voce della tabella di routing, utilizzare la seguente sintassi:
sudo ip route delete [network-address] via [gateway-ip]
Puoi anche visualizzare il percorso seguito da un indirizzo utilizzando la seguente sintassi:
ip route get [ip-address]
Gestisci la tabella dei vicini su Linux
È possibile utilizzare il comando ip neigh in Linux per visualizzare e modificare la tabella dei vicini, nota anche come tabella ARP. Per visualizzare le voci della tabella adiacente corrente, utilizzare il seguente comando:
ip neigh show
Per aggiungere una nuova voce nella tabella dei vicini, utilizzare la seguente sintassi:
sudo ip neigh add [ip-address] lladdr [mac-address] dev [interface]
Per rimuovere una voce dalla tabella adiacente, utilizzare la seguente sintassi:
sudo ip neigh del [ip-address] dev [interface]
Aggiungi colore all’output del comando ip
Per rendere l’output più facile e veloce da capire, puoi aggiungere un colore all’output del comando ip usando l’ opzione -c :
ip -c a
Gestione di reti e indirizzi IP su Linux
Il comando ip in Linux è uno strumento utile per l’amministrazione e la risoluzione dei problemi delle connessioni di rete. Dalla visualizzazione delle interfacce di rete e dalla modifica delle proprietà dei collegamenti alla ricerca degli indirizzi IP e alla gestione dei percorsi, il comando ip consente di eseguire diverse attività di amministrazione del sistema tramite la riga di comando.
Lascia un commento