Ti avevo chiesto anche l'output del comando "route" senza opzioni...
Ti riporto i miei e cominciamo da li.
Codice: Seleziona tutto
#route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.0.0.1 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 * 255.255.255.0 U 0 0 0 eth0
#route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
Come vedi nella prima riga di "Destination" (nelle due versioni) hai "default" e "0.0.0.0"... ciò significa che è un diverso modo di esprimere lo stesso concetto.
Nella colonna "Gateway", 0.0.0.0 è "visto" come "non specificato", perciò nel primo comando è segnato con "*"
http://unix.stackexchange.com/questions ... -a-gateway
Veniamo ora al tuo output:
toni00c ha scritto:Codice: Seleziona tutto
john@gold:~$ 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 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
Supponiamo che hai un altro computer collegato al tuo router che ha un indirizzo IP 192.168.0.5.
Quando mandi un pacchetto dati per stabilire quale interfaccia usare, prima cosa vengono cercate le corrispondenze con le righe che non hanno Gateway ( UG ).
L'IP corrisponde agli indirizzi della terza riga.
Come mai? Perchè la terza riga dice: inoltra con l'interfaccia eth0 gli IP che rientrano nel range 192.168.0.1 - 192.168.0.254 (192.168.0.255 usato come broadcast).
Come fa a determinare il range? Con il Genmask.
Prende l'IP destinazione ( 192.168.0.5 ) , effettua un AND con 255.255.255.0 --> 192.168.0.0
L'IP calcolato corrisponde con quanto riportato nella colonna destinazione? SI.
Inoltro il pacchetto.
Se al posto di 255.255.255.0 ( /24 ) ci fosse stato 255.255.0.0 ( /16 ), il range sarebbe stato 192.168.0.0 - 192.168.255.254 ( 192.168.255.255 usato come broadcast).
Quando vuoi inoltrare un pacchetto ad un IP che non è esplicitamente presente nelle righe "senza il broadcast", il computer non saprebbe come comportarsi.
Qui entra in gioco la prima riga che dice: invio i pacchetti (qualunque sia la loro destinazione ( 0.0.0.0 ) all'indirizzo IP 192.168.0.1 ... sarà il computer/router che ha quell'indirizzo ad occuparsi della consegna del pacchetto.
Poniamo vuoi spedire un pacchetto all'IP 212.48.10.173 .
Si prende l'IP 212.48.10.173 e si effettua una AND con 0.0.0.0 (Genmask) --> 0.0.0.0
L'IP calcolato corrisponde con quanto riportato nella colonna destinazione? SI.
Inoltro il pacchetto... ma a chi??? a 192.168.0.1 .