Ricerca nel sito web

24 Comandi "IP" utili per configurare le interfacce di rete


Breve: in questa guida discuteremo alcuni esempi pratici del comando ip. Al termine di questa guida, gli utenti saranno in grado di eseguire attività di rete in modo efficiente in Linux dall'interfaccia della riga di comando.

Gli amministratori di sistema spesso devono eseguire attività di rete su server Linux. Sul mercato sono disponibili numerosi strumenti grafici e da riga di comando. Tuttavia, la maggior parte degli utenti Linux preferisce utilizzare il comando ip per la sua semplicità e la sua ricca funzionalità.

Il comando ip è una nuova utilità della riga di comando di rete utilizzata per assegnare un indirizzo IP a un'interfaccia di rete o configurare/aggiornare utili variabili di rete su un sistema Linux.

Fa parte del pacchetto iproute2 e offre diverse attività di amministrazione di rete come attivare o disattivare le interfacce di rete, assegnare e rimuovere indirizzi IP e percorsi, gestire la cache ARP e molto altro.

Il comando ip è molto simile al vecchio comando ifconfig, ma è molto più potente con più funzioni e capacità aggiunte.

Il comando ifconfig è stato deprecato e sostituito dal comando ip in tutte le moderne distribuzioni Linux. Tuttavia, il comando ifconfig funziona ancora ed è disponibile per la maggior parte delle distribuzioni Linux.

Nota: esegui un backup del file di configurazione prima di apportare qualsiasi modifica.

1. Configura permanentemente l'indirizzo IP statico in Linux

Per configurare in modo permanente un indirizzo IP statico in Linux, è necessario aggiornare o modificare il file di configurazione di rete per assegnare un indirizzo IP statico a un sistema. Devi essere un superutente con un comando su (cambia utente) dal terminale o dal prompt dei comandi.

Imposta l'indirizzo IP statico nei sistemi RHEL

Apri e modifica i file di configurazione di rete per (eth0 o eth1) utilizzando il tuo editor di testo preferito. Ad esempio, assegnando l'indirizzo IP all'interfaccia eth0 come segue sulle distribuzioni basate su RHEL.

vi /etc/sysconfig/network-scripts/ifcfg-eth0     [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]

Imposta l'indirizzo IP statico nei sistemi Debian

Per configurare l'indirizzo IP statico permanente, è necessario modificare il file di configurazione dell'interfaccia di rete /etc/network/interfaces per apportare modifiche permanenti come mostrato di seguito per le distribuzioni basate su Debian.

sudo nano /etc/network/interfaces     [On Debian, Ubuntu and Mint]

Successivamente, riavvia i servizi di rete dopo aver inserito tutti i dettagli utilizzando il seguente comando.

sudo systemctl restart networking

2. Configurare temporaneamente l'indirizzo IP statico in Linux

Per configurazioni di rete temporanee, puoi utilizzare il comando ip per assegnare al volo un indirizzo IP a un'interfaccia specifica (eth2).

ip addr add 172.19.1.10/24 dev eth2
OR
sudo ip addr add 172.19.1.10/24 dev eth2

Nota: purtroppo tutte queste impostazioni andranno perse dopo il riavvio del sistema.

3. Come visualizzare tutte le interfacce di rete

Nel comando ip, l'oggetto collegamento rappresenta l'interfaccia di rete. Possiamo utilizzare il comando mostra per visualizzare tutte le interfacce di rete.

Ora visualizziamo tutte le interfacce di rete utilizzando il seguente comando:

ip link show

L'output sopra mostra i dettagli di tutte le interfacce di rete, come nome dell'interfaccia, flag, stato, indirizzo di collegamento, indirizzo di trasmissione, ecc.

4. Come verificare un indirizzo IP di un'interfaccia di rete specifica

Per ottenere informazioni approfondite sulla tua singola interfaccia di rete come indirizzo IP e informazioni sull'indirizzo MAC, utilizza il seguente comando come mostrato di seguito.

ip link show eth2

