Risoluzione degli indirizzi e instradamento nelle reti IP

Ieri sono stato rompiballe al GLM, ma si trattava di chiarire una questione purtroppo poco chiara, almeno per me.

Sì è parlato di firewall, così bisognava anche impostare delle tabelle di routing e fare esempi di instradamenti “strani”.

Il primo aspetto che ho dovuto chiarire riguardo all’instradamento dei pacchetti è che una macchina che vuole contattare un ip fuori dalla classe della sottorete in uso, manda questo pacchetto comunque alla macchina collegata su quel link. Es.:

  1. sottorete configurata 10.0.0.0/24
  2. macchina mittente con ip 10.0.0.5 invia un pacchetto ip con sorgente 192.168.0.201 e destinazione 192.168.0.200
  3. macchina collegata alla sottorete 10.0.0.0/24 con ip 10.0.0.1 riceve comunque questo pacchetto e prova a farci qualcosa: risolve e invia alla macchina destinazione se riesce ed è configurato per questo, altrimenti lo butta.

Secondo aspetto: se una macchina ha un ip facente parte di una certa sottorete, essa cercherà di risolvere gli indirizzi a livello link (livello 2) dell’OSI Model, vale a dire a livello mac address per le reti ethernet. Es.

  1. macchina mittente 192.168.0.201, sottorete configurata 192.168.0.0/24 (cioè netmask 255.255.255.0) invia pacchetto a 192.168.0.200
  2. la risoluzione dell’indirizzo viene fatta così (protocollo ethernet):
    1. ARP asks who has 192.168.0.201
    2. nessuna risposta
    3. ritorna al punto A. fino ad un timeout
    4. butta il pacchetto.

Vale a dire che c’è una sorta di pairing tra il protocollo ethernet e il protocollo IP relativo alla sottorete, oppure tra la sottorete IP e la scheda di rete relativa. Questo rafforza il concetto di sottorete e netmask dicendo: questa sottorete è risolta tramite ethernet.

Si solleva ora un altro dubbio:

la sottorete è univocamente assegnata ad una interfaccia ethernet? Vale a dire se assegno ad eth0 la sottorete 10.0.0.0/24, non posso assegnare ad eth1 la stessa sottorete 10.0.0.0/24? – Da quello che trovo non è obbligatorio, dipende dal software, cioè dal sistema operativo, ma è altamente sconsigliato: si avrebbero gli stessi messaggi di richiesta a livello link (OSI Model level 2) sulle 2 sottoreti, e richiede, a livello di sistema operativo una tabella con riferimento alla interfaccia. (in Linux la tabella ARP ha una colonna relativa all’interfaccia, quindi questa limitazione non c’è)

Quindi: una sottorete può essere risolta tramite più interfaccia, e al limite utilizzando diversi protocolli di livello 2 (non mi è mai capitato di vedere un protocollo diverso da ethernet a livello link, ma è possibile).

Passando ad IPV6 la cosa dovrebbe farsi interessante, di fatto il protocollo impone di mandare il pacchetto specificando il destinatario finale effettivo: tipicamente il NAT non è previsto. Lo spazio degli indirizzi è talmente ampio che non c’è bisogno di NAT, ma comunque il pacchetto viene gestita dalla macchina deputata al routing, sempre. Cioè la macchina deputata al routing gestisce tutti i pacchetti, quindi li instrada verso il destinatario della sottorete. …. da vedere.

Pubblicato da

kruks

A Programmer with no comics passions ;)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*