Vincular tempo limite de resposta do servidor DNS

1



Eu configurei um servidor DNS BIND no centos 7. Eu criei o registro da zona mestre, é o seguinte:

$ttl 38400    
loool.ro. IN  SOA ns1.loool.ro. owner.yahoo.com. (    
      1421842090   
      10800
      3600
      604800
      38400 )
loool.ro. IN  NS  loool.ro.
loool.ro. IN  A   86.34.156.51
loool.ro. IN  MX  10 loool.ro.
loool.ro. IN  NS  ns1.loool.ro.
ns1.loool.ro. IN  A   86.34.156.51

O 86.34.156.51 é um endereço IP público, eu posso acessar o servidor via. A porta 53 é aberta, verificada com o verificador de porta on-line gratuito. O named.service está escutando na porta 53. O nome de domínio está registrado e o ns1 também. Mas quando eu verifico com uma ferramenta dnslookup, a resposta ns1.loool.ro não vem, tempo limite após 3 seg.

O arquivo de configuração do servidor BIND é o seguinte:

options {
listen-on port 53 {
    any;
    };
#listen-on-v6 port 53 { ::1; };
directory   "/var/named";
dump-file   "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-transfer {
    none;
    };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
also-notify {
    };
allow-query {
    any;
    };
 };
 logging {
    channel default_debug {
            file "data/named.run";
            severity dynamic;
    };
};
zone "." IN {
    type hint;
    file "named.ca";
 };
 zone "loool.ro" {
    type master;
    file "/var/named/loool.ro.hosts";
 };

Se eu verificar com dig do localhost a resposta vem e corrija, mas de outro host não vem. Se eu definir o allow-query de qualquer um para localhost, o arquivo messages.log registrará as consultas negadas e o endereço IP, para que as consultas cheguem.

Em named.service start, o messages.log mostra o seguinte:

Jan 21 14:31:35 servera named[38627]: using default UDP/IPv4 port range: [1024, 65535]
Jan 21 14:31:35 servera named[38627]: using default UDP/IPv6 port range: [1024, 65535]
Jan 21 14:31:35 servera named[38627]: listening on IPv4 interface lo, 127.0.0.1#53
Jan 21 14:31:35 servera named[38627]: listening on IPv4 interface em1, 10.10.10.100#53
Jan 21 14:31:35 servera named[38627]: listening on IPv4 interface em1, 86.34.156.51#53

Com allow-query = localhost mostra o seguinte:

Jan 21 14:30:55 servera named[38403]: client 109.99.188.88#54374 (loool.ro): query 'loool.ro/A/IN' denied    
Jan 21 14:31:08 servera named[38403]: client 74.125.17.211#53668 (loool.ro): query 'loool.ro/AAAA/IN' denied    

Qual é o problema? Se o allow-query for algum, não há nenhum log de erro no messages.log. Este será um problema de configuração de rede ou o problema está no linux (port ou selinux) e no servidor BIND (misconfig)? O BIND descarta as consultas?

Dig:

loool.ro. 0 IN NS ns1.loool.ro. ;;
Received 71 bytes from 192.162.16.20#53(sec-dns-a.rotld.ro) in 88 ms

loool.ro. 38400 IN A 86.34.156.51
loool.ro. 38400 IN NS ns1.loool.ro.
loool.ro. 38400 IN NS loool.ro.

;; Received 101 bytes from 10.10.10.100#53(ns1.loool.ro) in 1 ms

Como Andrew B sugeriu, eu capturei os pacotes no localhost (onde o servidor dns está localizado), aqui está o resultado, espero que alguém saiba qual é o problema ou o que está errado aqui:

$tcpdump -i em1 -vvv -s 0 -l -n port 53     
tcpdump: listening on em1, link-type EN10MB (Ethernet), capture size 65535 bytes    
 82.79.24.76.14761 > 10.10.10.100.domain: [udp sum ok] 3532 [1au] A? loool.ro. ar: . OPT UDPsize=4096 OK (37)
22:50:49.723204 IP (tos 0x0, ttl 64, id 63258, offset 0, flags [none], proto UDP (17), length 115)
    10.10.10.100.domain > 82.79.24.76.14761: [udp sum ok] 3532*- q: A? loool.ro. 1/1/2 loool.ro. [10h40m] A 86.34.156.51 ns: loool.ro. [10h40m] NS ns1.loool.ro. ar: ns1.loool.ro. [10h40m] A 86.34.156.51, . OPT UDPsize=4096 OK (87)
