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.:
- sottorete configurata 10.0.0.0/24
- macchina mittente con ip 10.0.0.5 invia un pacchetto ip con sorgente 192.168.0.201 e destinazione 192.168.0.200
- 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.
- 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
- la risoluzione dell’indirizzo viene fatta così (protocollo ethernet):
- ARP asks who has 192.168.0.201
- nessuna risposta
- ritorna al punto A. fino ad un timeout
- 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.