- Source : DynDNS avec un script bash chez Gandi
- Source de la source : Dynamic DNS Using Gandi
- La documentation LiveDNS chez Gandi
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