Accéder à l'IP interne en utilisant l'IP publique

38

J'ai un modem DSL avec une adresse IP publique ( 201.206.x.x) et j'ai un serveur Web dans mon réseau interne ( 192.168.0.50).

J'ai configuré le modem pour transférer les demandes sur le port 80 à mon serveur Web, donc, si j'accède 201.206.x.xde l'extérieur de mon réseau, il affiche ma page Web, la même chose se produit si j'accède à 192.168.0.50partir d'un ordinateur à l'intérieur de mon réseau.

Maintenant, le problème est que lorsque j'essaie d'accéder à 201.206.x.xpartir de mon réseau interne, le navigateur essaie de se connecter à la configuration du modem DSL, au lieu de rediriger ma demande vers mon serveur Web.

Quels paramètres dois-je modifier dans le modem pour configurer cette redirection?

willvv
la source
Une variante du problème, j'ai plusieurs (2) serveurs d'hébergement et j'ai configuré un DNS (BIND9) pour les requêtes internes. Comment mapper (à différents serveurs d'hébergement) des demandes externes (à une adresse IP publique) en fonction du nom d'hôte?
Kunal B.

Réponses:

20

Le problème est que la réécriture de paquets ne peut généralement avoir lieu que lors de la traversée du pare-feu. De manière générale, les routeurs ne peuvent pas effectuer la réécriture nécessaire lorsque la demande arrive du même réseau vers lequel la demande serait réécrite. La solution courante à ce problème consiste à placer un proxy Web en dehors du réseau qui boucle la demande via votre pare-feu.

Je soupçonne que votre problème spécifique est que vous souhaitez accéder au site Web via son nom d'hôte DNS. Vous pouvez gérer cela en utilisant le DNS "split-horizon", donc il prête attention à l'origine de la demande et répond de manière appropriée: Si la demande provient de l'intérieur de votre réseau, il distribue le 192.168.0.50 aux demandes provenant de votre réseau et l'IP publique à tout le monde.

L'une ou l'autre de ces suggestions pourrait être implémentée sur n'importe quel hôte en dehors de votre réseau, comme une micro-instance Amazon EC2 (gratuite).

Insyte
la source
Merci, même si je pense que je vais m'en tenir à l'édition du fichier HOSTS car c'est essentiellement un site personnel que j'utilise pour les tests des sites sur lesquels je travaille. Le PC n'est même pas opérationnel 24h / 24 et 7j / 7.
3
J'ai résolu ce problème sur mon propre réseau domestique en ajoutant un enregistrement A avec le même nom que mon nom de dyndns externe sur mon propre serveur DNS (également en cours d'exécution sur mon réseau domestique). L'enregistrement A pointe vers l'emplacement approprié dans mon réseau domestique, tout comme l'enregistrement PTR inversé. Mais bien sûr, tout le monde ne gère pas son propre DNS à la maison ...
LawrenceC
14

Je dirais que @Insyte est sur quelque chose quand il / elle parle du problème comme étant un problème de résolution DNS .. ce qui signifie alors que le problème est la réécriture de paquets (lire à nouveau le message @Insyte pour cette explication).

En supposant que vous disposez de la configuration suivante:

  1. IP publique: 201.206.x.y
  2. IP privée: 192.168.0.50
  3. Redirection de port pour les 80 (et 443 si vous utilisez SSL) sur IP 201.206.x.y192.168.0.50

Vous tapez ensuite ce qui suit dans votre navigateur, alors que vous êtes dans votre réseau interne:

http://www.yourwebsite.com

et l'erreur se produit. Alors, solution: pirater votre fichier d'hôtes.

