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.
Réponses:
NAT
Si vous utilisez statique (one-to-one) NAT , le routeur attribue l'
11.2.10.172
adresse IP publique au premier PC (par exemple192.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 avecDA: 64.233.161.1:80 | SA: 192.168.1.101:1444
. Lorsque le routeur reçoit ce paquet, il l'insère11.2.10.172:1444 -> 192.168.1.101:1444
dans la table NAT, puis modifie l'adressage L3 du paquet versDA: 64.233.161.1:80 | SA: 11.2.10.172:1444
et 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 traduitDA: 192.168.1.101:1444 | SA: 64.233.161.1:80
puis 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 à ceci11.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.172
est toujours dans l' espace d'adressage privé, donc je l'ai changé en11.2.10.172
.la source
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.
la source