Come scrissi più di 2 anni or sono, gli strumenti di gestione della rete (spesso chiamati net-tools)ifconfig
, netstat
e route
che dovrebbero essere familiari a tutti coloro che hanno lavorato con un terminale, sono stati deprecati in favore della suite iproute2 da alcuni anni.
iproute2 è destinata a sostituire la suite completa di strumenti di rete legacy Unix che sono stati precedentemente utilizzati per le attività di configurazione delle interfacce di rete, le tabelle di routing, e la gestione della tabella ARP, ma che non sono stati sviluppati a partire dal 2001.
Potete trovare alcuni esempi di utilizzo dei comandi iproute sui miei articoli su:
– Policy routing
– Socket Statistics su Linux
– Gestione del MAC Address su Linux
E oggi voglio condividere con voi alcuni dei comandi più utili che è possibile utilizzare con questa “nuova” suite di comandi e la traduzione di alcuni comandi vecchi eravamo tutti abituati a utilizzare sul terminale.
Configurazione dell’interfaccia
Con questa operazione è possibile impostare l’interfaccia e configurare un indirizzo IP su di essa, nella maniera classica, si usavano 2 comandi ifconfig:
[root@myserver.com ~]# ifconfig eth0 up [root@myserver.com ~]# ifconfig eth0 192.168.1.1 netmask 255.255.255.0 |
Con iproute2, il controllo dell’interfaccia – sia fisica che logica – è attraverso il sottocomando link. Tirare su l’eth0 può essere fatto con
[root@myserver.com ~]# ip link set eth0 up |
Mentre per aggiungere un indirizzo IP ad una interfaccia è possibile utilizzare:
[root@myserver.com ~]# ip addr add 192.0.2.1/24 dev eth0 |
Se preferite potete usare anche questa notazione:
[root@myserver.com ~]# ip addr add 192.0.2.1 255.255.255.0 dev eth0 |
Per verificare il risultato, o semplicemente controllare che indirizzi IP sono configurati sul proprio sistema è possibile utilizzare:
[root@myserver.com ~]#ip addr ls [root@myserver.com ~]#ip addr show [root@myserver.com ~]#ip addr ls eth0 |
I primi 2 comando danno esattamente lo stesso output, mentre il terzo mostra solo l’IP del dispositivo eth0.
Creazione di alias ethernet
Supponendo che il vostro IP di eth0 sia 192.0.2.1 e si desideri creare un alias eth0: 0 con IP 192.0.2.2. Si poteva usare:
ifconfig eth0:0 192.0.2.2 up |
Dove la chiave era mettere :numero per indicare che l’IP è un alias, con iproute2 si può semplicemente utilizzare lo stesso comando:
[root@myserver.com ~]# ip addr add 192.0.2.2 255.255.255.0 dev eth0 |
Routing
Qual è l’alternativa moderna del comando route -n
?
Un semplice:
[root@myserver.com ~]# ip ro |
L’output è leggermente diverso, ma si ottengono esattamente le stesse informazioni:
[me@mydesktop ~] route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlan0 192.168.0.0 0.0.0.0 255.255.255.0 U 9 0 0 wlan0 [me@mydesktop ~] ip ro default via 192.168.0.1 dev wlan0 proto static 169.254.0.0/16 dev wlan0 scope link metric 1000 192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.3 metric 9 |
E per aggiungere e rimuovere route è possibile utilizzare la sintassi ip ro add|del destinazione via gateway
così per aggiungere e rimuovere un percorso verso la 10.0.0.0/16 LAN potrei usare:
[me@mydesktop ~]# ip ro add 10.0.0.0/16 via 192.168.0.1 [me@mydesktop ~]# ip ro del 10.0.0.0/16 via 192.168.0.1 |
Trovare la route per raggiungere un indirizzo IP
Se si dispone di più interfacce e si passa da una all’altra (eth0 per il lavoro, per la casa wlan1, tun0 per vpn) e si desidera ottenere l’ip e il gateway dell’interfaccia effettivamente utilizzata per connettersi a un indirizzo IP provate questo comando:
[root@myserver.com ~]# ip route get IP |
Così, per esempio, è possibile utilizzare l’IP 8.8.8.8 (Google DNS server) per controllare quale interfaccia userà il computer:
[me@mydesktop ~] ip route get 8.8.8.8 8.8.8.8 via 192.168.0.1 dev wlan0 src 192.168.0.3 |
Quindi per raggiungere 8.8.8.8 il mio desktop usa wlan0, il gateway 192.168.0.1 e l’indirizzo IP privato 192.168.0.3
Neighbours
In iproute2 c’è anche un sottocomando equivalente al tradizionale arp -na
usato per conoscere la tabella ARP su una macchina UNIX.
È possibile ottenere lo stesso risultato con iproute2 con ip neighbor
, mentre ip n
è l’abbreviazione estrema:
[me@mydesktop ~] ip neigh 192.168.0.1 dev wlan0 lladdr 00:18:4d:af:a0:64 REACHABLE |
Allora, cosa state aspettando?
E’ ora di passare alla “nuova” suite iproute, i comandi sono facili e potente!
Popular Posts:
- None Found
Awesome article – thanks!
The one thing that articles about iproute2 don’t seem to mention (from the 2 or 3 articles I’ve read) is the “only show interfaces that are up” command, which took me a while to find – here it is if anyone else is curious:
$ ip address show up
shortened to:
$ ip a s up