2 votes

Spécification d'un enregistrement MX IPv6 via djbdns ou djbdns-fefe ?

Je suis en train de configurer des enregistrements MX IPv6 dans mon environnement djbdns. J'expérimente également avec djbdns-fefe à cette fin.

Selon la documentation de djbnds-fefe, "... tinydns-edit n'accepte pas encore les adresses IPv6 pour les enregistrements NS ou MX". De plus, je ne connais pas de méthode pour configurer des enregistrements IPv6 dans l'environnement djbdns traditionnel.

Je cherche une solution à ce problème, mais je n'ai rien trouvé.

Je ne veux pas abandonner complètement dbjdns ou djbdns-fefe, alors est-ce que quelqu'un sait comment configurer des enregistrements MX IPv6 dans un environnement djbdns ou djbdns-fefe?

... ou est-ce simplement impossible?

Merci d'avance.

MISE À JOUR:

Pour être clair, la spécification d'un enregistrement MX créé par djbdns prend ...

  1. le nom DNS de niveau supérieur de l'enregistrement MX, (par exemple, "exemple.com");

  2. l'adresse IP à attribuer au nom de domaine MX qu'il générera, (par exemple, "10.11.12.13");

  3. un préfixe pour le nom de domaine MX qu'il générera (par exemple, "x");

  4. une priorité (par exemple, 0).

Dans cet exemple, il créerait l'enregistrement "MX" suivant :

exemple.com. IN MX 86400 0 x.mx.exemple.com.

Et il crée aussi automatiquement un deuxième enregistrement : un enregistrement "A" :

x.mx.exemple.com. IN A 86400 10.11.12.13

Le problème est que la syntaxe de djbdns pour créer un enregistrement MX n'acceptera jamais une adresse IPv6 pour l'élément 2 ci-dessus, et il ne créera jamais automatiquement un enregistrement AAAA en conséquence de sa spécification d'enregistrement MX.

Et bien que le logiciel djbdns-fefe permette la création directe d'enregistrements AAAA, ni djbdns-fefe ni le djbdns d'origine ne fournissent de moyen de créer un enregistrement MX qui fait référence au nom de domaine basé sur IPv6 spécifié dans cet enregistrement AAAA.

J'essaie de trouver une solution de contournement pour cette limitation afin de pouvoir toujours utiliser djbdns pour créer un enregistrement MX basé sur IPv6, si possible.

Voici les spécifications de la syntaxe d'origine de djbdns ...

https://cr.yp.to/djbdns/tinydns-data.html

Et voici la documentation de l'amélioration IPv6 de djbdns-fefe ...

https://www.fefe.de/dns/

1voto

Tash Pemhiwa Points 2800

Ce n'est pas vraiment une réponse positive à ma question, mais c'est la meilleure que j'ai pu trouver.

Il semble que je sois totalement malchanceux concernant djbdns et djbdns-fefe qui offrent une syntaxe pour spécifier les enregistrements MX IPv6, et après de nombreuses recherches, je n'ai toujours pas trouvé de hacks ou de contournements qui me permettraient de le faire exactement de la manière dont je le demandais ici.

Cependant, j'ai trouvé un moyen détourné de le faire sans abandonner complètement mes informations de configuration djbdns tinydns.