22:50:49.987990 IP (tos 0x0, ttl 64, id 35514, offset 0, flags [DF], proto UDP (17), length 72)
    10.10.10.100.52857 > 193.231.100.130.domain: [udp sum ok] 2042+ PTR? 38.124.41.103.in-addr.arpa. (44)
    
por Zsigmond Szilveszter 21.01.2015 / 14:30

3 respostas

1

Seu servidor de nomes não pode ser consultado na Internet. A cola está presente, mas isso não ajuda se as respostas não puderem ser recebidas pelo seu servidor de nomes.

Aqui está o final de uma saída +trace semelhante a lVlint67, mas com o sinalizador +additional definido:

loool.ro.               86400   IN      NS      ns1.loool.ro.
ns1.loool.ro.           86400   IN      A       86.34.156.51
dig: couldn't get address for 'ns1.loool.ro': no more

O registro de cola está lá, mas algo está errado. Se eu tentar consultar esse servidor de nomes ...

$ dig @86.34.156.51 loool.ro

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> @86.34.156.51 loool.ro
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached

O servidor de nomes está inacessível, portanto, o domínio está morto para a internet. Além disso, você só tem um único registro de NS definido. Para uma resiliência adequada, você precisa de pelo menos dois servidores de nomes localizados em locais físicos diferentes. O site do registrador realmente não deveria permitir que você aplicasse essa configuração. : (

Também recomendo a leitura de Devemos hospedar nossos próprios servidores de nomes? .

    
por 21.01.2015 / 17:23
0

Parece que você não possui os registros de cola apropriados em seu registrador.

$ dig +trace loool.ro

; <<>> DiG 9.9.5 <<>> +trace loool.ro
;; global options: +cmd
.                       929     IN      NS      j.root-servers.net.
.                       929     IN      NS      m.root-servers.net.
.                       929     IN      NS      e.root-servers.net.
.                       929     IN      NS      f.root-servers.net.
.                       929     IN      NS      l.root-servers.net.
.                       929     IN      NS      g.root-servers.net.
.                       929     IN      NS      h.root-servers.net.
.                       929     IN      NS      k.root-servers.net.
.                       929     IN      NS      c.root-servers.net.
.                       929     IN      NS      a.root-servers.net.
.                       929     IN      NS      d.root-servers.net.
.                       929     IN      NS      i.root-servers.net.
.                       929     IN      NS      b.root-servers.net.
.                       929     IN      RRSIG   NS 8 0 518400 20150131050000 20150121040000 16665 . X95MjU0E0exFVnq9oEJBi/Dih/wwyDhI0NoJ10bj1jthr6kjVElQgZTH l9XepwZOzSWiTzBXrhiMCaAd4MBIiDpNVHl5r8P0BAiw7GfB2HAQkEcr WPTcJe9Y0JX6ruSbcD93gWbvd4/rHZXpgB13y6hWJNlY0zHuu7Iqv4h9 H8s=
;; Received 397 bytes from 8.8.8.8#53(8.8.8.8) in 1025 ms

ro.                     172800  IN      NS      dns-at.rotld.ro.
ro.                     172800  IN      NS      dns-ro.denic.de.
ro.                     172800  IN      NS      sns-pb.isc.org.
ro.                     172800  IN      NS      primary.rotld.ro.
ro.                     172800  IN      NS      sec-dns-a.rotld.ro.
ro.                     172800  IN      NS      sec-dns-b.rotld.ro.
ro.                     86400   IN      NSEC    rocks. NS RRSIG NSEC
ro.                     86400   IN      RRSIG   NSEC 8 1 86400 20150131050000 20150121040000 16665 . d0xAIZZ3+EiqsKePxYP/ym8OEvp4bywmHIUTSigk6CUie8512rpuvXM2 vAL5RRuXDdCCG/0nP4bfR6cz0dgN9lTLdJz68kd4nRYZcTsz5ZLZkQ1T zmyiKEzzRK7PAVUTTfMG94NrHzIIBwLTYdhOqHPWHN4TQC8NYf2hJlyQ CqI=
;; Received 613 bytes from 193.0.14.129#53(k.root-servers.net) in 1130 ms

loool.ro.               86400   IN      NS      ns1.loool.ro.
dig: couldn't get address for 'ns1.loool.ro': no more
    
por 21.01.2015 / 16:00
0

iptables pode estar bloqueando a conexão. Basta permitir que seja nomeado através do firewall.

iptables -I INPUT 1 -p tcp -m tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 2 -p udp -m udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp -m tcp --sport 53:65535 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp -m udp --sport 53:65535 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
    
por 03.11.2018 / 01:12