Je suis en train d'implémenter une solution pour équilibrer les requêtes DNS sur plusieurs serveurs DNS récursifs afin d'augmenter la limite de QPS.
Chaque VM centos a un espace de noms gi configuré avec le loopback du ns configuré à une seule IP publique DNS.
Chaque serveur DNS annonce la même IP DNS à mon réseau à travers les peerings bgp configurés sur mon routeur quagga.
toutes les requêtes entrantes sont équilibrées via le cœur du réseau à l'aide de la fonction bgp maximum-paths
Cependant, un seul serveur DNS Bind interrogera l'IP DNS, l'autre retournera simplement servfail (ce n'est pas statique, si je tue les peerings bgp vers Server1, les requêtes sont réussies, la même chose se produit si je tue les peerings vers Server2), mais ils ne fonctionneront pas en tandem.
Une chose que j'ai remarquée est que si je fais un
ip netns exec gi dig @DNSIP +trace
ip netns exec gi dig @DNSIP cloudflare.com +trace
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.6 <<>> @DNSIP cloudflare.com +trace
; (1 server found)
;; global options: +cmd
. 509520 IN NS e.root-servers.net.
. 509520 IN NS c.root-servers.net.
. 509520 IN NS f.root-servers.net.
. 509520 IN NS j.root-servers.net.
. 509520 IN NS b.root-servers.net.
. 509520 IN NS i.root-servers.net.
. 509520 IN NS h.root-servers.net.
. 509520 IN NS m.root-servers.net.
. 509520 IN NS k.root-servers.net.
. 509520 IN NS a.root-servers.net.
. 509520 IN NS l.root-servers.net.
. 509520 IN NS d.root-servers.net.
. 509520 IN NS g.root-servers.net.
. 509520 IN RRSIG NS 8 0 (didn't include the key)
alors que Server2 ne renvoie pas de RRSIG bien que les deux fichiers named.conf contiennent dnssec-enable yes et dnssec-validation yes.
ip netns exec gi dig @DNSIP cloudflare.com +trace
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.6 <<>> @DNSIP cloudflare.com +trace
; (1 server found)
;; global options: +cmd
. 518400 IN NS c.root-servers.net.
. 518400 IN NS k.root-servers.net.
. 518400 IN NS g.root-servers.net.
. 518400 IN NS d.root-servers.net.
. 518400 IN NS a.root-servers.net.
. 518400 IN NS j.root-servers.net.
. 518400 IN NS e.root-servers.net.
. 518400 IN NS h.root-servers.net.
. 518400 IN NS f.root-servers.net.
. 518400 IN NS i.root-servers.net.
. 518400 IN NS m.root-servers.net.
. 518400 IN NS b.root-servers.net.
. 518400 IN NS l.root-servers.net.
Ma configuration dnssec est la suivante :
dnssec-enable no;
dnssec-validation no;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
Si je désactive dnssec dans mon fichier named.conf, les serveurs DNS fonctionnent en tandem et je peux atteindre mon objectif de 20 000 QPS, mais si dnssec est activé, cela ne fonctionne pas.
Quelqu'un a-t-il déjà rencontré un problème de ce type ? S'agit-il d'une limitation de BIND derrière un seul PublicIP ? ou s'agit-il, comme je le soupçonne, d'un problème lié à la configuration de DNSSEC ?