La Fibre
Datacenter et équipements réseaux => Routeurs => Routeur => Discussion démarrée par: noctam le 06 juin 2016 à 11:05:40
-
Bonjour a tous,
Je ne sais pas si je post au bon endroit donc je m'excuse d'avance.
J'ai un serveur Dell T20 a la maison avec plusieurs VM. Ses Vm ont toutes des applications fonctionnant sur des ports différents.Je sais qu'il est impossible de rediriger a ma connaissance un sous domaine sur un port. (je suis nul en réseaux mais j'essaye d'apprendre).Serait-il possible d'avoir en quelque sorte un bidouillage permettant quand je tape sickrage.XXX@XXX de tomber sur un port particulier et ainsi de suite ?
Ex : sickrage.XXX@XXX = ip:8085
Minecraft.XXX@XXX = ip:6061 etc
Cordialement,
-
Et taper sickrage.XXX:8085 ça ne te convient pas ?
-
Pour du HTTP, oui. Pour d'autres trafics, non. Il te faut un port par service.
-
iptables non ?
-
Keuwah ?
-
iptables -t nat -A PREROUTING -d .minecraft.domaine.com -p tcp --dport 6061 -j DNAT --to IPINTERNE:6061
un truc du genre non ?
-
Ça ne peut pas marcher, non. Minecraft se fiche du domaine ^^
-
iptables -t nat -A PREROUTING -d .minecraft.domaine.com -p tcp --dport 6061 -j DNAT --to IPINTERNE:6061
un truc du genre non ?
non. iptables ne voit pas les noms de domaine, c'est que de l'ip la, on est dans la couche (https://fr.wikipedia.org/wiki/Couche_r%C3%A9seau)3 (et un peu 4). quand on passe un nom d'hote avec l'option -d , il est résolu de suite au moment de l'installation de la régle, c'est juste pour éviter de taper des ip.
pour faire un 'aiguillage' en fonction du nom de domaine il faut travailler au niveau de la couche applicative (7).
On peut le faire en http avec un reverse proxy ou un serveur web gérant les "virtual host" par exemple.
Pour du générique comme ca (minecraft, etc), ca ne marchera pas car on en recoit pas le nom de domaine demandé mais juste l'ip.
-
Pour Minecraft, il suffit de changer de port, le client le gère très bien !
-
Alors je sens que ma question reste difficilement faisable surtout pour un novice comme moi a en croire les réponses.
Minecraft c’était surtout un exemple mais oui le principe de base serait que si je tape Ts.XXX@XXX cela me donne l’accès a teamspeak et que si je tape sur chrome sickrage.XXX@XXX cela me redirige sur le fork sickrage avec son port automatiquement pareil pour transmission etc.Vous allez me dire pourquoi ne pas mettre le port automatiquement avec juste mon nom de domaine mais c’était pour savoir si c’était faisable et pour des questions pratique
-
non. iptables ne voit pas les noms de domaine, c'est que de l'ip la, on est dans la couche (https://fr.wikipedia.org/wiki/Couche_r%C3%A9seau)3 (et un peu 4). quand on passe un nom d'hote avec l'option -d , il est résolu de suite au moment de l'installation de la régle, c'est juste pour éviter de taper des ip.
pour faire un 'aiguillage' en fonction du nom de domaine il faut travailler au niveau de la couche applicative (7).
On peut le faire en http avec un reverse proxy ou un serveur web gérant les "virtual host" par exemple.
Pour du générique comme ca (minecraft, etc), ca ne marchera pas car on en recoit pas le nom de domaine demandé mais juste l'ip.
Donc d’après ce que je lis il serait potentiellement possible de le faire ? par contre c'est un même nom de domaine et plusieurs sous domaines car le serveur est hébergé chez moi donc qu'une seule ip wan dispo :( donc ça marche aussi avec des sous domaines ?
-
Mais quel problème as-tu avec les ports ? Tu as plusieurs serveurs Minecraft qui tournent en même temps et tes utilisateurs ne savent pas renseigner un port ?
-
non en gros depuis l’extérieur du réseau pour éviter de retenir chaque port de chaque application :
- panel administration
- teamspeak,
-sickrage,
- transmission,
-couchpotato et j'en passe je voulais les simplifier par sous domaine pour ne taper que les sous domaine mais sans les ports.
Au final pour sickrage je passerai de mondomaine:8089 par exemple à sickrage.mondomaine qui lui le redirigerait sur le port .j’espère que c'est plus clair comme cela.
-
Un enregistrement CNAME sur tes DNS peut-être?
sickrage IN CNAME url.fr:8012
Je n'ai jamais testé mais pourquoi pas?
Cdt,
DamienC
-
non en gros depuis l’extérieur du réseau pour éviter de retenir chaque port de chaque application :
- panel administration
- teamspeak,
-sickrage,
- transmission,
-couchpotato et j'en passe je voulais les simplifier par sous domaine pour ne taper que les sous domaine mais sans les ports.
Au final pour sickrage je passerai de mondomaine:8089 par exemple à sickrage.mondomaine qui lui le redirigerait sur le port .j’espère que c'est plus clair comme cela.
Pour sickrage, c'est du HTTP, donc Reverse Proxy, pour Transmission, pareil, et pour ton panel aussi.
Pour Minecraft, laisse le port par défaut (25565)
Teamspeak et CouchPotato : je ne sais pas.
-
Un enregistrement CNAME sur tes DNS peut-être?
sickrage IN CNAME url.fr:8012
Je n'ai jamais testé mais pourquoi pas?
Cdt,
DamienC
Euh non, ça n'existe pas ce que tu veux faire.
-
Pour sickrage, c'est du HTTP, donc Reverse Proxy, pour Transmission, pareil, et pour ton panel aussi.
Pour Minecraft, laisse le port par défaut (25565)
Teamspeak et CouchPotato : je ne sais pas.
Merci pour la réponse je ne connais pas trop le reverse proxy mais ça va être le moment d'apprendre :) c'est assez compliqué la partie réseau.
Des bon liens dessus a étudier ici ou sinon je google ça ?
-
Moi j'utilise Apache, il te faut quelques bases :)
Deux exemples de configuration, une avec HTTPS, et une sans :
Celle ci redirige le port 8085 (en HTTP) vers le port 443 en HTTPS, et redirige le HTTP en HTTPS.
<VirtualHost *:80>
ServerAdmin hugues@milkywan.xyz
ServerName sickrage.hugues.saturn.milkywan.xyz
RewriteEngine on
RewriteCond %{SERVER_NAME} =sickrage.hugues.saturn.milkywan.xyz
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
</VirtualHost>
<VirtualHost *:443>
ServerAdmin hugues@milkywan.xyz
ServerName sickrage.hugues.saturn.milkywan.xyz
ProxyPreserveHost On
ProxyRequests off
ProxyPass / http://localhost:8085/
ProxyPassReverse / http://localhost:8085/
SSLCertificateFile /etc/letsencrypt/live/sickrage.hugues.saturn.milkywan.xyz/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/sickrage.hugues.saturn.milkywan.xyz/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
Et celle ci, plus simple, redirige juste le port 7777 vers le port 80 avec le domaine hastebin.milkywan.xyz.
<VirtualHost *:80>
#
ServerName hastebin.milkywan.xyz
ProxyPreserveHost On
ProxyRequests off
ProxyPass / http://localhost:7777/
ProxyPassReverse / http://localhost:7777/
#
</VirtualHost>
Dans les deux cas, selon le domaine spécifié, le proxy te renverra sur un autre site, ou une autre machine. ;)
-
Ah merci je vais regarder ça en rentrant du boulot et faire quelque test. j'en profite d’être en phase prep pour bidouiller avant de tout mettre en prod :)
je vous tiens au courant ainsi que si j'ai des petites questions techniques également
PS :Du coup si le programme n'est pas sur la même VM a la place de localhost je spécifie l'ip de la VM ?
-
Je te propose dutiliser' le DNS SRV qui peux faire ce que tu veux. Regardé par exemple sur CloudFlare.
-
PS :Du coup si le programme n'est pas sur la même VM a la place de localhost je spécifie l'ip de la VM ?
Exactement, moi je mets le domaine local, mais c'est pareil.
Je te propose dutiliser' le DNS SRV qui peux faire ce que tu veux. Regardé par exemple sur CloudFlare.
Ben c'est le principe des VirtualHosts d'Apache...
-
Bon je viens de tester la méthode de Hugues après quelques raté et le fait que je ne comprenais pas ou mettre ce fichier tout marche nickel maintenant.
Merci a tous pour votre aide :)
-
Et bien parfait ! Reste plus qu'a tout faire en HTTPS ! (Je viens d'y passer la soirée ;D )
-
hum euh oui on va y aller doucement haha ;D
-
Plus doucement, il y'a IPv6 ;)
-
tu souhaite vraiment me faire bosser :-X
en effet mais l'ipv6 même si je l'ai activé ne me sert pas pour l'instant une fois que j'aurai de meilleurs base en réseaux je m'y attaquerai
-
Pour IPv6, c'est très simple : tu mets une IP à ton serveur, tu mets des entrées DNS AAAA, et c'est fini ! (Sur Apache et Minecraft, tout du moins)
-
ah bon ça va alors :)