Comment utiliser DNS / Nom d'hôte ou Autres façons de résoudre un IP spécifique: Port

Il s'agit d'une question canonique sur la résolution DNS / Hostnames aux IP / Ports

Exemple 1

J'utilise un server Web sur le port 80 et un autre sur le port 87. J'aimerais utiliser le DNS afin que www.example.com soit versé au port 87. Comment puis-je accomplir ceci en utilisant DNS uniquement?

Exemple 2

Je gère un service sur mon server 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 à l'application où DNS pourrait indiquer l'IP et le port?

Exemple 3

Est-ce que certains protocoles d'application supportent spécifiquement la prise de conscience du nom d'hôte et permettent des actions spéciales à prendre en fonction de ces informations? Y a-t-il d'autres questions sur Server Fault qui couvrent certains d'entre eux?

Commandeering: cette question demandait à l'origine d'exécuter IIS et Apache sur le même server, mais les mêmes concepts peuvent être appliqués à tout logiciel server recevant des connections de clients. Les réponses ci-dessous décrivent les problèmes techniques et les solutions d'utilisation du protocole DNS et de protocole d'application pour atsortingbuer un numéro de port pour un client à se connecter.

7 Solutions collect form web for “Comment utiliser DNS / Nom d'hôte ou Autres façons de résoudre un IP spécifique: Port”

Vous ne pouvez pas utiliser le DNS pour pointer vers un port (sauf si le client prend en charge les loggings SRV, la plupart ne le font pas).

Sites Web et protocoles avec en-têtes d'hôte

Vous devrez mettre en place une méthode front-end pour ce faire. En règle générale, vous utiliserez un server Web frontal ou un logiciel proxy dédié pour transmettre la connection du port 80 au port! 80 en fonction du nom du server demandé dans l'en-tête. Certains pare-feu peuvent également être transmis en fonction de l'en-tête hôte.

SRV Records

Certains clients prennent en charge les searchs des loggings SRV qui indiquent le nom d'hôte et le numéro de port du server pour le service spécifié (c.-à-d. L'user spécifie "example.com", le client search un logging SRV et obtient "server101.example.com" sur le port "255 ", puis se connecte à cela). Certains clients mettent également en œuvre ce qui n'est pas nécessaire (mon dernier smartphone searchrait les loggings SRV lors de la configuration d'un nouveau count e-mail par exemple).

Malheureusement, le soutien aux loggings SRV est très rare. Seuls quelques protocoles remarquables exigent son soutien (Jabber / XMPP, Kerberos, LDAP, SIP) et tous les clients ne le supporte même lorsqu'ils sont mandatés.

Lorsque vous tapez http://www.domain.com dans votre browser, il est entendu que le port HTTP est sur 80. Par conséquent, il n'y a aucun moyen direct de localiser http://www.domain.com au port 87 si vous avez déjà un service fonctionnant sur ce port dans IIS.

Cela dit, il y a quelques "solutions de contournement".

Sam a raison, DNS est agnostique lorsqu'il s'agit de ports. Toute sorte de redirection de port se produit par le service qui s'exécute sur ce port. Par conséquent, vous devriez faire quelque chose avec IIS pour que cela se produise, si vous n'avez pas d'autre choix que de le laisser sur le port 80.

J'ai également compris votre situation en utilisant mod_proxy sur Apache, je ne sais pas s'il existe un moyen de le faire avec IIS.

Je crains que les noms de domaine ne soient associés qu'à une adresse IP et non à un port.

La plupart des servers Web, par exemple (Apache, IIS, etc.) vous permettent d'avoir deux domaines hébergés sur la même adresse IP en utilisant le fait que les requêtes Web contiennent un champ d'en-tête hôte qui identifie le domaine dans la requête elle-même.

Si vous dites ce que le server Web est que vous utilisez, je suis sûr que les gens peuvent vous indiquer la documentation pertinente pour configurer votre server comme vous le souhaitez

Techniquement, vous pouvez utiliser les loggings SRV sur les servers DNS tels que définis dans la RFC 2782 pour indiquer aux browsers quels servers gèrent http sur les ports pour un (sous-) domaine:

 _http._tcp.www.example.com. IN SRV 0 5 80 www.example.com. _http._tcp.www2.example.com. IN SRV 0 5 87 www.example.com. 

Cela fonctionne bien pour de nombreux protocoles / services, en particulier lorsque l'utilisation des loggings SRV est déjà définie dans la spécification du protocole.

Cependant, comme le dit le « Hall of Shame », la plupart des browsers / clients ne supportent pas cela (pour HTTP). Voir aussi pourquoi-do-browsers-not-use-srv-records .

L'accord est fondamentalement, que SRV n'est pas inclus dans le protocole http comme un must afin que chaque browser qui l'implémente résolve les URL différemment des browsers qui ne le font pas.

Donc, vous ne devriez utiliser cela que comme un équilibrage de charge facultatif, où il n'est pas pertinent quel server est choisi en termes de contenu. «Facultatif» car il ne balance pas la majeure partie de la charge si seulement quelques clients l'implémentent.

Le DNS n'a pas la capacité de redirect vers un port spécifique, mais tous les problèmes de DNS sont la résolution d'adresse IP d'un nom et vice versa.

Certains services, tels que les fournisseurs de DNS IP dynamics, tels que NO-IP, offrent une solution qui peut vous aider à faire quelque chose de similaire pour get le blocage des IP sur les services DNS de la maison.

Pour utiliser n'importe quel service (TBT) sur un port non standard et ne pas écrire de port dans URI, tout le monde peut utiliser les loggings SRV, définis dans RFC 2782.

 _http._tcp.www.example.com. IN SRV 0 5 87 www.example.com. 

Tous les autres hébergeurs http dans la zone seront toujours servis sur le port par défaut 80

Une approche pour déployer deux servers Web sur le même hôte est d'avoir les deux écouter sur le port 80 sur deux adresses IPv6 différentes. IPv6 spécifie officiellement que vous pouvez assigner deux adresses à une interface, et qu'il y a suffisamment d'adresses IPv6 que vous pouvez faire sans avoir de carte d'adresse.

Il s'agit d'une preuve à l'avenir, et vos deux domaines peuvent chacun avoir des loggings AAAA indiquant les différentes adresses IP, de sorte que les domaines finissent par différents servers Web.

Si vous disposez 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 IPv4-only peuvent accéder à vos deux servers Web. L'approche proxy inverse fonctionne même si certains servers Web sont sur le même hôte que le proxy inverse et certains servers Web sont sur d'autres hôtes.

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

Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de réseau.