Router nom de domaine vers une machine virtuelle

Bonjour.

Après installation d’un serveur proxmox et la création de plusieurs machines virtuelles, je cherche à faire pointer mon nom domaine personnel sur une des machines virtuelles sans IP FO.

Après réflexion, j’hésite sur la marche à suivre, à savoir si je dois écouter sur un port spécial de mon ip publique toutes les requêtes contenant mon nom de domaine et les router sur la vm ?

Donc mon serveur est installé sur une Debian avec l’interface Proxmox pour virtualiser, je chercherais à faire pointer mon ndd sur une des machines virutelles hébergée sur mon serveur proxmox.

Si des gens ont des idées là dessus, je suis preneur :slightly_smiling:

Merci.

Je joins un schéma pour expliquer un peu plus la situation.

“sans IP FO” ?
“port spécial” ?

Un nom de domaine pointe vers une adresse IP. Une adresse IP appartient à une machine.
Pour être accessible depuis l’internet, l’adresse IP associée à un nom de domaine doit être publique et non privée. Ensuite la machine qui a cette adresse peut mettre en oeuvre tout une variété de mécanismes pour rediriger du trafic vers une adresse privée, notamment la redirection NAT avec des règles iptables ou le relais de port.

Merci de ta réponse.

Je suis d’accord que le nom de domaine pointera vers la machine proxmox.

C’est au niveau d’iptables que je suis hésitant dans le sens ou je ne sais pas comment dire au système de router les requêtes venant du nom de domaine vers la machine virtuelle souhaitée :confused:

Du style requete sur www.domaine.com qui pointe sur la proxmox et la proxmox qui route vers le port sortant 8090 qui pointera ensuite vers le port 80 de la VM.

Merci de ton aide.

Que veux-tu dire par “port sortant 8090” ?
Il y a les ports source et destination, mais je ne sais pas ce qu’est un “port sortant”.

Note : iptables ne connaît rien aux noms domaines. Il ne manipule que les adresses, les protocoles et les ports. Pour aiguiller des requêtes HTTP par nom de domaine, il faut mettre en place un reverse proxy HTTP (ex: apache avec mod_proxy).

Quand je dis port sortant c’est le port “destination” de la requête, autant pour moi.

Je vais me renseigner sur le mod_proxy d’apache.

Merci de ton aide.

Alors pourquoi vouloir rediriger vers ce port 8090 puis à nouveau vers le port 80 ?
Avec iptables une machine ne peut faire qu’une redirection pour un port donné.

Je reprends car je n’ai pas été très clair dans mes explications.

Derrière l’adresse ip publique, il existe plusieurs vm.

En fin de compte j’ai dis à iptables que les requêtes arrivant sur le port 25000 de l’ip publique (exemple) devraient être redirigées vers le 80 (de la machine virtuelle).

Donc l’idée serait que mon nom de domaine pointe vers mon ip:25000 mais c’est impossible directement dans la gestion du ndd.

Le reverse proxy d’apache serait donc à même de gérer ce genre de fonction ? A router selon le nom de domaine requêté ?

Je ne sais pas si c’est plus clair, merci :slightly_smiling:

En théorie ce serait possible, avec les enregistrement de type SRV qui contiennent le numéro de port. Mais en pratique très peu de logiciels (si ce n’est pas aucun, en dehors des protocoles comme SIP ou XMPP qui utilisent explicitement le type SRV) savent les gérer.

Oui, mais uniquement pour le HTTP car le nom de domaine est contenu dans la requête. Ce n’est pas le cas avec d’autres protocoles comme FTP par exemple. Mais ce genre de chose n’est utile que pour différencier plusieurs noms de domaine différents qui pointent sur la même adresse IP et doivent être redirigés vers des serveurs web différents. S’il n’y a qu’un nom de domaine, une simple redirection de port avec iptables suffit.

[quote=“PascalHambourg”]
Oui, mais uniquement pour le HTTP car le nom de domaine est contenu dans la requête. Ce n’est pas le cas avec d’autres protocoles comme FTP par exemple. Mais ce genre de chose n’est utile que pour différencier plusieurs noms de domaine différents qui pointent sur la même adresse IP et doivent être redirigés vers des serveurs web différents. S’il n’y a qu’un nom de domaine, une simple redirection de port avec iptables suffit.[/quote]

Justement, l’idée est là.

Plusieurs noms de domaine pointeront sur la même ip externe.

Je recherche des infos pour envoyer les requêtes selon le nom de domaine vers telle ou telle machine virtuelle.

Dans ce cas il faut un reverse proxy. Il n’y a pas qu’apache.
Par contre ce n’est pas possible pour des serveurs FTP.

Si j’ai bien compris tu as plusieurs nom de domaine qui pointes tous vers la même adresse IP publique.
Et tu voudrais pouvoir diriger les requêtes de chaque ndd vers une VM différente.

Pour moi c’est clairement à un proxy de gérer (reverse proxy d’Apache par exemple), iptables ne peut distinguer que ndd que tu veut atteindre, c’est trop haut niveau pour lui.