C'est une petite question théorique qui me déroute depuis assez longtemps.
Fondamentalement, si nous sommes à l'intérieur d'un réseau local privé et que nous voulons que les paquets entrants atteignent, par exemple, un serveur HTTP situé sur l'une des machines, nous transmettons les ports afin que les paquets entrants atteignent exactement cet ordinateur.
Maintenant, je suis assez confus quant à la façon dont les paquets de «réponse» atteignent leur destination à l'intérieur d'un LAN, comme lorsque nous ouvrons une page Web ou plus. Je ne trouve pas vraiment d'informations utiles sur ce sujet.
J'espère que quelqu'un pourra me donner quelques indices ou me lier à des informations qui pourraient l'expliquer. Merci.
EDIT: Je pense que je devrais clarifier. Un exemple de ce que je demande serait quelque chose comme ceci:
1. Un ordinateur à l'intérieur d'un LAN avec une seule adresse IP externe essaie de charger une page Web à partir d'un serveur Web en dehors de ce LAN (essentiellement sur Internet)
2 Le serveur Web répond et renvoie la page Web à cet ordinateur.
Ce qui m'embrouille beaucoup à ce stade, comment le routeur sait-il quel ordinateur envoyer les données entrantes (étant donné que le routeur est connecté à un réseau local avec plusieurs ordinateurs) sans transfert de port précédent.
Réponses:
Même si la question a été entièrement couverte. Je pense que ce processus devrait être décrit étape par étape.
Pour cet exemple, je suis assis dans un LAN privé connecté à Internet via un routeur. Parce que notre réseau partage une seule adresse IP publique, nous utilisons NAT.
Ainsi, lorsque je demande la page
superuser.com
qui générera de nombreux paquets IP. Regardons un seul.Source du paquet IP :
192.168.1.12
(mon IP)Destination:
64.34.119.12
(superuser.com)Maintenant, mon système est probablement configuré comme celui en question. J'ai ma propre adresse IP (
192.168.1.12
), un masque de sous-réseau (255.255.255.0
) et une passerelle par défaut (192.168.1.1
). Maintenant, comme mon champ de destination dans mon paquet IP pointe vers un réseau différent du mien, il est envoyé à ma passerelle par défaut (plutôt qu'à l'ordinateur directement).Mais comment le paquet peut-il accéder à la passerelle par défaut, si la destination pointe complètement ailleurs?
Ethernet
C'est facile, car nous utilisons l'adressage du protocole Ethernet pour cela. Nous venons de définir notre adresse IP de destination dans le paquet IP et l'adresse MAC de notre passerelle par défaut comme destination dans la trame Ethernet .
Maintenant, cela garantira que notre passerelle par défaut reçoit le paquet
superuser.com
. Yay!Maintenant, la passerelle a notre paquet et pourrait l'envoyer directement sur son chemin. Mais pour s'assurer qu'il obtiendra la réponse, il doit d'abord remplacer l' adresse source du paquet (sinon
superuser.com
, j'essaierais d'envoyer la réponse à un appareil (éventuellement) inexistant avec mon adresse IP sur leur réseau. Maintenant, ce ne serait pas très agréable.)Mon routeur placera donc son adresse IP publique dans le champ Source :
Source du paquet IP :
92.69.127.243
(mon adresse IP publique)Destination:
64.34.119.12
(superuser.com)Maintenant, ce même jeu continue encore et encore avec tous les routeurs du monde jusqu'à ce que le paquet arrive enfin
superuser.com
et qu'une réponse soit générée.La réponse
Réponse IP Packet
Source:
64.34.119.12
(superuser.com)Destination:
92.69.127.243
(mon IP publique)Ok, la réponse est arrivée à mon routeur, et maintenant? Comment mon routeur sait-il maintenant envoyer la réponse
192.168.1.12
?TCP
Eh bien, cela fonctionne réellement parce que nous n'avons examiné que les parties IP et Ethernet de la communication. Ce qui fait que cela fonctionne, c'est la partie TCP.
Vous savez très probablement que les serveurs Web fonctionnent généralement sur le port
80
. IP n'a aucune notion de ports . Cela vient de TCP . En TCP, nous avons (comme en IP) un port source et de destination .Mon paquet TCP vers superuser.com
Source:
192.168.1.12
(mon IP)Port source:
11111
(le port créé par mon ordinateur)Destination:
64.34.119.12
(superuser.com)Port de destination:
80
Lorsque votre routeur envoie ce paquet initial (qui est adressé au
superuser.com
port80
), il y mettra un nouveau port source (comme12345
).Et c'est la partie importante! Il se souviendra de ce remplacement!
Paquet TCP de mon routeur vers superuser.com
Source:
92.69.127.243
(mon IP publique)Port source:
12345
(le port créé par mon routeur)Destination:
64.34.119.12
(superuser.com)Port de destination:
80
Ainsi, le paquet de réponses reçu par le routeur ressemble en fait à ceci:
Répondre au paquet TCP de superuser.com
Source:
64.34.119.12
(superuser.com)Port source:
80
Destination:
92.69.127.243
(mon IP publique)Port de destination:
12345
(le port que mon routeur a constitué)Alors maintenant, il obtient ce paquet et voit que c'est pour un port dont il se souvenait précédemment a été affecté aux opérations NAT pour l'adresse IP
192.168.1.12
(mon adresse IP).Répondre au paquet TCP depuis mon routeur
Source:
64.34.119.12
(superuser.com)Port source:
80
Destination:
192.168.1.12
(mon IP)Port destination:
11111
(le port que mon ordinateur a créé)la source
Traduction d'adresses réseau . En bref, lorsque le routeur de passerelle du réseau local privé remplace l'adresse source du réseau local privé par sa propre adresse publique, il modifie le paquet d'une manière telle que l'attribution d'un numéro de port unique et autrement sans signification locale qu'il mappe au nœud LAN d'origine et la demande sortante . Il se souvient de ce mappage de port, donc lorsqu'une réponse revient à l'IP public / port unique #, il (le routeur) sait comment le démapper à celui de son nœud d'origine. C'est également de cette façon que vous pouvez exécuter plusieurs onglets, navigateurs ou instances de navigateur et les réponses à chaque demande de navigateur reviennent au navigateur et à l'onglet corrects.
la source
Lorsqu'un paquet initial arrive à l'interface externe du routeur, il modifie l'adresse IP de destination du paquet selon la configuration de redirection de port et transmet le paquet modifié sur l'interface interne du routeur (après l'ARP habituel si nécessaire)
Le paquet atteint le serveur Web et possède toujours une adresse IP source externe qui sera utilisée comme adresse de destination pour toute réponse. Le serveur adresse en conséquence le ou les paquets de réponse sortants de la manière habituelle avec une adresse IP de destination égale à l'adresse IP source de la demande. Étant donné que l'adresse IP du demandeur est externe, le paquet est adressé, au niveau de la couche MAC, à l'interface interne du routeur.
Notez qu'il existe différentes cibles dans chaque couche réseau.
la source
La redirection de port est généralement effectuée sur un routeur ou un périphérique adjacent. Lorsqu'un périphérique sur un LAN envoie du trafic vers un autre périphérique sur ce même LAN, le routeur n'est pas impliqué du tout. Le trafic n'y touche même pas. Vos règles de transfert de port n'auront aucun effet sur le trafic LAN à LAN.
Ethernet a été conçu avec une topologie de "bus" à l'esprit où chaque ordinateur était physiquement connecté au même support. Alors que les commutateurs modernes optimisent le flux de trafic en apprenant l'adresse MAC à l'autre extrémité du port et en répliquant le trafic en conséquence, la topologie «bus» demeure. Tout ce qui est connecté à un commutateur standard peut atteindre "directement" n'importe quoi d'autre (en supposant qu'il se trouve dans le même sous-réseau) sans avoir à "passer" par un périphérique intermédiaire tel qu'un routeur.
Vous pouvez être confus si le périphérique auquel vous connectez tous les ordinateurs possède plusieurs ports Ethernet "LAN" puis un seul port "WAN". Ces types de périphériques sont en fait à la fois un routeur et un commutateur dans le même châssis.
Ainsi, à l'intérieur de votre LAN, si votre serveur HTTP a l'adresse 192.168.1.55, pour l'atteindre à l'intérieur de votre LAN, vous devrez taper " http://192.168.1.55 " dans la barre d'adresse de votre navigateur. Le routeur ne le voit jamais. Pour l'atteindre en dehors de votre LAN, vous aurez besoin de taper votre IP externe, c'est-à-dire " http://256.99.88.77 : {le port que vous avez redirigé ici}" ou quoi que ce soit. Cela frappe votre routeur, la fonction NAT du routeur fonctionne dessus, puis le routeur l'envoie à 192.168.1.55.
la source
Tout simplement, lorsqu'un ordinateur à l'intérieur du LAN privé initie une connexion sortante, la passerelle NAT génère automatiquement un mappage de port pour elle. Ils sont à peu près les mêmes que les mappages de ports que vous avez entrés manuellement auparavant: {port public, adresse privée, port privé}, et sont utilisés de la même manière. La plus grande différence avec les mappages dynamiques est que la passerelle NAT doit souvent attribuer arbitrairement les ports publics pour les mappages, lorsque le numéro de port attendu est déjà utilisé.
la source