Come fa il router a sapere come instradare i pacchetti al mio terminale?


10

Supponiamo che io abbia una rete di 2 computer, ognuno con un indirizzo di rete privato di 192.168.1.101 e 192.106.1.102.

Per il mio indirizzo IP pubblico, è il 10.2.10.172.

Quando invio una richiesta http a google.com, il mio computer invierà un pacchetto con indirizzo IP di origine 192.168.1.101 al router e il NAT lo cambierà in 10.2.10.172.

La mia domanda è: quando google.com riceve la richiesta e invia la risposta al 10.2.10.172, come fa il router a sapere a quale computer indirizzare? (192.168.1.101 o 192.168.1.102).

All'inizio stavo pensando al numero di porta, ma penso che potremmo navigare nello stesso sito Web allo stesso tempo, quindi non ho idea di come funzioni qui.



1
La rete 10 è anche "non instradabile interna" - Stasera sto lavorando velocemente attraverso la coda, quindi forse sono un disastro ... deve esserci un altro livello di NAT che sta per trasformare quel 10 numero netto in un instradabile pubblico . Comunque ... McKevin, benvenuto su Net Eng! Questa è una Q di softball per qui, ma suppongo sia abbastanza in argomento ...
Craig Constantine

@CraigConstantine Sono solo uno studente CCNA, immagino che questo spieghi sul softball Q :)
Mc Kevin

Risposte:


7

NAT
Se si utilizza statico (one-to-one) NAT , il router assegnerà il 11.2.10.172IP pubblico per il primo PC (ad esempio 192.168.1.101) cercando di raggiungere google.com. In questo caso, i due PC non saranno in grado di comunicare contemporaneamente con google.com, poiché l'unico IP pubblico disponibile è già distribuito.
La tabella NAT nel router:
11.2.10.172 -> 192.168.1.101

PAT
Nel tuo caso PAT (sovraccarico NAT) è la soluzione.
Con PAT, più indirizzi possono essere associati a un IP privato. Quando un dispositivo avvia una sessione TCP / IP, genera un numero di porta di origine TCP o UDP per identificare in modo univoco la sessione. Quando il router riceve questo pacchetto, utilizza quel numero di porta di origine per identificare in modo univoco la traduzione.

Esempio
PC1 ( 192.168.1.101) invia una richiesta HTTP a google.com ( 64.233.161.1) con un numero di porta di origine casuale (1444). PC1 invierà un pacchetto con DA: 64.233.161.1:80 | SA: 192.168.1.101:1444. Quando il router riceve questo pacchetto, lo inserisce 11.2.10.172:1444 -> 192.168.1.101:1444nella tabella NAT, quindi modifica l'indirizzamento L3 del pacchetto in DA: 64.233.161.1:80 | SA: 11.2.10.172:1444e lo inoltra a google.com.
Google risponde con DA: 11.2.10.172:1444 | SA: 64.233.161.1:80. Il router riceve questo pacchetto e lo traduce per DA: 192.168.1.101:1444 | SA: 64.233.161.1:80poi inoltrarlo a PC1.

Se PC2 ( 192.168.1.102) invia un pacchetto con lo stesso numero di porta di origine di PC1, il router semplicemente aumenta il numero di porta di 1. In tal caso la tabella NAT sarebbe simile a questa

11.2.10.172:1444 -> 192.168.1.101:1444
11.2.10.172:1445 -> 192.168.1.102:1444

Spero che aiuti un po '.

AGGIORNAMENTO
Come notato da @CraigConstantine, 10.2.10.172è ancora nello spazio degli indirizzi privati, quindi l'ho cambiato in 11.2.10.172.


quindi vuoi dire che avremo 2 numeri di porta nel pacchetto? uno per il NAT e uno per il terminale (porta http 80)?
Mc Kevin,

1
Sì. Il PC invia un pacchetto con <dest: 64.233.161.1:80, fonte 192.168.1.101>. Il router lo traduce in <dest: 64.233.161.1:80, fonte: 10.2.10.172:1317> e lo invia a Google. Google risponde con <dest: 10.2.10.172:1317, fonte: 64.233.161.1:80>. Il router riceve il pacchetto, cerca il mapping 10.2.10.172:1317 nella tabella NAT. Trova la riga corretta, traduce e invia il pacchetto al PC con <dest: 192.168.1.101, fonte: 64.233.161.1:80>
Adam Hornyak,

1
Solo uno nel pacchetto. il router riscrive l'indirizzo di destinazione e i numeri di porta mentre traduce.
Ron Trunk,

1
Se vogliamo ottenere tutto il tecnico (e chi non lo farebbe?) Il PC assegna una porta sorgente che viene poi tradotta dal dispositivo NAT. Quindi nel commento di Adam la prima fonte sarebbe davvero più simile a 192.168.1.101:33123, e allo stesso modo la destinazione finale corrispondente alla fine del suo commento sarebbe 192.168.1.101:33123.
Todd Wilcox,

1
@ToddWilcox Hai ragione. Ho dimenticato che. Aggiornerò la mia risposta.
Adam Hornyak,

4

Il router sa dove instradare il traffico perché mantiene una tabella di connessioni stateful che sono indirizzo IP di origine: indirizzo IP di porta e destinazione: relazioni di porta. Queste sono stabilite in base alle regole del firewall, alle politiche NAT e ad alcune altre impostazioni (come il timeout TCP e UDP). Esistono 4 stati possibili: NUOVO, CORRELATO, STABILITO e NON VALIDO. In base alle regole del firewall, il firewall determina lo stato in cui deve trovarsi una connessione. Pertanto, in genere, è possibile effettuare NUOVE connessioni in uscita per impostazione predefinita, ma solo le connessioni CORRELATE o STABILITE sono consentite in entrata se si crea una regola NAT o PAT e una politica firewall corrispondente per consentire questo.

Quindi, in base alle regole che hai configurato (per il caso di una NUOVA connessione) o alla tabella delle connessioni esistente (per il caso di una connessione STABILITA) un pacchetto sarà consentito o non consentito.

Inoltre, viene mantenuta una tabella [ARP] che consente al firewall di sapere a quale indirizzo MAC fisico corrisponde un indirizzo IP.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.