Tout d'abord, il est important pour moi d'expliquer qu'il y a des années, j'ai écrit un utilitaire personnalisé pour générer des commandes tinydns basées sur une syntaxe plus conviviale (où l'utilisateur particulier auquel je suis amical est "moi" ... LOL). Pour le moment, je veux continuer à utiliser cet utilitaire.

Ma "solution" au problème des enregistrements MX IPv6 est de continuer à utiliser cet ancien utilitaire personnalisé, et maintenant d'écrire également un nouvel utilitaire qui me permettra de générer des fichiers de configuration bind9 basés sur ma configuration actuelle de djbdns, puis de passer à l'utilisation de bind9 au lieu de djbdns. Dans bind9, je peux alors effectivement configurer les enregistrements MX IPv6.

Un jour, je réécrirai mon ancien utilitaire personnalisé original pour qu'il génère directement des enregistrements spécifiques à bind9 sans que je doive passer par l'étape intermédiaire de la conversion de la configuration de djbdns en configuration de bind9. Mais je n'ai pas le temps de le faire maintenant, donc voici le nouvel utilitaire que j'ai écrit pour convertir les informations de configuration de djbdns en fichiers de configuration de bind9 ...

Ce nouvel utilitaire est un script Python compliqué qui est trop long pour être répertorié ici dans son intégralité, donc je vais simplement résumer son fonctionnement. Et de toute façon, une grande partie est spécifique à mon hôte particulier, et je doute que le script tel qu'écrit s'exécute ailleurs que sur mon propre hôte. Mais en général, il fonctionne comme suit ...

(1) Installer et configurer un service bind9 fonctionnel.

(2) Même si j'utilise maintenant bind9, le serveur djbdjs doit toujours être en cours d'exécution pour que mon script fonctionne. Je l'ai configuré comme un serveur DNS "dum...

/command/envuidgid root /usr/bin/tcpserver -vDHRl0 [DNSSERVERADDR] 53 /command/axfrdns

... où [DNSSERVERADDR] est l'adresse privée et locale à laquelle le serveur djbdns "dummy" écoute.

(5) Le script attend que ce démon soit opérationnel, puis lance un autre démon via le package "multiprocessing" de Python qui parcourt les noms de tous les domaines que j'héberge, et pour chaque domaine (que j'appellerai [NOMDUDOMAINE], ci-dessous), il exécute cette commande ...

/usr/bin/dig axfr [NOMDUDOMAINE] @[DNSSERVERADDR]

(6) La sortie de chaque appel "dig" est capturée, puis je parcours toutes les lignes de cette sortie. Si je rencontre un enregistrement AAAA pour l'un des domaines dont les noms sont stockés dans la liste "email_hosts" mentionnée ci-dessus, je fais ce qui suit ...

(7) Prenez le nom de domaine de cet enregistrement AAAA particulier, que j'appellerai [NOMDUDOMAINE], et ajoutez le préfixe "mx." à ce nom de domaine. J'appellerai ce résultat [NOMDU MX]. Par exemple, si [NOMDUDOMAINE] est "monhote.example.com", alors [NOMDU MX] contiendra le nom "mx.monhote.example.com".

(8) J'ajoute alors les lignes supplémentaires suivantes à la liste de sortie, en supposant que l'adresse IPv6 de "monhote.example.com" dans son enregistrement AAAA est [ADRESSE IPV6]:

mx.monhote.example.com 86400 IN AAAA [ADRESSE IPV6]
monhote.example.com    86400 IN MX   mx.monhote.example.com 10

(9) Je concatène toutes ces lignes de sortie pour le domaine donné, y compris les deux nouvelles lignes que j'ai éventuellement créées, puis j'écris le résultat dans un fichier appelé "db.[NOMDUDOMAINE]" dans le répertoire /var/lib/bind (dont le contenu original a été sauvegardé au préalable sous /var/lib/bind.backup).

(10) De plus, pour chaque [NOMDUDOMAINE] traité de cette manière basée sur la sortie de dig-axfr, je ajoute également le texte suivant à un nouveau fichier /etc/bind/named.conf.local (après avoir sauvegardé la version actuelle sous /etc/bind/named.conf.local.backup) ...

zone "[NOMDUDOMAINE]" {
  type master;
  file "/var/lib/bind/db.[NOMDUDOMAINE]";
};

Il convient également de noter que le début de ce nouveau fichier /etc/bind/named.local.conf ressemble à ceci:

include "/etc/bind/zones.rfc1918";

(11) Après avoir traité tous les domaines de cette manière, je termine les deux démons que j'avais démarrés via le mécanisme "multiprocessing" de Python.

(12) Je redémarre ensuite le démon "named".

Ainsi, je peux continuer à utiliser le même utilitaire que j'ai écrit il y a des années pour simplifier la génération de commandes tinydns, mais en même temps, j'utilise effectivement bind9 comme mon serveur DNS maintenant.

Et comme je l'ai mentionné ci-dessus, je réécrirai éventuellement cet utilitaire pour générer directement des enregistrements spécifiques à bind9. Ensuite, toute cette procédure basée sur axfr disparaîtra.

Même si j'ai été satisfait de djbdns toutes ces années, je dois admettre que je suis meilleur de nos jours en utilisant bind9.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X