+++ title = "Un peu de dynamic dans mon DNS" date = 2022-05-28T18:40:11+02:00 draft = false categories = ["dns"] tag = ["dns"] +++ Aujourd'hui notre monde informatique fonctionne quasi à *100%* en API. Les serveurs DNS n'en font pas exception, par exemple avec PowerDNS sans surprise il éxiste une API mais explorons ce qui marche très bien depuis des années : **DNSUpdate** avec sa petite RFC[2136](https://datatracker.ietf.org/doc/html/rfc2136.html). ## DynDNS En 2022 beaucoup d'ISP ne fournissent pas d'*IPv4* ou *IPv6* fixe. Elle change donc régulièrement au gré d'une coupure éléctrique ou plus de votre opérateur. Il éxiste beaucoup de service en ligne pour faire ce travail via une API, peut-être même votre registrar. Mais quand on héberge soit même son DNS il y a plus simple avec l'utilisation de **nsupdate** bien souvent déjà installé sur votre machine dès que vous avez besoin de creuser la question (*dig*). Sinon il est présent par exemple via le paquet *bind9-dnsutils* sous debian. On va donc faire un tout petit script qui va obtenir son ipv4 et sa v6 public et les mettres à jours, ici sur le serveur **dnsupdate.verry.org** : ```bash DOMAIN="verry.org" HOST="raoul.verry.org" ORIG_IPv4=$(dig +short a $HOST @dnsupdate.verry.org) ORIG_IPv6=$(dig +short aaaa $HOST @dnsupdate.verry.org) IPv4=$(curl -4 https://ip.verry.org) IPv6=$(curl -6 https://ip.verry.org) SERVER=$(dig +short aaaa dnsupdate.verry.org) if [ "$ORIG_IPv4" != "$IPv4" ] || [ "$ORIG_IPv6" != "$IPv6" ]; then nsupdate -y '::' <::' <::' <