Finora abbiamo utilizzato l'oggetto collegamento per visualizzare informazioni dettagliate sulle interfacce di rete. Tuttavia, non mostra l'indirizzo IP associato all'interfaccia di rete. Per superare questa limitazione possiamo utilizzare l'oggetto addr con il comando ip.

Capiamolo con un esempio.

ip addr show

Qui possiamo vedere che ora l'output mostra gli indirizzi IP di tutte le interfacce di rete insieme ad altri dettagli.

Per visualizzare l'indirizzo IP della singola interfaccia di rete, è sufficiente fornire il nome dell'interfaccia di rete come argomento del comando.

ip addr show eth2

5. Come visualizzare l'indirizzo IP nell'output colorato

Il comando ip mostra informazioni dettagliate sugli oggetti di rete. Tuttavia, a volte è necessario dare un'occhiata alle informazioni limitate. In questi casi, possiamo abilitare l'output colorato. Questa opzione evidenzia i dettagli importanti in diversi colori.

Usiamo l'opzione --color del comando per visualizzare l'output in diversi colori:

ip --color addr show eth2

Nell'output sopra, possiamo vedere che il nome dell'interfaccia, l'indirizzo Ethernet e lo stato sono evidenziati in diversi colori.

6. Come visualizzare l'indirizzo IP in formato JSON

Negli esempi precedenti abbiamo visto che il comando ip mostra informazioni significative. Tuttavia, non è un compito facile analizzare l’output grezzo ed estrarre informazioni significative utilizzando script rudimentali. In questi casi, possiamo istruire il comando ip a generare l'output in un formato JSON.

Quindi, utilizziamo l'opzione -j con il comando per visualizzare lo stesso output in un formato JSON:

ip -j link show eth2

Questo metodo è utile durante l'automazione perché JSON è un formato ampiamente accettato e sono disponibili molte librerie/strumenti parser JSON in vari linguaggi di programmazione.

7. Come rendere l'output JSON più leggibile

Nell'esempio precedente, abbiamo utilizzato l'opzione -j per visualizzare l'output in un formato JSON. Questo formato JSON predefinito è compatto ed efficiente in termini di spazio. Tuttavia, l'output non è facile da leggere a causa della mancanza di rientro.

Per superare questa limitazione, possiamo usare l'opzione -p che rende l'output più leggibile indentandolo. Capiamolo con l'esempio seguente:

ip -j -p link show eth2

Qui possiamo vedere che lo stesso output è molto più leggibile rispetto agli esempi precedenti.

8. Come rimuovere un indirizzo IP dall'interfaccia di rete

Nell'esempio precedente, abbiamo utilizzato il sottocomando add per assegnare un indirizzo IP. In modo simile, possiamo utilizzare il sottocomando del per rimuovere un particolare indirizzo IP.

Il seguente comando rimuoverà un indirizzo IP assegnato dall'interfaccia specificata (eth2).

ip addr del 172.19.1.10/24 dev eth2
OR
sudo ip addr del 172.19.1.10/24 dev eth2

Adesso verifichiamo che l’indirizzo IP sia stato rimosso:

ip -j -p addr show eth2

Nell'output sopra, possiamo vedere che l'attuale interfaccia di rete eth2 ha un solo indirizzo IP.

9. Come abilitare l'interfaccia di rete

Il flag "up" con il nome dell'interfaccia (eth2) abilita un'interfaccia di rete. Ad esempio, il seguente comando attiverà l'interfaccia di rete eth2.

ip link set eth2 up
OR
sudo ip link set dev eth2 up

Ora controlliamo lo stato aggiornato:

ip -j -p link show eth2 | grep operstate

10. Come disattivare l'interfaccia di rete

Il flag "giù" con il nome dell'interfaccia (eth2) disabilita un'interfaccia di rete. Ad esempio, il seguente comando disattiverà l'interfaccia di rete eth2.

ip link set eth2 down
OR
sudo ip link set eth2 down

Ora controlliamo lo stato dell'interfaccia di rete eth2:

ip -j -p link show eth2 | grep operstate

L'output sopra mostra lo stato modificato dell'interfaccia di rete.

11. Come svuotare gli indirizzi IP dell'interfaccia di rete

