From c010993b713db9e5e005d452c5c75072f28ce897 Mon Sep 17 00:00:00 2001 From: Tom David--Broglio Date: Mon, 22 Jan 2024 13:02:07 +0100 Subject: [PATCH] amelioration doc maj dynamique et tsig --- HowtoBind.md | 47 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/HowtoBind.md b/HowtoBind.md index 63d364eb..616db312 100644 --- a/HowtoBind.md +++ b/HowtoBind.md @@ -418,17 +418,36 @@ Options : ## Mise à jour dynamique -Pour faire la mise à jour dynamique, Bind génère un ficher de journal `.jnl` binaire du même nom que la zone contenant l'historique des modifications apportées à la zone. -Il est possible de mettre à jour une zone DNS sans éditer le fichier avec `nsupdate`. +La mise à jour dynamique permet de mettre à jour une zone avec des demandes de mise à jour +"Dynamic Updates" envoyés par le réseau au server authoritaire pour ajouter ou supprimer des champs : + +* Il n'y a plus besoin de se connecter au serveur authoritaire pour changer le fichier de zone +* La syntaxe d'une demande est vérifiée avant d'être envoyé pour éviter d'ajouter des entrées incorrectes. +* Le serial SOA est incrémenté automatiquement. +* Dans une zone DNSSEC, le changement est immédiatement signé. +* On peut facilement scripter ces mises à jours ( certbot par exemple ) + +Pour faire la mise à jour dynamique, Bind génère un fichier de journal `.jnl` binaire du même nom que la zone, contenant l'historique des modifications apportées à la zone. +Il est possible de mettre à jour le fichier de zone directement mais ce n'est pas recommandé car on va devoir temporairement désactiver la mise à jour dynamique "freeze". ~~~ -$ rndc freeze domain.tld -[Modification manuelle de la zone] -$ rndc thaw domain.tld -$ rndc reload domain.tld +# voir les changement dans le fichier de journal .jnl +$ named-journalprint [fichier_zone_jnl] +# si il y a des changement, on peut les synchroniser et vider le journal +$ rndc sync -clean example.com +# desactiver la mise à jour dynamique +$ rndc freeze [nom_zone] +# Modification manuelle de la zone avec vim ou autre +$ named-checkzone +$ rndc unfreeze [nom_zone] +$ rndc reload [nom_zone] ~~~ -> *Note* : la synchronisation avec le fichier réel de zone n'est pas faite en temps réel, cela se fait toutes les 15 minutes en général : il faut donc faire attention si l'on veut éditer le fichier de zone, il faudra forcer la synchronisation ainsi : +Comme cela est compliqué et risqué, il est préférable d'utiliser un outil comme nsdiff avec nsvi qui va nous permettre d'éditer la zone comme si on l'edite à la main, mais va envoyer les changements par demande de mise à jour. + +Voir : https://dotat.at/prog/nsdiff/ (documentation à venir) + +> *Note* : la synchronisation avec le fichier réel de zone n'est pas faite en temps réel, cela se fait toutes les 15 minutes en général, on peut forcer la synchronisation avec : ~~~ $ rndc sync [nom_zone] @@ -466,7 +485,19 @@ $ named-checkconf /etc/bind/named.conf && rndc reload $ rndc tsig-list ~~~ -On peut alors tester confirmer le fonctionnement avec nsupdate : +On peut alors confirmer le fonctionnement avec nsupdate + +~~~{.bash} +$ nsupdate -y hmac-sha512:happydomain:"3JtiVQEBFXtQeU/3PorKpCV7jM1bZEEzkdD1zb9emvwaBZFSgYxOXV41OdSeeHb5dcud+SvNo47jEf5yRwfSkQ==" +> server [port] +> zone example.com +> update add www.example.com. 172800 IN A 192.168.254.7 +> send +> +~~~ + +Une réponse vide après send indique que la mise à jour à eu lieu. Sinon un code d'erreur sera affiché. + ## DNSSEC