(modifié le 11 mai 2022 à 18:00)

Si je vous dis : DNS dynamique ? Avant qu'il soit racheté par Oracle c'est de DynDNS dont tout le monde parlait. Mais aujourd'hui on parle de FreeDNS.afraid.org, un service que j'utilise depuis des années pour avoir un sous-domaine pointant vers mon adresse IP publique (à la maison).

Le site propose des milliers de domaines sur lesquels vous sélectionnez un sous-domaine de votre choix. Avec +3 millions de membres et +10 millions d'enregistrements, ça n'est pas rien.

L'offre gratuite de FreeDNS permet jusqu'à 5 sous-domaines. En contrepartie il faut se connecter au minimum tous les 5 mois et demi pour donner un signe de vie. Un moyen de  purger les comptes inutilisés. Après 6 mois sans nouvelle de votre part le compte est considéré comme dormant sa configuration retirée.

Pour éviter de rater l'email de relance tous les 5 mois et demi j'ai automatisé la connexion au site dans un script bash.

Message de relance

Voici le message que vous recevrez par email en cas de non connexion au site FreeDNS :

Your account at freedns.afraid.org has not been visited in at least 5 1/2 months.

User: xxxx xxxx (xxxxxxx) Last visited: 2020-09-14 (169 days ago)

Unless you visit the site anytime in the next 2 weeks, your account will be considered dormant. "Dormant" consists of unloading any stale DNS records from memory which you may have set up in the past.

This stale entries optimization will free up several gigabytes of memory, making it available for active users. This will allow a DNS server to do a cold configuration boot, and load in new zones in a fraction of the time and space.

Users supporting freedns.afraid.org with a premium plan of any kind (even the smallest) will not be affected.

Un peu de bash

J'ai écrit le script en bash et je l'ai déposé sur mon Raspberry Pi car il est toujours allumé. Libre à vous de le déposer sur n'importe quel serveur GNU/Linux, du moment que la commande curl est présente.

➡️  Téléchargez le script : freedns.sh (raw)

Modifiez les variables contenant vos identifiants FreeDNS :

  • USERNAME='identifiant'
  • PASSWORD='VotreMot2Passe'

Ainsi que le domaine et son ID:

  • DOMAIN="monsous.domaine.fr"
  • DOMAIN_ID="12344321"

ℹ️ Le "DOMAIN_ID" est présent dans votre espace FreeDNS quand vous survolez un de vos domaines.

Il n'y a plus qu'à le rendre exécutable et tester :

chmod +x freedns.sh./freedns.sh

Résultat si tout fonctionne :

======= FreeDNS Signe de Vie vAAAA.MM.JJ ====================
Connexion au site freedns... OK!
Recherche de l'ID du domaine... OK! (12344321 = 12344321})

En cas d'erreur vous obtiendrez le détail de l'ID attendu et de celui récupéré.

⚠ Attention à ce qu'il n'y ait pas d'espace ou tout autre caractères issu d'un copier/coller hasardeux.

Automatiser avec crontab

Pour automatiser éditez votre crontab :

crontab -e

Pour y ajouter :

# signe de vie freedns.org, le 1er jour du mois 20h
0 20 1 * * /home/pi/freedns.sh >> /dev/null 2>&1

Même si le script ne parvient pas à se connecter à un moment (coupure internet...) l'exécution se déroulera le mois suivant, ce qui laisse 5 tentatives possibles. Il n'est pas utile d'augmenter la fréquence d'exécution pour rien, cela engendre des requêtes inutiles sur les serveurs de FreeDNS.

Conclusion

Je n'ai pas parlé de la mise à jour du DNS dynamique, parce que c'est géré nativement sous Tomato (FreshTomato maintenant) dans le menu :

Basic > DDNS > choisir "FreeDNS (afraid.org)"

Le Token est récupérable depuis la page Dynamic DNS sur le lien "direct URL".

Ce script marche avec succès depuis plus d'un an sur mon Raspberry Pi, et je ne reçois plus d'email de relance. C'est donc que tout fonctionne comme attendu 😊

note : c'était plus un défi technique qu'autre chose pour moi, j'aime automatiser avec du code mais je peux tout à fait concevoir que de cliquer sur un email de temps en temps vous convienne aussi 😉

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter