A questo punto siamo pronti per assegnare un indirizzo ip alla nostra scheda di rete. Per fare questo, potremmo utilizzare il comando ``ifconfig eth0 192.168.200.1'', oppure il più recente:
# ip addr add 192.168.200.1 dev eth0
Eseguiamo ancora una volta il comando ``ip addr'' per vedere il risultato della precedente istruzione:
( . . . )
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast
qlen 100 link/ether 00:c0:df:ae:33:48 brd ff:ff:ff:ff:ff:ff
inet 192.168.200.1/32 scope global eth0
( . . . )
Ecco che ad eth0 è stato assegnato l'indirizzo 192.168.200.1/32. Abbiamo però commesso un errore: quel /32 indica che gli indirizzi ip dei destinatari dei pacchettini uscenti dalla scheda di rete devono avere tutti e 32 i bit uguali a quelli dell'indirizzo della nostra scheda di rete (in pratica, da questa scheda di rete devono uscire solo pacchettini con indirizzo di destinazione 192.168.200.1 (!!)). E questo probabilmente non è quello che volevamo. Va quindi indicata esplicitamente la network mask del dispositivo, che in questo caso sarebbe 255.255.255.0, corrispondente a 11111111.11111111.11111111.00000000 quindi ad un /24. Siamo quindi costretti a correggere il nostro errore dando un comando del tipo:
# ip addr add 192.168.200.1/24 dev eth0
Ancora, questo sarebbe l'output di ``ip addr'':
( . . . )
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast
qlen 100 link/ether 00:c0:df:ae:33:48 brd ff:ff:ff:ff:ff:ff
inet 192.168.200.1/32 scope global eth0
inet 192.168.200.1/24 scope global eth0
( . . . )
Anche qua compare però un errore. Utilizzando ``ifconfig'' era possibile assegnare uno ed un solo indirizzo ip ad una scheda di rete. Con ip questo non è più vero: ogni interfaccia può avere un numero indeterminato di indirizzi ip. Basta semplicemente aggiungere o togliere indirizzi ad una scheda di rete. ifconfig era in grado di fare qualcosa di simile (i famosi alias), ma per lui era necessario creare dei dispositivi virtuali come ``eth0:0'' o ``eth0:1''.
Per correggere l'errore dobbiamo quindi eliminare l'indirizzo 192.168.200.1/32, e per fare questo possiamo utilizzare il comando:
# ip addr del 192.168.200.1/32 dev eth0
Dopo questo comando, ``ip addr'' dovrebbe mostrare la configurazione corretta. Qualcuno di voi avrà poi già provato a ``pingare'' qualche altro computer della rete, con grande delusione, probabilmente. Questo per due motivi:
Per poter configurare le tabelle di routing relative ad un'interfaccia, dobbiamo prima attivarla, dando il comando:
# ip link set eth0 up
Come già indicato prima, ``ip link'' si occupa di gestire le interfacce di rete dal punto di vista fisico. Altre cose che può fare sono: disattivare un dispositivo (ip link set eth0 down), disattivare o attivare l'uso dell'address resolution protocol (ip link set eth0 arp off oppure on), cambiare il nome dell'interfaccia (... eth0 name nuovonome), cambiare l'mtu dell'interfaccia (... eth0 mtu 1300 per esempio), cambiare l'indirizzo hardware dell'interfaccia o l'indirizzo hardware di broadcast (... eth0 address xx:xx:xx:xx:xx:xx oppure ... eth0 broadcast xx:xx:xx:xx:xx:xx) o ancora disattivare o attivare il multicast, l'uso di indirizzi dinamici o cambiare la lunghezza del queue. La maggior parte di questi parametri vi conviene però modificarli soltanto se siete veramente consapevoli dei risultati che volete ottenere e quando comunque l'interfaccia è spenta, cioè impostata ``down''.