Comment le routeur sait-il comment acheminer les paquets vers mon terminal?

10

Supposons que j'ai un réseau de 2 ordinateurs, chacun ayant une adresse réseau privée de 192.168.1.101 et 192.106.1.102.

Pour mon adresse IP publique, c'est 10.2.10.172.

Lorsque je fais une demande http à google.com, mon ordinateur enverra un paquet avec l'adresse IP source de 192.168.1.101 au routeur et le NAT la changera en 10.2.10.172.

Ma question est la suivante: lorsque google.com reçoit la demande et renvoie la réponse au 10.2.10.172, comment le routeur sait-il vers quel ordinateur router? (192.168.1.101 ou 192.168.1.102).

Je pensais au numéro de port au début, mais je pense que nous pourrions naviguer sur le même site Web en même temps, donc je ne sais pas comment cela fonctionne ici.

Mc Kevin
la source
1
doublon possible du port NAT de perforation UDP
Sebastian Wiesinger
1
Le réseau 10 est également "non routable interne" - je travaille rapidement dans la file d'attente ce soir, alors peut-être que je suis bonkers ... il doit y avoir une autre couche de NAT pour transformer ce numéro net 10 en routable publick . Quoi qu'il en soit ... McKevin, bienvenue chez Net Eng! Ceci est un softball Q pour ici, mais c'est sur le sujet assez je suppose ...
Craig Constantine
@CraigConstantine Je suis juste un étudiant CCNA, je suppose que cela explique sur le softball Q :)
Mc Kevin

Réponses:

7

NAT
Si vous utilisez statique (one-to-one) NAT , le routeur attribue l' 11.2.10.172adresse IP publique au premier PC (par exemple 192.168.1.101) en essayant d'atteindre google.com. Dans ce cas, les deux PC ne pourront pas communiquer simultanément avec google.com, car la seule adresse IP publique disponible est déjà distribuée.
La table NAT dans le routeur:
11.2.10.172 -> 192.168.1.101

PAT
Dans votre cas, PAT (surcharge NAT) est la solution.
Avec PAT, plusieurs adresses peuvent être mappées sur une IP privée. Lorsqu'un périphérique lance une session TCP / IP, il génère un numéro de port source TCP ou UDP pour identifier de manière unique la session. Lorsque le routeur reçoit ce paquet, il utilise ce numéro de port source pour identifier de manière unique la traduction.

Exemple
PC1 ( 192.168.1.101) envoie une requête HTTP à google.com ( 64.233.161.1) avec un numéro de port source aléatoire (1444). PC1 enverra un paquet avec DA: 64.233.161.1:80 | SA: 192.168.1.101:1444. Lorsque le routeur reçoit ce paquet, il l'insère 11.2.10.172:1444 -> 192.168.1.101:1444dans la table NAT, puis modifie l'adressage L3 du paquet vers DA: 64.233.161.1:80 | SA: 11.2.10.172:1444et le transmet à google.com.
Google répond avec DA: 11.2.10.172:1444 | SA: 64.233.161.1:80. Le routeur reçoit ce paquet et le traduit DA: 192.168.1.101:1444 | SA: 64.233.161.1:80puis le transmet à PC1.

Si PC2 ( 192.168.1.102) envoie un paquet avec le même numéro de port source que PC1, le routeur augmente simplement le numéro de port de 1. Dans ce cas, la table NAT ressemblerait à ceci

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

J'espère que ça aide un peu.

MISE
À JOUR Comme @CraigConstantine l'a remarqué, 10.2.10.172est toujours dans l' espace d'adressage privé, donc je l'ai changé en 11.2.10.172.

Adam Hornyak
la source
vous voulez dire que nous aurons 2 numéros de port dans le paquet? un pour le NAT et un pour le terminal (port http 80)?
Mc Kevin
1
Oui. Le PC envoie un paquet avec <dest: 64.233.161.1:80, source 192.168.1.101>. Le routeur le traduit en <dest: 64.233.161.1:80, source: 10.2.10.172:1317> et l'envoie à Google. Google répond avec <dest: 10.2.10.172:1317, source: 64.233.161.1:80>. Le routeur reçoit le paquet et recherche le mappage 10.2.10.172:1317 dans la table NAT. Recherche la ligne correcte, traduit et envoie le paquet au PC avec <dest: 192.168.1.101, source: 64.233.161.1:80>
Adam Hornyak
1
Un seul dans le paquet. le routeur réécrit l'adresse de destination et les numéros de port pendant la traduction.
Ron Trunk
1
Si nous voulons obtenir toutes les informations techniques (et qui ne le ferait pas?), Le PC attribue un port source qui est ensuite traduit par le périphérique NAT. Ainsi, dans le commentaire d'Adam, la première source ressemblerait vraiment davantage à 192.168.1.101:33123, et de même la destination finale correspondante à la fin de son commentaire serait 192.168.1.101:33123.
Todd Wilcox
1
@ToddWilcox Vous avez raison. Je l'ai oublié. Je mettrai à jour ma réponse.
Adam Hornyak
4

Votre routeur sait où acheminer le trafic car il gère une table de connexions avec état qui sont les relations IPaddress: port source et IPaddress: port de destination. Ceux-ci sont établis en fonction de vos règles de pare-feu, de vos politiques NAT et de quelques autres paramètres (comme le délai d'expiration TCP et UDP). Il y a 4 états possibles: NOUVEAU, ASSOCIÉ, ÉTABLI et INVALIDE. En fonction de vos règles de pare-feu, votre pare-feu détermine l'état dans lequel une connexion doit être. Par conséquent, vous pouvez généralement créer de nouvelles connexions sortantes par défaut, mais seules les connexions RELATED ou ESTABLISHED sont autorisées à entrer si vous créez une règle NAT ou PAT et une stratégie de pare-feu correspondante pour permettre cela.

Ensuite, selon les règles que vous avez configurées (pour le cas d'une NOUVELLE connexion) ou la table de connexion existante (pour le cas d'une connexion ÉTABLIE), un paquet sera autorisé ou refusé.

De plus, une table [ARP] est maintenue, ce qui permet au pare-feu de savoir à quelle adresse MAC physique correspond une adresse IP.

James Shewey
la source