Réponse simple, liée au niveau de la question
Ignorant les utilisations exotiques du DNS et inversant également la recherche DNS (non pertinent pour la question), presque toute utilisation du DNS est de la forme:
- Le client envoie le nom de domaine (entièrement qualifié ou autre) à un serveur DNS
- Le serveur DNS renvoie des informations de domaine à partir de ses enregistrements. Généralement, les informations clés demandées sont soit l'adresse IP pour communiquer avec le Web / e-mail sur ce domaine, soit l'adresse IP d'un autre serveur DNS mieux à même de fournir ces informations.
Une fois que le client a contacté le serveur, le serveur lui-même prendra le relais et le système DNS disparaîtra de l'image.
Cela signifie que le système DNS n'a pas besoin de fournir des informations sur les ports, et il ne le fait presque jamais. Ainsi, bien que l'objectif de la question soit valide, et souvent fait, ce n'est pas réellement le système DNS qui le fait. C'est pourquoi vous ne pouvez pas vous en sortir :)
L'idée est qu'une fois que votre client peut localiser la machine ou le serveur spécifique qu'il recherche, il appartient à cette machine d'écouter sur tous les ports qu'il choisit et d'accepter / refuser / répondre à tous les protocoles sur tous les ports configurés.
Par exemple, les services Web HTTP sont généralement fournis sur le port 80. Cela signifie qu'une fois que le client connaît l'IP d'une machine, il peut supposer que l'envoi d'un message au port 80 entraînera la lecture / la réponse de ce message par le service Web de cette machine. Mais il ne doit pas en être ainsi. Si le serveur est configuré pour écouter les demandes Web entrantes sur le port 9000, tout client capable d'accéder au port 9000 pourra accéder à son service Web. Si le serveur se trouve derrière un proxy / NAT / routeur qui redirige le port 10000 vers le port 9000 et que le client envoie une demande Web sur le port 10000, le serveur la recevra sur le port 9000 et répondra également.
Redirection / mappage au sein du serveur Web
Vous avez posé des questions sur le mappage de redirection ou la réécriture dans un commentaire. Ce sont des fonctions qu'un serveur Web peut effectuer. Fondamentalement, vous pouvez configurer le serveur Web (ou la plupart / plusieurs serveurs Web) pour gérer la façon dont il gère l'URL qu'il reçoit dans une demande. Ainsi, il peut modifier en interne l'URL à la réception pour que les différentes URL soient traitées de la même manière, ou corriger les fautes de frappe courantes (mappage), ou il peut en fait répondre pour dire au client lui-même de demander une deuxième fois, en utilisant une URL de remplacement différente (réorienter).
Celles-ci ont leurs utilisations et pourraient en principe gérer votre cas d'utilisation, mais elles ne semblent pas être la "bonne" solution pour vous, pour ces raisons:
- Je ne pense pas que la cartographie aiderait du tout . Le mappage est presque totalement interne au serveur Web, il dit "traiter cette URL comme si c'était cette URL". Par exemple, vous pouvez utiliser le mappage d'URL de serveur Web pour permettre à un utilisateur d'interroger un forum à l'aide d'URL très anciennes, anciennes et actuelles (pour plus de commodité) en utilisant " https://example.com/index.php?area-=forum&topic = 2 ", également" https://example.com/forum.php?topic=2 "et également" https://forum.example.com?topic=2", et ne gérez cela qu'une seule fois, en mappant les deux premiers d'entre eux sur la troisième URL en interne, comme première étape du traitement de la requête. Comme cette cible affecte le chemin de la requête et non l'IP / port, le mappage n'est pas très utile pour la gestion des ports, et dans votre cas, le client ne demande jamais du tout 8080.
- La redirection fonctionnerait, mais peut ne pas être ce que vous voulez . La redirection dans le serveur Web dépend du serveur Web qui reçoit réellement la requête (car ce sont des fonctions internes du serveur Web). Ainsi, le serveur Web devrait de toute façon écouter sur le port 80 pour obtenir la requête d'origine, afin de répondre avec la redirection / carte. Il devrait également écouter sur le port 8080. Fonctionnellement, il faudrait une règle de redirection pour indiquer à tout client interrogeant le port 80, pour l'interroger à nouveau à l'aide de l'URL ": 8080", qui ne ressemble pas à ce que vous voulez faire. L'utilisateur verrait également la nouvelle URL contenant ": 8080", alors qu'il semble que vous souhaitiez qu'elle soit "transparente" et non affichée.
- De plus, la redirection ne fonctionnerait que pour rediriger un port standard (80 ou 443) - vous ne pouviez pas rediriger le port 2000 vers 8080, car le client ne demanderait pas sur 2000 par défaut, en premier lieu, donc il ne serait jamais accéder au serveur Web, même s'il écoutait en 2000. Ce n'est peut-être pas un problème pour vous.
Cependant, si vous voulez une redirection "intelligente", où seules certaines requêtes sont redirigées vers 8080, cela pourrait être la voie à suivre, car la redirection peut inclure une logique pour décider quelles URL doivent être redirigées, tandis que le mappage de port (ci-dessous) mapperait tout .
Comment le faire correctement
La réponse à votre question est que vous souhaitez que le serveur Web réponde aux demandes Web que le client envoie au port par défaut (80/443), mais que le serveur reçoit réellement sur le port 8080.
Cela signifie que, comme vous pouvez le voir, vous avez besoin de quelque chose entre les deux qui mappe les ports entre le client et le serveur . De cette façon, le client envoie sur le port 80 (port par défaut utilisé par les navigateurs Web), mais il est en réalité reçu sur le port 8080 par le serveur Web. Bien sûr, vous devrez configurer le serveur Web pour écouter sur le port 8080, car ce n'est pas standard, mais c'est facile et tout serveur Web devrait pouvoir spécifier ses ports d'écoute.
La façon la plus courante de le faire serait dans le routeur / pare-feu, via le mappage de port.
En termes simples, pour ce faire, le routeur se voit imposer une règle selon laquelle tout ce qui a reçu une adresse IP de destination et un port de destination = 80 doit être transmis au LAN avec le port de destination changé à 8080 à la place. Ni le serveur Web ni le client ne seront au courant du changement (il est géré à 100% par le routeur), il sera donc 100% transparent pour les deux. Le client n'aura pas ": 8080" dans son URL et n'aura pas besoin de rediriger quoi que ce soit, car il interroge le port 80, et le serveur Web peut ignorer le port 80 et écouter uniquement sur 8080, car il n'obtient jamais de requêtes sur le port 80 .
Si vous voulez une méthode simple et directe, semblable à ce que ferait un "DNS pour les ports", c'est probablement l'équivalent le plus proche de ce que vous demandez dans votre question.