web-dev-qa-db-fra.com

Comment les paquets de réponse IP atteignent-ils leur destination à l'intérieur d'un réseau local privé?

C’est une petite question théorique qui me trouble depuis assez longtemps.

Fondamentalement, si nous nous trouvons à l’intérieur d’un réseau local privé et que nous souhaitons que les paquets entrants atteignent, par exemple, un serveur HTTP situé sur l’une des machines, nous transférons les ports de manière à ce que les paquets entrants atteignent exactement cet ordinateur.

Maintenant, je suis assez confus quant à la manière dont les paquets de "réponse" atteignent leur destination à l'intérieur d'un réseau local, par exemple, lorsque nous ouvrons une page Web ou à peu près. Impossible de trouver des informations utiles sur ce sujet.

J'espère que quelqu'un pourra me donner quelques indices ou me relier à des informations susceptibles de 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 réseau local avec une seule adresse IP externe tente de charger une page Web à partir d'un serveur Web situé à l'extérieur de ce réseau (essentiellement sur Internet).
2. Le serveur Web répond et renvoie la page Web à cet ordinateur.

En ce moment, 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 aucune redirection de port préalable?.

23
InsomniaArray

Même si la question a été entièrement couverte. Je pense que ce processus devrait être mieux décrit étape par étape.

Pour cet exemple, je suis assis dans un réseau local privé connecté à Internet via un routeur. Parce que notre réseau partage une seule adresse IP publique, nous utilisons NAT.

Donc, quand je demande la page superuser.com qui va générer beaucoup de paquets IP. Regardons un seul.

Paquet IP
Source: 192.168.1.12 (mon adresse IP)
Destination: 64.34.119.12 (superutilisateur.com)

Maintenant, mon système est probablement configuré de la même manière que 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, parce que mon Destinationchamp de mon paquet IP pointe vers un réseau différentdu mien, il est envoyé à ma passerelle par défaut (plutôt que directement à l’ordinateur).

Mais comment le paquet peut-il atteindre la passerelle par défaut si la Destinationpointe 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 .

Cela garantira que notre passerelle par défaut reçoit le paquet pour superuser.com. Yay!

Maintenant, la passerelle a notre paquet et pourrait l'envoyer directement sur son chemin. Mais pour être sûr qu'il obtiendra la réponse, il doit d'abord remplacer le paquet Sourceaddress (sinon, superuser.com essaierait d'envoyer la réponse à un périphérique (éventuellement) non existant avec mon adresse IP sur leur réseau. Ce ne serait pas très agréable.)
Mon routeur place donc son publicadresse IP dans le champ Source:

Paquet IP
Source: 92.69.127.243 (mon adresse IP publique)
Destination: 64.34.119.12 (superutilisateur.com)

Maintenant, le 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 adresse IP publique)

Ok, la réponse à mon routeur, et maintenant? Comment mon routeur sait-il maintenant envoyer la réponse à 192.168.1.12?

TCP

En fait, cela fonctionne car 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 probablement que les serveurs Web fonctionnent généralement sur le port 80. IP n'a aucune notion de ports . Cela vient de TCP . Dans TCP nous avons (comme dans IP) une source et destination port.

Mon TCP Paquet à superutilisateur.com
Source: 192.168.1.12 (mon adresse IP)
Source Port: 11111 (le port que mon ordinateur a constitué)
Destination: 64.34.119.12 (superutilisateur.com)
Port de destination: 80

Lorsque votre routeur envoie ce paquet initial (adressé à superuser.com sur le port 80), il y insère un nouveau port source (comme 12345).
Et c'est la partie la plus importante! Il se souviendra de ce remplacement!

TCP le paquet de mon routeur à superutilisateur.com
Source: 92.69.127.243 (mon adresse IP publique)
Source Port: 12345 (le port que mon routeur a constitué)
Destination: 64.34.119.12 (superutilisateur.com)
Port de destination: 80

Ainsi, le paquet de réponses reçu par le routeur se présente comme suit:
Réponse TCP Paquet de superuser.com
Source: 64.34.119.12 (superuser.com)
Port source: 80
Destination: 92.69.127.243 (mon adresse IP publique)
Port de destination: 12345 (le port que mon routeur a constitué)

Alors maintenant, il récupère ce paquet et voit que c'est pour un port précédemment mémoriséa été attribué à NAT opérations pour l'adresse IP 192.168.1.12 (mon adresse IP).

Réponse TCP Paquet de mon routeur
Source: 64.34.119.12 (superuser.com)
Port source: 80
Destination: 192.168.1.12 (mon adresse IP)
Port de destination: 11111 (le port que mon ordinateur a constitué)

53
Der Hochstapler

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 de manière à lui attribuer un numéro de port unique et autrement dénué de signification locale qu’il mappe de nouveau au nœud de réseau local d’origine et à la demande sortante. . Il se souvient de ce mappage de port. Ainsi, lorsqu'une réponse revient à l'adresse IP publique/numéro de port unique, il (le routeur) sait comment annuler le mappage vers celui de son nœud d'origine. C’est également ainsi que vous pouvez exécuter plusieurs onglets, navigateurs ou instances de navigateur et que les réponses à chaque demande de navigateur reviennent au navigateur et à l’onglet appropriés.

10
JRobert

Lorsqu'un paquet initial arrive à l'interface externe du routeur, il change l'adresse IP de destination du paquet conformément à la configuration de transfert 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 a toujours une adresse IP source externe qui sera utilisée comme adresse de destination pour toute réponse. En conséquence, le serveur adresse 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.

0
RedGrittyBrick

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 réseau local envoie du trafic à un autre périphérique sur ce même réseau local, le routeur n'est pas impliqué du tout. Le trafic ne le touche même pas. Vos règles de redirection de port n'auront aucun effet sur le trafic de réseau à réseau.

Ethernet a été conçu avec une topologie "bus" dans laquelle chaque ordinateur est physiquement connecté au même support. Alors que les commutateurs modernes optimisent le flux de trafic en apprenant l'adresse MAC située à l'autre extrémité du port et en répliquant le trafic en conséquence, la topologie "bus" est toujours conservée. Tout ce qui est connecté à un commutateur standard peut "directement" accéder à tout le reste (en supposant que ce soit dans le même sous-réseau) sans avoir à "passer par" un périphérique intermédiaire tel qu'un routeur.

Vous risquez de vous perdre 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, dans votre réseau local, si votre serveur HTTP a l'adresse 192.168.1.55, vous devrez taper " http://192.168.1.55 "dans la barre d'adresse de votre navigateur. Le routeur ne le voit jamais. Pour y accéder en dehors de votre réseau local, vous devez entrer votre adresse IP externe, à savoir " http://256.99.88.77 : {le port que vous avez transféré ici. } "ou quoi que ce soit. Ceci frappe votre routeur, la fonction NAT du routeur fonctionne dessus, puis le routeur l'envoie à 192.168.1.55.

0
LawrenceC

Tout simplement, lorsqu'un ordinateur du réseau privé privé initie une connexion sortante, la passerelle NAT génère automatiquement un mappage de port pour celui-ci. Ils correspondent à peu près aux mappages de ports que vous avez saisis manuellement auparavant: {port public, adresse privée, port privé} et sont utilisés à peu près de la même manière. La plus grande différence avec les mappages dynamiques réside dans le fait que la passerelle NAT doit souvent attribuer de manière arbitraire les ports publics aux mappages, alors que le numéro de port attendu est déjà utilisé.

0
Spiff