spacer

Sysresccd-networking it Basic-IP-configuration-tools-on-linux

History


Tool di configurazione in linux per reti di vecchia generazione

Tool per la configurazione delle interfacce

Tutte le differenti distribuzioni unix includono il tool ifconfig per la configurazione delle interfacce di rete. Sotto linux le interfacce di rete sono chiamate eth0, eth2, eth2, …. ifconfig permette di configurare le impostazioni TCP/IP di base di un’interfaccia di rete, come uno o piu’ indirizzi IP statici, le netmask, … ifconfig non va usato quando si utilizzano indirizzi IP dinamici. In quest’ultimo caso, si deve solo far girare il client DHCP (ad esempio dhdpcd o dhclient) che tentera’ di connettersi a un server DHCP sulla stessa LAN in modo da farsi assegnare un indirizzo IP dinamico. Di seguito e’ mostrato come configurare un indirizzo IP sulla prima interfaccia ethernet sul proprio computer:

  ifconfig eth0 192.168.1.1 netmask 255.255.255.0

Tale indirizzo appartiene alla classe privata C di indirizzi IP, significa che la propria interfaccia di rete puo’ comunicare con tutti i computer che hanno un indirizzo che cominci con 192.168.1. che siano connessi con la stessa LAN. Se viene configurato un indirizzo IP statico, ci si assicuri che nessun indirizzo venga selezionato piu’ di una volta all’interno della stessa LAN.

E’ anche possibile configurare piu’ di un indirizzo IP su un'unica interfaccia di rete. Questo procedimento e’ chiamato “IP aliasing”. Significa che l’interfaccia ricevera’ tutti i pacchetti di rete spediti a uno qualunque di tali indirizzi. Tali indirizzi possono sia essere parte della stessa sottorete (ad esempio 192.168.1.1/24 e 192.168.1.2/24) sia a sottoreti differenti (ad esempio 192.168.1.1 e 172.16.1.1/16). Segue un esempio di IP aliasing:

  ifconfig eth0 192.168.1.1 netmask 255.255.255.0
  ifconfig eth0:1 192.168.1.2 netmask 255.255.255.0
  ifconfig eth0:2 172.16.1.1 netmask 255.255.0.0

Tool per la configurazione del routing

E’ possibile che si abbia bisogno di configurare anche il routing sulle proprie macchine appena la configurazione di rete non sia piu’ cosi’ semplice su di esse come un computer con una singola interfaccia. Semplicemente, il routing permette di specificare quale dispositivo di rete o router debba essere utilizzato per spedire pacchetti di rete ad una macchina o ad una sottorete remote.

Tutti i recenti sistemi operativi hanno un comando route per configurare il routing, ma la sintassi puo’ cambiare. Di seguito sono riportati diversi esempi di come configurare il routing con comandi di vecchia generazione di linux:

• Configurare la route di default per utilizzare 192.168.1.254 come gateway:

  route add default gw 192.168.1.254 

• Inviare i pacchetti destinati a 192.168.157.3 attraverso la seconda interfaccia di rete (eth1 nello specifico):

  route add -host 192.168.157.3 dev eth1 

• Inviare i pacchetti destinati alla sottorete 192.168.200.0/24 attraverso un gateway specifico:

  route add -net 192.168.200.0/24 gw 192.168.1.1 

• Cancellare una route precedentemente impostata:

  route del -net 192.168.200.0/24 gw 192.168.1.1 

• Visualizzare la tabella di routing attuale:

  route -n (option -n disables the name resolution) 

La tabella di routing e’ utilizzata per l’instradamento dei pacchetti inviati dal proprio computer. E’ anche utilizzata se il proprio computer viene utilizzato come router. In questo caso deve essere abilitato l’”IP forwarding” con il seguente comando:

  echo 1 > /proc/sys/net/ipv4/ip_forward

Tool di configurazione in linux per reti di nuova generazione