Nell'esempio precedente abbiamo visto come utilizzare un sottocomando del per rimuovere un indirizzo IP. Tuttavia, a volte è necessario rimuovere tutti gli indirizzi IP di una particolare interfaccia di rete. In questi casi possiamo utilizzare il sottocomando flush.

Innanzitutto, utilizza il sottocomando flush per rimuovere tutti gli indirizzi IP dell'interfaccia di rete eth2:

sudo ip addr flush eth2

Ora controlliamo che tutti gli indirizzi IP dell'interfaccia di rete eth2 siano stati rimossi:

ip -j -p addr show eth2

Nell'output precedente, il campo addr_info mostra l'array JSON vuoto. Ciò indica che non esiste alcun indirizzo IP associato all'interfaccia di rete eth2.

12. Come posso controllare la tabella di routing

Una tabella di routing memorizza le informazioni necessarie per inoltrare un pacchetto di rete alla destinazione corretta. Possiamo utilizzare l'oggetto route del comando ip per visualizzare le regole di routing.

Usiamo il comando seguente per elencare tutte le regole della tabella di routing:

ip route show

Nell'output precedente, la prima colonna rappresenta la destinazione mentre l'ultima colonna rappresenta l'indirizzo IP di origine.

13. Come faccio ad aggiungere un nuovo percorso statico

Perché è necessario aggiungere percorsi statici o percorsi manuali, poiché il traffico non deve passare attraverso il gateway predefinito? Dobbiamo aggiungere percorsi statici per far passare il traffico dal modo migliore per raggiungere la destinazione.

sudo ip route add 172.19.1.0/24 dev eth2 proto kernel scope link src 172.19.1.2

Ora verifichiamo che la voce sia stata aggiunta correttamente:

ip route show

15. Come rimuovere il percorso statico

Il sottocomando del rimuove una voce particolare dalla tabella di routing. Ad esempio, il comando seguente rimuove la voce del percorso del dispositivo eth2:

sudo ip route del 172.19.1.0/24

Ora verifichiamo che la voce sia stata rimossa con successo:

ip route show

16. Come faccio ad aggiungere percorsi statici permanenti

