Pour peu que l’on dispose d’un compte, Hetzner propose gratuitement des serveurs DNS secondaires.
Déclarer la zone chez Hetzner
Dans la console, clic sur la section DNS, puis le bouton ‘add DNS zone’. Dans la boite suivante : saisie du nom, clic sur l’option du bas, puis clic sur ‘add DNS zone’. Là il faut saisir l’adresse IP du serveur primaire. On peut y adjoindre une clé TSIG, mais Hetzner en choisit le nom <nom de domaine>.<IP> (en ipV6, les : sont remplacés par des tirets) ex : knotpremier.fr.2a01-04f8-0c17-2604-0000-0000-0000-0001. Si on souhaite mettre en place TSIG, il faudra mettre ceci comme id de clé. La clé dépend donc du nom de domaine et n’ayant pas trouvé de configuration compacte, j’ai abandonné TSIG.
La zone est disponible quasi immédiatement.
Configuration du primaire
Dans la section remote, je déclare les secondaires :
remote:
#<couic>
- id: hetzner_ns1 # ns1.first-ns.de.
address: 2a01:4f8:0:a101::a:1
- id: hetzner_ns2 # robotns2.second-ns.de.
address: 2a01:4f8:0:1::5ddc:2
- id: hetzner_ns3 # robotns3.second-ns.com.
address: 2001:67c:192c::add:a3
Dans un premier temps, j’avais déclaré un seul « remote » avec 3 adresses. Knot comprend cela comme un serveur avec 3 adresses. En cas de mise mise à jour de la zone, il ne notifie que la première adresse.
J’ajoute une ACL:
acl:
#<couic>
- id: acl_hetzner
remote: [hetzner_ns1, hetzner_ns2, hetzner_ns3]
action: transfer # accepte une demande de transfert des secondaires
J’ajoute un template :
template:
#<couic>
- id: hetzner_second
storage: "/var/lib/knot"
file: "%s.zone"
module: mod-rrl/default
acl: [maison,acl_hetzner]
master: maison # le boss
notify: [hetzner_ns1, hetzner_ns2, hetzner_ns3] # pour prévenir le secondaire
Enfin, j’instancie ce nouveau template dans la zone :
zone:
- domain: cestquedu.fun
template: hetzner_second
Prise en compte
Enfin pour publier la zone chez Hetzner :
knotc reload
knotc zone-notify cestquedu.fun
Conclusion
La mise en œuvre est rapide, aucun délai dans la déclaration de la zone (elle supporte unicode, inutile de convertir le nom de la zone en punycode) et aucun délai de mise à jour des DNS après un notify.
Parmi les limitations, j’ai noté, 25 zones max et un TTL minimal à 60s.
