57 votes

Comment utiliser le DNS, les noms d'hôtes ou d'autres moyens pour résoudre un problème d'IP et de port spécifique ?

Il s'agit d'un Question canonique à propos de la résolution des DNS/Noms d'hôtes vers les IPs/Ports

Exemple 1

Je fais tourner un serveur web sur le port 80 et un autre sur le port 87. Je voudrais utiliser le DNS pour que www.example.com soit dirigé vers le port 87. Comment puis-je y parvenir en utilisant uniquement le DNS ?

Exemple 2

Je fais tourner un service sur mon serveur sur un port non standard. Comment puis-je faire en sorte que les clients se connectent automatiquement à ce port non standard ? Puis-je utiliser le DNS ? Existe-t-il un support spécifique à une application pour lequel le DNS pourrait indiquer l'IP et le port ?

Exemple 3

Certains protocoles d'application prennent-ils spécifiquement en charge la connaissance des noms d'hôtes et permettent-ils de prendre des mesures spéciales en fonction de ces informations ? Y a-t-il d'autres questions sur Server Fault qui couvrent certains de ces aspects ?

<code>Commandeering:</code> Cette question portait à l'origine sur l'exécution de IIS et d'Apache sur le même serveur, mais les mêmes concepts peuvent être appliqués à tout logiciel serveur recevant des connexions de clients. Les réponses ci-dessous décrivent les problèmes et solutions techniques liés à l'utilisation du DNS et de la prise en charge du protocole d'application pour attribuer un numéro de port permettant à un client de se connecter.

5voto

Mat Points 2512

Le DNS n'a pas la capacité de rediriger vers un port spécifique, tout ce qui l'intéresse est la résolution de l'adresse IP d'un nom, et vice versa.

Certains services, tels que les fournisseurs de DNS à IP dynamique, tels que NO-IP fournit un service qui peut vous aider à faire quelque chose de similaire pour contourner le blocage des IP sur les services DNS domestiques.

2voto

Cristian Oliveira Points 121

Le moyen le plus simple est d'utiliser un proxy inverse et de le définir comme votre proxy web. Vous pouvez configurer un nginx o apache pour cela. J'ai eu fondamentalement le même problème dans le passé et j'ai créé un outil pour réaliser une telle configuration de manière simple. Ergo : https://github.com/cristianoliveira/ergo

Je l'ai utilisé et en gros, ça marche comme un charme :)

1voto

martin Points 49

Une façon de déployer deux serveurs web sur le même hôte consiste à leur faire écouter le port 80 sur deux adresses IPv6 différentes. L'IPv6 spécifie officiellement que vous pouvez attribuer deux adresses à une interface, et il y a suffisamment d'adresses IPv6 pour que vous puissiez le faire sans manquer d'adresses.

C'est une solution d'avenir, et vos deux domaines peuvent avoir des enregistrements AAAA pointant vers des adresses IP différentes, de sorte que les domaines aboutissent sur des serveurs web différents.

Si vous disposez également d'une seule adresse IPv4, vous pouvez utiliser le port 80 sur l'adresse IPv4 pour exécuter un proxy inverse. De cette façon, les clients uniquement IPv4 peuvent accéder à vos deux serveurs web. L'approche du proxy inverse fonctionne même si certains des serveurs Web se trouvent sur le même hôte que le proxy inverse et si certains des serveurs Web se trouvent sur d'autres hôtes.

Dans une telle configuration example.org pourrait avoir des adresses 192.0.2.1 y 2001:db8::1 tandis que example.net a des adresses 192.0.2.1 y 2001:db8::2 .

0voto

Satyam Rai Points 1

Je ne connais pas les détails techniques, mais j'ai résolu ce problème en créant une distribution CloudFront qui pointe vers le port HTTP spécifié.

Puis avec Route 53, j'ai pointé vers la distribution CloudFront.

0voto

Thiago Conrado Points 205

Bien que les mentions ci-dessus indiquent très clairement que les enregistrements DNS sont agnostiques en termes de port (à l'exception des enregistrements SRV -- qui ne sont pas incorporés dans la plupart des clients), il existe une possibilité : utiliser la fonction Services de transfert d'URL qui sont offerts par la plupart des fournisseurs de DNS (ex. easyDNS)

Cela vous permettra de faciliter la tâche de l'utilisateur :

D'après votre exemple www.example.com va vers le port 87, avec ce service vous pouvez configurer http://www.example.com pour atteindre http://www.example.com:87 (en fait, l'utilisateur qui n'a que le domaine pourra accéder à votre site) ; vous pouvez également l'utiliser pour faire un appel à un protocole http normal pour résoudre le problème de https://www.example.com:87 ou même de pointer vers certaines sous-pages comme https://www.example.com:87/dologin

La solution IPV6 de @kaperd semble parfaite, mais alors que j'ai pu configurer le serveur correctement, je n'ai pas réussi à ouvrir la cible sur Chrome... peut-être qu'il a besoin d'un peu de twerk et que je n'ai pas passé assez de temps.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X