Feb 152013
 

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:

flattr this!

  One Response to “Alcuni utili comandi con iproute2”

  1. 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

 Leave a Reply

(required)

(required)


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>