Pourquoi choisir Zonepub?

Zonepub, c'est quoi ?

‘Zonepub’ est la nouvelle façon de générer des fichiers de zone pour remplacer 'Dynamic Update'. DNS Belgium a mis en production cette nouvelle méthode le 10 mars 2020 pour les domaines .brussels et .vlaanderen. Et avec quelques mois de retard à cause du Covid, également pour le domaine .be, le 10 juin 2020.

Pourquoi utiliser Zonepub ? 

Il y a dix ans, DNS Belgium a été l'un des premiers registres à utiliser la fonction 'Dynamic Update' dans le logiciel DNS.  À l'époque, c'était un grand pas en avant, car nous avons pu apporter les modifications nécessaires au fichier de zone presque immédiatement en direct.  Au fil des ans, Dynamic Update a toujours bien fonctionné et a prouvé qu'il pouvait traiter correctement et dans les délais tous les changements nécessaires dans le fichier de zone. Pour la zone .be, par exemple, il y avait constamment plusieurs changements par minute.

Mais Dynamic Update avait un gros inconvénient : il plaçait les modifications effectuées via la plateforme d'enregistrement directement dans la zone de fichier. Aucune validation supplémentaire a été  effectuée sur le fichier de zone avant sa mise en ligne. Cela comportait un risque, qui a également été révélé après une mise à jour du logiciel DNS en novembre 2018, où les données DNSSEC dans le fichier de zone sont devenues incorrectes en raison d'un bug logiciel

En raison de l'importance croissante d'une chaîne DNSSEC correcte, il est devenu nécessaire d'intégrer des contrôles de validation DNSSEC avant la publication. L'importance croissante de la DNSSEC est attestée par le fait que :

  • il existe de plus en plus de résolvers qui valident également la DNSSEC
  • il existe d'autres sous-domaines qui signent la DNSSEC  

DNS Belgium a finalement décidé d'opter pour la méthode d'implémentation Zonepub, expliquée sur cette page. Cette méthode est déjà mise en œuvre. 

Description de Zonepub

L'application Zonepub est divisée en 3 étapes successives qui redémarrent lorsqu'un run est terminé :  

  • Génération de fichiers de zone (Zonefile)
  • Signature du fichier  
  • Distribution du fichier de zone

À la fin de chaque étape, nous effectuons plusieurs contrôles de validation automatiques.

La génération de fichiers de zone est une application qui crée un fichier de zone DNS à partir de la base de données de la plate-forme d'enregistrement. Le résultat du processus de génération de fichier de zone est un fichier de zone non signé qui contient les dernières mises à jour enregistrées à ce moment et un numéro de série plus élevé.

Nous effectuons un certain nombre de contrôles de validation, puis nous lançons la procédure de signature de la zone. Cette procédure ajoute d'abord tous les enregistrements DNSSEC du précédent run Zonepub au fichier de zone généré.  

Ces enregistrements sont mis à jour si nécessaire :

  • Nous mettons à jour les enregistrements RRSIG pour les enregistrements nouveaux/supprimés/modifiés de la zone non signée. 
  • Nous mettons à jour les fiches RRSIG qui ne seront bientôt plus valables (enregistrements dont la période de validité est sur le point d'expirer). 
  • Nous générons à nouveau la chaîne NSEC3 

Si la procédure de signature s'est bien déroulée et que tous les contrôles de validation qui suivent ne donnent aucun message d'erreur, le processus de distribution du fichier de zone est lancé. Ce processus garantit que la zone signée est distribuée à nos serveurs de noms publics après un dernier cycle de validation.  Cela se fait par un transfert de zone incrémentiel (IXFR), qui ne contient que les mises à jour des données modifiées par rapport au fichier de zone du précédent run Zonepub.  

Avantages et inconvénients de Zonepub

La principale raison pour laquelle DNS Belgium est passé du processus Dynamic Update au processus de Zonepub pour la mise à jour du fichier de zone est la possibilité d’effectuer des contrôles de validation supplémentaires. Ces contrôles réduisent les risques qu'un fichier de zone incorrect ou incomplet soit mis en ligne. Nous pouvons également vérifier les données DNSSEC dans le fichier de zone avant la mise en ligne.

Les contrôles de validation actuellement mis en œuvre sont répartis sur les 3 étapes de la Zonepub (voir ci-dessus) :

  • Validation du fait que le nombre d'enregistrements modifiés se situe dans les valeurs limites prédéfinies
  • Validation des modifications de la taille des fichiers de zone par rapport au fichier de zone précédent ; ces modifications doivent respecter les seuils minimum et maximum
  • Validation de l'exactitude des enregistrements NS et glue dans l'en-tête
  • Validation si le numéro de série a été correctement augmenté et est toujours conforme au RFC  
  • Validation du marqueur EOF et du dernier enregistrement du fichier de zone
  • Validation d’un certain nombre d'enregistrements obligatoires dans le fichier de zone
  • Vérifier si tous les enregistrements au début d’un run Zonepub (génération du fichier de zone) sont toujours bien présents à la fin du même run Zonepub (distribution du fichier de zone).
  • Validation de l'exactitude de la valeur TTL pour chaque enregistrement
  • Contrôles de validation DNSSEC complets 

Si un des contrôles a échoué, le processus de Zonepub est interrompu. Une alerte est immédiatement envoyée à l’équipe opérationnel de DNS Belgium. Le fichier de zone ne sera pas mis à jour tant que le problème n’aura pas été résolu manuellement. Nous préférons une zone légèrement dépassée à une zone incorrecte.

L'exécution de tous ces contrôles prend un certain temps. De ce fait, les mises à jour en direct de la zone interviennent un peu plus tard que lors du processus Dynamic Update, où les mises à jour étaient quasiment instantanées. Pour la zone .be, qui compte actuellement plus de 1,6 million d'enregistrements, l'ensemble du processus de création Zonepub prend environ 15 minutes. Un certain nombre de contrôles de validation sont effectués en parallèle pour accélérer le processus. Les mises à jour du fichier de zone qui arrivent juste après le début d'un nouveau run Zonepub sont incluses dans le run suivant et sont donc mises en ligne après environ 30 minutes.