Tutti i percorsi sopra indicati andranno persi dopo il riavvio del sistema. Per aggiungere un percorso statico permanente, modifica il file /etc/sysconfig/network-scripts/route-eth2 (Stiamo memorizzando il percorso statico per (eth2). Per impostazione predefinita, il Il file route-eth2 non sarà presente e dovrà essere creato.

Imposta il percorso permanente nei sistemi RHEL

vi /etc/sysconfig/network-scripts/route-eth2

e aggiungi le seguenti righe, salva ed esci.

172.19.1.0/24 via 172.19.1.2 dev eth2

Imposta il percorso permanente nei sistemi Debian

Apri il file /etc/network/interfaces e alla fine aggiungi le rotte statiche di persistenza. Gli indirizzi IP possono variare in base all'ambiente.

sudo vi /etc/network/interfaces
auto eth2
iface eth2 inet static
address 172.19.50.2
netmask 255.255.255.0
gateway 172.19.50.100
#########{Static Route}###########
up ip route add 172.19.1.0/24 via 172.19.1.2 dev eth2

Successivamente, riavvia i servizi di rete dopo aver inserito tutti i dettagli utilizzando il seguente comando.

sudo systemctl restart networking

17. Come faccio ad aggiungere il gateway predefinito

Nel networking, il gateway predefinito gioca un ruolo importante. Viene utilizzato quando la tabella di routing non contiene alcuna informazione sulla destinazione.

Il gateway predefinito può essere specificato a livello globale o per file di configurazione specifici dell'interfaccia. Il vantaggio del gateway predefinito è che nel sistema è presente più di una scheda NIC. Puoi aggiungere al volo il gateway predefinito come mostrato sotto il comando.

Per prima cosa aggiungiamo un'interfaccia di rete eth0 come gateway predefinito:

sudo ip route add default via 172.17.0.1

Ora verifichiamo l'impostazione del gateway predefinito utilizzando il seguente comando:

ip route show

Tieni presente che abbiamo eseguito questo comando su una macchina di prova. Fare attenzione durante l'utilizzo di questo comando nell'ambiente di produzione.

18. Come rimuovere un gateway predefinito

Possiamo usare il seguente comando per rimuovere il gateway predefinito:

sudo ip route del default

Ora elenchiamo la tabella di routing per verificare che il gateway predefinito sia stato rimosso:

ip route show

19. Come visualizzare la cache ARP

ARP sta per Address Risoluzione Protocol, che viene utilizzato per trovare l'indirizzo MAC associato a un particolare indirizzo IP.

Possiamo utilizzare l'oggetto neigh con il comando ip per visualizzare la cache ARP:

ip neigh show

Nel comando precedente, neigh rappresenta gli oggetti vicini.

20. Come aggiungere una voce ARP

Per creare una nuova voce ARP, possiamo utilizzare il sottocomando add con l'oggetto neigh.

sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2

Ora elenchiamo le voci della cache ARP:

ip neigh show

Nell'output sopra possiamo vedere la nuova voce per l'interfaccia di rete eth2.

21. Come rimuovere una voce ARP

Come altri oggetti di rete, possiamo utilizzare il sottocomando del per rimuovere la voce ARP. Ad esempio, il comando seguente rimuove la voce ARP dell'interfaccia di rete eth2:

sudo ip neigh del 172.19.1.0 dev eth2

Ora verifichiamo che la voce sia stata rimossa elencando la cache ARP:

ip neigh show 

22. Come svuotare le voci ARP

Possiamo utilizzare il sottocomando flush per rimuovere più voci ARP. Per capirlo, aggiungi innanzitutto alcune voci ARP con lo stato STALE:

sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2 nud stale
sudo ip neigh add 172.19.2.0 lladdr 02:42:e3:40:a6:b2 dev eth2 nud stale
sudo ip neigh add 172.19.3.0 lladdr 02:42:e3:40:a6:b3 dev eth2 nud stale

Successivamente, verifica che le nuove voci siano state aggiunte correttamente:

ip neigh show

Quindi, svuota tutte le voci utilizzando il comando seguente:

sudo ip neigh flush all

Infine, verifica che tutte le voci siano state rimosse:

ip neigh show

23. Come impostare MTU per l'interfaccia di rete

MTU sta per Unità massima di trasmissione, che rappresenta la dimensione del pacchetto più grande che può essere trasmessa in una singola transazione. Possiamo manipolare la dimensione della MTU in base ai nostri requisiti prestazionali.

Per prima cosa troviamo la MTU dell'interfaccia di rete eth2:

ip -j -p link show eth2 | grep mtu

Successivamente, aggiorna la dimensione MTU dell'interfaccia di rete eth2 a 3000:

sudo ip link set mtu 3000 dev eth2

Infine, verifica che la MTU sia stata aggiornata correttamente:

ip -j -p link show eth2 | grep mtu

24. Come modificare l'indirizzo Mac di rete

Il comando ip ci permette di modificare l'indirizzo MAC dell'interfaccia di rete. Per raggiungere questo obiettivo possiamo utilizzare il sottocomando set con l'oggetto link:

Innanzitutto, elenca l'attuale indirizzo MAC dell'interfaccia di rete eth2:

ip -j -p link show eth2 | grep address

Successivamente, modifica l'indirizzo MAC dell'interfaccia di rete utilizzando il comando seguente:

sudo ip link set dev eth2 address 02:42:ac:13:01:03

Infine, verifica che l'indirizzo MAC sia stato modificato:

ip -j -p link show eth2 | grep address

Consulta la pagina manuale che esegue man ip dal terminale/prompt dei comandi per saperne di più sul comando IP.

man ip
Conclusione

In questo articolo abbiamo discusso alcuni esempi comuni del comando ip. È possibile utilizzare questi esempi nella vita di tutti i giorni per eseguire l'amministrazione della rete.

Conosci qualche altro miglior esempio del comando ip in Linux? Fateci sapere le vostre opinioni nei commenti qui sotto.