iproute2 e’ una collezione di utilities per sostituire i vecchi tool di rete unix utilizzati in precedenza per la configurazione di interfacce di rete, tabelle di routing e gestione di tabelle ARP. Il comando piu’ importante e’ ip. E’ utilizzabile con diversi sottocomandi che sostituiscono i tool di rete unix di vecchia generazione. iproute2 utilizza i socket netlink per comunicare con il kernel. Questi sono meno limitati dell’interfaccia ioctl utilizzata con ifconfig.

ip address <parametri>: configura l’interfaccia di rete con IPv4 o IPv6 (sostituisce ifconfig)

ip route <parametri>: configura l’instradamento (sostituisce route)

ip rule <parametri>: configura le politiche di instradamento (routing avanzato in linux)

ip neigh <parametri>: gestsce le tabelle ARP (sostituisce il comando arp)

Tool per la configurazione delle interfacce

Dal momento che ip e’ un comando recente, e’ stato progettato per essere in grado di gestire casi complessi. Questa e’ la ragione per cui non si deve ricorrere all’IP aliasing per configurare piu’ indirizzi IP su un interfaccia. Di seguito e’ mostrato un esempio di come configurare due indirizzi IP su eth0:

  ip address add 192.168.1.1/24 dev eth0
  ip address add 192.168.1.2/24 dev eth0

E’ comunque possibile specificare un alias anche se non e’ richiesto, in modo da preservare retrocompatibilita’ con i vecchi tool:

  ip address add 192.168.1.1/24 dev eth0
  ip address add 192.168.1.2/24 dev eth0 label eth0:1

Segue un esempio di cio’ che e’ possibile ottenere quando si elencano gli indirizzi IP configurati sul proprio computer con il comando ip address show:

  1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
      link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
      inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
  2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
      link/ether 00:0c:29:02:8c:8d brd ff:ff:ff:ff:ff:ff
      inet 192.168.157.3/24 brd 192.168.157.255 scope global eth0
      inet 172.16.10.1/16 scope global eth0

Qua, invece, e’ riportato come sbarazzarsi degli indirizzi:

  ip address del 192.168.1.1/24 dev eth0
  ip address del 192.168.1.2/24 dev eth0

Gli errori visualizzati da questo tool possono risultare fuorvianti. Ad esempio RTNETLINK answere: File exists significa che si e’ aggiunto un indirizzo o una route che erano gia’ stati configurati. Nessun file e’ coinvolto in questa operazione:

  # ip address add 192.168.1.2/24 dev eth0 label eth0:1
  RTNETLINK answers: File exists

Routing di base con il comando ip route

Il comando ip consente di effettuare sia routing di base che avanzato, come politiche di instradamento. Questo e’ il motivo per cui il vecchio comando route e’ sconsigliato. Comunque sia questa sezione si occupa solo di routing di base.

Di seguito si trovano diversi esempi di come configurare il routing con ip route:

• Configurare la ruote di dafault in modo da utilizzare 192.168.1.254 come gateway:

  ip route add default via 192.168.1.254 

• Inviare i pacchetti destinati a 192.168.157.3 attraverso la seconda interfaccia di rete (eth1 nello specifico)

  ip route add 192.168.157.3/32 dev eth1 

• Inviare i pacchetti destinati alla sottorete 192,168,200.0/24 attraverso un gatewai specifico:

  ip route add 192.168.200.0/24 via 192.168.1.1 

• Eliminare l’entry precedente dalla tabella di routing:

  ip route del 192.168.200.0/24 

• Visualizzare la tabella di routing attuale:

  ip route show 

• Visualizzare la cache di routing

  ip route show cache 

• Ripulire la cache di routing

  ip route flush cache 

Come detto in precedenza, e’ necessario abilitare l’IP forwarding se si vuole che la propria macchina funzioni da server: echo 1 > /proc/sys/net/ipv4/ip/forward.

spacer