~cedric

it's something ¯\_(ツ)_/¯

DNS dynamique (DynDNS) avec Gandi

November 20, 2023 — Cédric Dekimpe

Puisque je me relance dans l’auto-hébergement, je vais avoir besoin de pouvoir accéder à mon serveur depuis l’exterieur, notamment en HTTP(S).

Pour ce faire, et comme je n’ai pas la chance d’avoir une IP fixe, il faut que je puisse mettre à jour régulièrement l’IP de ma connexion internet à la maison auprès de mon registrar.

A l’époque de ehia.org, j’utilisais DynDNS, mais il semble que l’offre ait été modifiée depuis.

Je suis tombé sur un script bash (voir sources ci-dessus) qui me permettra de me passer d’un service externe pour mettre à jour mes enregistrement DNS.

A noter que ma version ci-dessous est légèrement modifiée pour gérer l’IPv6

#!/bin/bash # This script gets the external IP of your systems then connects to the Gandi # LiveDNS API and updates your dns record with the IP. # Gandi LiveDNS API KEY API_KEY="[redacted]" # Domain hosted with Gandi DOMAIN="redacted.com" # Subdomain to update DNS SUBDOMAIN="subdomain" # Get external IP address EXT_IP=$(curl -s ifconfig.me) #Get the current Zone for the provided domain CURRENT_ZONE_HREF=$(curl -s -H "X-Api-Key: $API_KEY" https://dns.api.gandi.net/api/v5/domains/$DOMAIN | jq -r '.zone_records_href') # Update the A Record of the subdomain using PUT curl -D- -X PUT -H "Content-Type: application/json" \ -H "X-Api-Key: $API_KEY" \ -d "{\"rrset_name\": \"$SUBDOMAIN\", \"rrset_type\": \"AAAA\", \"rrset_ttl\": 1200, \"rrset_values\": [\"$EXT_IP\"]}" \ $CURRENT_ZONE_HREF/$SUBDOMAIN/AAAA