Catégories
Configuration

Le problème des adresses IP dynamiques

Depuis plus d’un an, j’héberge sur une de mes machines un serveur Minecraft qui permet à mon ami et moi d’accéder à une map en tout temps. Pour parvenir à le faire, j’ai configuré mon routeur pour rediriger le port utilisé par le serveur de Minecraft vers la machine de mon réseau sur laquelle il s’exécute. Malheureusement, cela ne suffit pas à rendre la map accessible, car l’adresse IP permettant d’atteindre le serveur est dynamique.

Pour éviter de laborieux échanges de données, j’ai utilisé un compte DynDNS pour associer le nom de domaine ericbuist.dyndns.org à mon adresse IP dynamique. Mon routeur, exécutant DD-WRT, pouvait communiquer correctement avec DynDNS afin d’effectuer la mise à jour. Seule contrainte: je devais me rappeler, au moins une fois par mois, d’établir une connexion manuelle au site de DynDNS afin de garder mon compte actif.

Malheureusement, les choses n’en sont pas restées là. Durant la semaine du 9 avril 2014, j’ai appris que le service gratuit de Dyn serait terminé et qu’il me fallait soit passer au service payant, soit trouver un autre fournisseur de DNS dynamique. J’ai tenté longtemps de trouver une moyen pour réutiliser mon nom de domaine ericbuist.com existant plutôt que m’enregistrer auprès d’encore un nouveau fournisseur. Malheureusement, cela s’est avéré totalement impossible. HostPapa permet certes d’ajouter des sous-domaines, mais il faut indiquer l’adresse IP statique dans le cPanel. Pour qu’un script puisse mettre à jour dynamiquement, il doit utiliser l’API de cPanel et s’y authentifier, ce qui implique de mettre mon mot de passe HostPapa en clair dans du code ou un fichier de configuration! Ce solution PHP a été appliquée, apparemment avec succès, mais je trouvais ça un peu moche.

Cheap-DomainRegistration, le registrar avec qui j’ai mon domaine ericbuist.com, n’offre aucune option allant dans ce sens, aucun moyen de configurer les zones DNS de façon détaillée. On peut définir des sous-domaines, mais cela se limite à rediriger le trafic web vers une URL.

Alors voici comment j’ai résolu ce problème imprévu. D’abord, je me suis créé un compte sur freedns.afraid.org. Cela m’a permis d’obtenir ericbuist.twilightparadox.com. J’ai reconfiguré mon routeur pour appliquer le DDNS sur ce nouveau compte. Il m’a fallu fournir mon nom d’utilisateur et mot de passe FreeDNS, puis comme « hostname », une chaîne de la forme ericbuist.twilightparadox.com,<hash> où <hash> est le code numérique de l’URL de mise à jour fournie par FreeDNS.

Toutefois, non désireux d’en rester là, j’ai accédé au cPanel de mon compte HostPapa. Sous la section Domaines, j’ai accédé à l’Éditeur avancé de zone DNS. De là, j’ai créé une entrée de type CNAME permettant de lier le sous-domaine eldorado.ericbuist.com à mon sous-domaine dynamique. Ainsi, si je trouve une meilleure solution plus tard impliquant moins de couches, je pourrai reconfigurer mes enregistrements DNS pour l’appliquer de façon transparente.

Voici quelques solutions à plus long terme que je pourrais être appelé à explorer ou mettre en place.

  • Obtenir une adresse IP fixe auprès de mon fournisseur d’accès Internet. Cela risque de me forcer, si je reste avec Vidéotron, à passer au plan commercial, ce qui va gonfler ma facture inutilement. Il existe probablement des fournisseurs offrant ce genre de service à moindre prix, mais possiblement avec une moins bonne stabilité de connexion.
  • Déplacer mon enregistrement de ericbuist.com de Cheap-DomainRegistration vers un fournisseur de domaine dynamique tel que Dyn. Je ne suis pas certain de bénéficier de suffisamment de contrôle pour pouvoir diriger les requêtes à ericbuist.com chez HostPapa et seulement redéfinir un sous-domaine du côté du fournisseur dynamique. En cas d’échec, je risque de perdre mon domaine ericbuist.com dont je suis propriétaire depuis 2004. Pour amorcer un transfert de nom de domaines, il faut obtenir un numéro d’autorisation chez le registrar existant, et parfois l’option pour obtenir un tel numéro est inexistante. C’est alors un cas de difficiles négociations avec le registrar. Je serais vraiment déçu et choqué de devoir enregistrer ericbuist2.com et utiliser cela pour mon site web en lieu et place ericbuist.com!
  • Héberger mon serveur de Minecraft sur une machine disposant d’une adresse IP fixe. Je pourrais tenter ma chance avec Amazon EC2 ou CreeperHost, mais cela va me coûter des centaines de dollars par année et la machine virtuelle que j’obtiendrai sera sans doute moins puissante que la machine sur laquelle le serveur actuel s’exécute.
  • Si vraiment plus rien ne fonctionne, je pourrais me concocter un script obtenant mon adresse IP et la plaçant dans un fichier accessible par une URL public, en le téléchargeant sur mon espace web ou sur Dropbox. Ensuite mon ami pourrait consulter ce fichier et obtenir la nouvelle adresse. Un raffinement possible serait qu’un script le fasse et aille modifier le fichier hosts pour associer un nom à l’adresse dynamique, mais ça devient plutôt complexe pour une affreuse patch qui n’a pas lieu d’être.