next up previous contents
Next: Il comando ping Up: La configurazione manuale della Previous: Il comando ifconfig   Contents


Il comando route

Avere attivato l'interfaccia ed averle assegnato un numero di IP è solo il primo passo, perché sia possibile utilizzare la rete occorre anche settare l'instradamento (in sostanza attaccare un telefono alla presa non basta se poi non viene registrato sulla centralina di smistamento). Anche in questo caso non vi serve la Telecom, ma il comando route, che si chiama così proprio perché serve a specificare la strada che i pacchetti devono prendere per arrivare a destinazione.

In sostanza quello che dovete fare è dire al computer a chi deve rivolgersi quando vuole parlare con qualcuno (come qual'è il numero del centralino, quali numeri sono diretti, ecc.). Se invocato senza parametri il comando vi mostra lo stato attuale delle tabelle di instradamento. Ad esempio:

[root@havnor root]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
194.177.127.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.168.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
0.0.0.0         194.177.127.1   0.0.0.0         UG    0      0        0 eth0
(si è specificata l'opzione -n per avere un output con i valori numerici). L'output del comando mostra le strade disponibili; la prima colonna identifica la destinazione, la seconda il gateway (cioè il centralino per quella destinazione), la terza la sottorete coperta dalla destinazione, l'ultima l'interfaccia usata per l'invio dei pacchetti (il significato delle altre colonne è più esoterico e vi lascio alla spiegazione della pagina del manuale).

In questo caso si può notare come ci siano tre diverse destinazioni associate a tre diverse sottoreti, di cui due fanno capo alla stessa interfaccia (quella che in sez. 3.1 abbiamo visto essere multihomed). Per tutte queste, essendo le strade accessibili direttamente da una interfaccia locale, non esiste gateway (è come per le telefonate all'interno dell'ufficio, non c'è bisogno di usare il centralino) e questo è indicato dall'indirizzo nullo in seconda colonna.

Qualora l'accesso fosse condizionato al passaggio da una macchina specifica (come nel caso l'accesso alla sottorete 192.168.168.0 da parte di una macchina che sta sulla LAN attaccata ad eth0) si sarebbe dovuto specificare un gateway. L'ultima riga indica invece quello che è il default gateway, cioè l'indirizzo cui devono essere inviati i pacchetti che non hanno una strada specificata altrimenti; in tal caso la destinazione è indicata dall'indirizzo nullo (che fa le veci della wildcard).

In realtà se avete una sola interfaccia e non uscite dalla rete locale non c'è bisogno di chiamare esplicitamente route; infatti tutte le volte che tirate su una interfaccia la strada per la rete a cui l'indirizzo è associato viene inserita automaticamente.

Per questo in generale quello che si deve fare in più (a meno di non avere esigenze particolari) è di specificare qual'è il default gateway (cioè l'indirizzo che si usa per uscire in internet); questo si fa con il comando:

[root@havnor root]# route add default gw 194.177.127.1
(ovviamente dato da root, altrimenti non funziona).

Si tenga presente che, come nel caso precedente in cui il default gateway è specificato per qualunque indirizzo, la tabella di instradamento può contenere più strade per la stessa destinazione. In genere il kernel le riordina, eseguendo il controllo su quale direzione far prendere ad un pacchetto, a partire dalla strada più specifica, ed esegue l'instradamento non appena trova una strada valida. Così nel caso dell'esempio precedente i pacchetti destinati all'indirizzo 194.177.127.243 non arrivaranno mai al gateway, ma saranno mandati immediatamente sulla scheda di rete corrispondente a eth0.


next up previous contents
Next: Il comando ping Up: La configurazione manuale della Previous: Il comando ifconfig   Contents
Simone Piccardi 2002-08-08