Tag: ip

  • 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.