RFC que requer que os servidores DNS respondam a solicitações de domínio desconhecidas

10

Meu registrador de domínio e DNS fornecem atualmente ignora as solicitações de DNS para domínios desconhecidos. Por ignorar eu quero dizer buracos negros e nunca responde o que faz com que meus clientes DNS e resolva as bibliotecas para tentar novamente, voltar e, finalmente, o tempo limite.

dig @NS3.DNSOWL.COM somedomainthatdoesntexist.org
...
;; connection timed out; no servers could be reached

Ao pesquisar outros serviços populares de nomes de domínio, vejo que esse comportamento é bem único, já que outros provedores retornam um RCODE de 5 (RECUSADO):

dig @DNS1.NAME-SERVICES.COM somedomainthatdoesntexist.org
dig @NS-284.AWSDNS-35.COM somedomainthatdoesntexist.org
dig @NS21.DOMAINCONTROL.COM somedomainthatdoesntexist.org

Todos retornam algo como o seguinte:

;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 64732
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

Retornar REFUSED imediatamente é o IMHO apropriado, em vez de simplesmente descartar a solicitação no chão da sala do servidor.

Quando eu reclamo para o meu provedor sobre seus servidores não estarem respondendo, eles me pedem para citar o RFC que seus servidores estão violando. Eu sei que é estranho que eles estejam me pedindo para provar que seus servidores devem responder a todos os pedidos, mas que assim seja.

Perguntas :

  • É minha estipulação que, a menos que haja ids de solicitação duplicados ou algum tipo de resposta do DOS, um servidor deve sempre responder à solicitação. Isso está correto?
  • Qual RFC e seção específica devo citar para apoiar minha estipulação?

Para mim, é ruim não responder a uma consulta DNS. A maioria dos clientes fará o backoff e retransmitirá a mesma consulta para o mesmo servidor DNS ou outro servidor. Não só eles estão diminuindo a velocidade dos clientes, mas eles estão fazendo com que a mesma consulta seja feita novamente por seus próprios servidores ou outros, dependendo dos servidores de nomes oficiais e das entradas NS.

Em RFC 1536 e 2308 Eu vejo muitas informações sobre armazenamento em cache negativo por motivos de desempenho e para parar a retransmissão da mesma consulta. Em 4074 eu vejo informações sobre como retornar uma resposta vazia com um RCODE de 0, para que o cliente saiba que não há informações de ipv6 o que deve fazer com que o cliente pergunte sobre A RRs, que é outro exemplo de uma resposta vazia.

Mas não consigo encontrar um RFC que diga que um servidor DNS deve responder a uma solicitação, provavelmente porque está implícito.

O problema específico acontece quando eu migro meu domínio (e os registros DNS associados) para seus servidores ou os primeiros X minutos depois que eu registro um novo domínio com o serviço deles. Há uma defasagem entre o tempo em que os servidores de nomes oficiais mudam (o que é muito rápido atualmente) e seus servidores começam a servir meus registros DNS. Durante esse tempo de atraso, os clientes DNS pensam que seus servidores são autoritativos, mas nunca respondem a uma solicitação, mesmo com REFUSED . Eu entendo o atraso que é bom, mas não concordo com a decisão de não responder aos pedidos de DNS. Para o registro, eu entendo como contornar essas limitações em seu sistema, mas ainda estou trabalhando com eles para melhorar seus serviços para estarem mais alinhados com o protocolo DNS.

Obrigado pela ajuda.

    
por Gray 07.03.2016 / 21:28

2 respostas

15

O conselho de Shane está correto. Não migrar dados de um servidor autoritativo para outro antes de iniciar uma transição é um convite para uma interrupção. Independentemente do que acontece a partir desse momento, esta é uma interrupção iniciada pela pessoa que fez os registros de NS. Isso explica por que mais pessoas não estão fazendo essa reclamação ao seu provedor.

Dito isto, esta ainda é uma pergunta interessante para responder, então vou dar uma olhada nisso.

A funcionalidade básica dos servidores DNS é coberta pelos documentos RFC 1034 e RFC 1035 , que coletivamente formam DST 13 . A resposta deve vir desses dois RFCs ou ser esclarecida por um RFC posterior que o atualize.

Antes de continuarmos, há uma grande armadilha aqui fora do escopo do DNS que precisa ser chamado: ambos os RFCs são anteriores BCP 14 (1997), o documento que esclareceu a linguagem de MAIO, DEVE, DEVE, etc.

  • Padrões que foram criados antes desta linguagem ser formalizada podem ter usado linguagem clara, mas em vários casos não. Isto levou a implementações divergentes de software, confusão em massa, etc.
  • STD 13 é, infelizmente, culpado de ser interpretativo em vários áreas. Se a linguagem não for firme em uma área de operação, é frequentemente necessário para encontrar um RFC esclarecedor.

Com isso, vamos começar com o que RFC 1034 §4.3.1 tem a dizer:

  • The simplest mode for the server is non-recursive, since it can answer queries using only local information: the response contains an error, the answer, or a referral to some other server "closer" to the answer. All name servers must implement non-recursive queries.

...

If recursive service is not requested or is not available, the non- recursive response will be one of the following:

  • An authoritative name error indicating that the name does not exist.

  • A temporary error indication.

  • Some combination of:

    RRs that answer the question, together with an indication whether the data comes from a zone or is cached.

    A referral to name servers which have zones which are closer ancestors to the name than the server sending the reply.

  • RRs that the name server thinks will prove useful to the requester.

A linguagem aqui é razoavelmente firme. Não há "deveria ser", mas um "será". Isso significa que o resultado final deve ser 1) definido na lista acima, ou 2) permitido por um documento posterior na Standards Track, que altera a funcionalidade. Eu não estou ciente de qualquer palavreado existente para ignorar o pedido e eu diria que o ônus do desenvolvedor é encontrar uma linguagem que refute a pesquisa.

Dado o papel frequente do DNS em cenários de abuso de rede, não se diga que o software de servidor DNS não fornece os botões para