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.