On a souvent la problématique, à la maison, de ne pas disposer d’une IP fixe et donc de recourir à des services comme DynDNS pour obtenir un nom de domaine qui nous reliera toujours à l’IP changeante de notre domicile.

Seulement, on dépend du coup d’un service externe. Voici comment j’ai procédé afin de me passer de DynDNS.

J’ai un Raspberry Pi à la maison, connecté à ma box en filaire. Jusque-là, rien d’aberrant. Mon DNS, comme la plupart de mon infrastructure (hormis ce qui est à la maison) est géré dans AWS. Cela offre l’avantage d’être totalement pilotable par API, notamment en Python via l’excellent Boto3.

Il suffit alors sur le Pi de :

  • Récupérer son IP (sur un service qui renvoie du JSON de préférence, comme ipinfo.io)
  • Comparer à l’ip déjà présente dans la zone DNS, via l’id de la zone
  • Si elles diffèrent, on remplace

Le tout en cron sur le PI, comme ceci:

*/5 * * * * ~/scripts/updateRoute53Record/updateRoute53Record.py "ZONEID" "home.xxx.fr" >> ~/cron_logs/updateRoute53Record.log

Un service comme ipinfo autorise 1000 requêtes par jour en mode free, attention donc à ne pas positionner le cron toutes les minutes. Toutes les cinq minutes, c’est suffisant.

Le script est en Python donc, et dispo sur mon Github.


Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *