1 votes

BIND9 - dig n'est pas en mesure de résoudre à partir d'un autre serveur

$ named -v
BIND 9.16.1-Ubuntu (Stable Release) <id:d497c32>

J'ai 3 serveurs configurés dans digitalocean nyc1 tous dans le même sous-réseau

sur le serveur01 - j'ai installé bind9 et configuré les zones et cela fonctionne très bien

server01 $ dig @10.116.16.2 -p 53 ns1.prod.nyc1.example

...
;; ANSWER SECTION:
ns1.prod.nyc1.example. 43200    IN  A   10.116.16.2

Cela fonctionne bien lorsque je suis sur le serveur01

du serveur02 (qui se trouve également dans le même sous-réseau)

server02 $ dig @10.116.16.2 -p 53 ns1.prod.nyc1.example

; <<>> DiG 9.16.1-Ubuntu <<>> @10.116.16.2 -p 53 ns1.prod.nyc1.example
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached

Cependant, je peux y accéder par telnet à partir de server02

server02 $ telnet 10.116.16.2 53
Trying 10.116.16.2...
Connected to 10.116.16.2.
Escape character is '^]'.

et maintenant quand je redémarre sudo systemctl restart bind9 sur le serveur01, il se déconnecte sur le serveur02

Voici le /etc/bind/named.conf.options

options {
        directory "/var/cache/bind";
        recursion yes;
        listen-on port 53 { any; };
        allow-query { any; };
        allow-recursion { any; };

        dnssec-enable no;
        dnssec-validation no;

        auth-nxdomain no;    # conform to RFC1035
};

include "/etc/bind/consul.conf";

Qu'est-ce que je fais de travers ? La recherche fonctionne sur server01, mais à partir d'un autre serveur, elle ne fonctionne pas.

J'ai regardé - Configuration du DNS interne [Bind9], impossible d'effectuer des recherches à partir d'une autre machine, mais possible d'effectuer des recherches localement mais cela ne résout pas mon problème

2 votes

Telnet utilise TCP alors que DNS (dig) utilise UDP par défaut mais aussi TCP, et cette différence peut expliquer ce que vous observez. Essayez dig +tcp pour forcer une connexion TCP, et il y parviendra probablement, ce qui prouve que vous filtrez l'UDP là où vous ne le devriez pas.

0 votes

Oooh oui merci merci C'était le problème. dans digitalocean j'avais une règle de firewall pour accepter tous les TCP de ce sous-réseau, une fois que j'ai ajouté une règle pour accepter tous les UDP dans ce sous-réseau, ça fonctionne maintenant. Vous souhaitez donner cette réponse ? Je l'accepte volontiers.

1voto

Patrick Mevzek Points 7707

telnet utilise le protocole TCP, tandis que le protocole DNS ( dig ) utilise UDP par défaut mais aussi TCP, et cette différence peut expliquer ce que vous observez.

Essayer dig +tcp pour forcer une connexion TCP, et il y parviendra probablement, ce qui prouve que vous filtrez l'UDP là où vous ne le devriez pas.

Supprimez ce filtrage sur UDP dans vos systèmes et tout devrait commencer à fonctionner comme prévu.

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