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.