Sous Windows, accédez à C:\windows\system32\drivers\etc\hosts (remarquez qu'il n'y a pas d'extension sur ce fichier). Sous Linux, le fichier se trouve dans /etc/hosts.

Si vous ouvrez ce fichier dans le Bloc-notes, vous pouvez alors voir toutes les entrées utilisées pour remplacer DNS. Si vous souhaitez mettre à jour ce fichier, vous devrez ouvrir le Bloc-notes (ou le programme que vous utilisez pour modifier le fichier) avec des droits d'administrateur - sinon vous ne pourrez pas enregistrer le fichier.

Ajoutez ceci à votre fichier d'hôtes:

192.168.0.50 www.yourwebsite.com

Redémarrez ensuite votre navigateur , entrez l'URL et violà! Ça marche. Cela signifie donc que votre navigateur ne dépend pas de votre DNS pour résoudre votre domaine en IP. Au lieu de cela, nous remplaçons cela et disons: Navigateur, accédez simplement à mon IP interne pour ce nom de domaine, au lieu de demander l'adresse DNS à DNS .

Si vous êtes dans un bureau, vous pouvez demander à toutes les personnes qui ont besoin d'accéder à ce site Web interne, de pirater leur fichier d'hôtes ou si vous avez un DNS interne, vous pouvez ajouter une entrée à cela.

Une autre idée est d'avoir un serveur proxy interne (pour toute navigation sur le web, etc.) puis de pirater le fichier hosts sur le serveur proxy. Cela signifie que votre navigateur dira, Proxy, pouvez-vous s'il vous plaît me procurer la ressourcehttp://www.mywebsite.com et le proxy dit Bien sûr, et parce qu'on m'a dit d'ignorer le DNS pour ce domaine, je vais simplement donner l'IP qui a été codée en dur dans mon fichier d'hôtes .

Pure.Krome
la source
Oui, je l'avais en fait avant de poster, je voulais juste pouvoir y accéder via l'IP réelle, mais je pense que je peux vivre avec cela car mon modem n'a pas de réflexion NAT (comme suggéré par @MaQleod).
3
Qu'en est-il d'un ordinateur portable ou d'un smartphone qui accède fréquemment au même site via un réseau interne ou externe?
TREE
@TREE pouvez-vous m'explorer. Je n'ai pas bien compris votre question.
Pure.Krome
J'ai une configuration très similaire, sauf que j'utilise des noms de domaine. Donc, de l'extérieur du réseau, mon domaine se résout à mon IP externe et de l'intérieur, il se résout à l'IP interne. J'ai des ordinateurs portables et des smartphones qui accèdent fréquemment de l'intérieur et de l'extérieur, donc le piratage du fichier hosts ne fonctionnerait pas. Ce que j'ai fait est essentiellement ce que votre autre réponse (Pure.Krome) suggère, seulement au lieu d'utiliser un serveur externe, je dis simplement au serveur DHCP sur le routeur de préparer un serveur DNS interne. Cela fonctionne principalement, mais il y a des retards ennuyeux lors du changement de réseau avant que les choses ne commencent à se résoudre.
TREE
9

Il s'agit d'un problème courant avec la façon dont certains routeurs gèrent le trafic destiné à leur adresse publique à partir d'une adresse interne - ils ne suivent pas les mêmes règles de redirection de port que les demandes provenant de l'extérieur du réseau. Ce que vous devez rechercher dans vos routeurs est la réflexion NAT . Cela permettra au routeur de gérer les requêtes internes pour que l'adresse IP publique utilise les mêmes règles de redirection de port que si la requête venait de l'extérieur du réseau.

MaQleod
la source
1
Réflexion NAT. Je pense que c'est ce que je cherchais. Malheureusement, mon modem n'a pas cela. Merci!
que faire lorsque votre modem ne prend pas en charge le bouclage NAT ??
PrimitiveNom
2

Je pourrais mieux vous aider si vous pouviez me donner la marque et le modèle de votre modem ...

Mais ce qui se passe ici, c'est que normalement une page de configuration de routeur ou de modem ne devrait apparaître que lors de la visite de leur IP interne (192.168.0.1)

Mais ce qui semble se produire ici, c'est qu'il identifie la demande entrante (201.206.xx) comme venant de l'intérieur, décide donc de vous donner la page de configuration au lieu de l'itinéraire normal vers votre serveur Web ...

Maintenant, si vous utilisez un modem de niveau consommateur, vous ne pourrez probablement pas changer cela (désolé)

Mais peut-être que vous pouvez: Essayez de voir s'il y a des paramètres d'écoute dans votre page de configuration d'administration

Là, vous pouvez essayer de changer votre page d'administration sur un autre port ou de limiter les adresses à écouter.

HTDutchy
la source
2

Le problème est peut-être que l'administration à distance est autorisée.

Plamen
la source
2

Vous pouvez ajouter un itinéraire pour accéder à l'IP publique du serveur directement via son IP locale. Sous Windows, la commande est comme

route add [public IP] mask 255.255.255.255 [the server's local IP]

Pour ajouter un itinéraire persistant, ajoutez un -pparamètre à la commande ci-dessus.

Ensuite, chaque fois que vous visitez l'IP publique, l'ordinateur passe par l'IP locale du serveur en tant que passerelle. Étant donné que le serveur connaît sa propre adresse IP publique, il traitera le package de lui-même, au lieu de le transmettre au réseau local.

Vous devez vous assurer que l'adresse IP locale du serveur est statique.

qevan
la source
Pourquoi le serveur connaît-il sa propre adresse IP publique?
G-Man dit `` Réintègre Monica ''
Les serveurs connaissent certainement leurs adresses IP. IP statiques ou dynamiques. Je ne sais pas exactement comment fonctionne le routage. Je suppose que chaque machine a une carte d'itinéraire. Lorsqu'il a reçu des colis, il décide s'il doit traiter le colis.
qevan
0

Ayant ce même problème. J'ai pu résoudre ce problème en ajoutant le nom d'hôte DNS à la liste de mappage d'hôte DNS de mon routeur. J'ai trouvé ces paramètres répertoriés dans la liste des options avancées de mon routeur.

Gibado
la source
0

Sur mon routeur, j'ai dû désactiver "l'accélération NAT" (Cut Through Forwarding) car cela a cassé le bouclage NAT ...

Gaymon Howard Wright III
la source