Eu sou o processo de configurar um monitoramento de servidores DNS de vários hosts da web grandes. Meu objetivo é comparar os tempos de resposta dos servidores DNS, rastreando sua resposta ao ping.
No processo, descobri que os servidores de nomes Bluehost não respondem ao ping. Tentei obter mais informações executando o Pingdom DNS Check no bluehost.com e produziu o seguinte erro:
O servidor de nomes ns1.bluehost.com (74.220.195.31) não responde a consultas por TCP.
O servidor de nomes falhou ao responder às perguntas enviadas pelo TCP. Provavelmente, o servidor de nomes não foi configurado corretamente ou a filtragem incorreta em um firewall. É um equívoco bastante comum que o DNS não precise do TCP, a menos que ele forneça transferências de zona - talvez o administrador do servidor de nomes não esteja ciente de que o TCP geralmente é um requisito.
Eu gostaria de saber o seguinte:
- Até que ponto a afirmação acima é verdadeira?
- Quais são as implicações de um servidor de nomes não responder a consultas por TCP?
fonte
ele deve suportar TCP e UDP - o TCP é para tamanhos de respostas> 512 bytes (o que incluiria transferências de zona) (de acordo com as informações que li, de qualquer maneira. Normalmente, habilito o TCP e o UDP para os NS's que corro ...)
fonte
É bom saber o que os RFCs dizem sobre o assunto, e já temos uma boa resposta autorizada sobre isso, mas, para fins práticos, acho bastante divertido o conselho do Prof. Daniel J. Bernstein, PhD, autor do DJBDNS.
http://cr.yp.to/djbdns/tcp.html#why (2003-01-16)
Observe que ele omite uma menção explícita ao DNSSEC; o motivo é que, de acordo com a DJB, o DNSSEC se enquadra na categoria "sempre um erro". Consulte https://cr.yp.to/djbdns/forgery.html para obter mais detalhes. O DJB possui um padrão alternativo, chamado DNSCurve - http://dnscurve.org/ - que já foi adotado independentemente por alguns provedores (como o OpenDNS). De interesse: /security/45770/if-dnssec-is-so-questionable-why-is-it-ahead-of-dnscurve-in-adoption .
Observe que, se a documentação acima na configuração do DJBDNS for uma indicação de seus recursos, parece que ele suporta apenas o AXFR para TCP. Como muitos provedores ainda usam o DJBDNS, é improvável que eles ofereçam suporte ao DNS sobre TCP sem esforços extras.
PS Observe que, de fato, o DJB pratica o que ele prega. Seus próprios servidores, (1), executam DNSCurve, (2), não respondem adequadamente ao TCP. Somente o
+notcp
seria bem-sucedido (que é o padrão):, enquanto um
+tcp
falharia (aparentemente com uma mensagem de erro diferente, dependendo de qual servidor dele é selecionado):fonte
O TCP é necessário apenas e geralmente usado apenas quando uma resposta longa é necessária. Pode haver impactos negativos. As transferências de zona são feitas por TCP, pois são grandes e precisam ser confiáveis. Não permitir o TCP de servidores não confiáveis é uma maneira de garantir que apenas pequenas respostas sejam fornecidas.
Com a introdução das respostas DNS assinadas, houve um requisito para afrouxar o limite de 512 bytes às respostas UPD. O EDNS0 fornece o mecanismo para respostas UDP mais longas. Falha ao permitir o DNS sobre TCP é altamente provável que interrompa uma implementação de DNS segura.
É perfeitamente possível executar um servidor DNS que possua apenas a porta UDP 53 aberta na Internet. O acesso TCP aos pares DNS é necessário, mas esta é uma pequena lista de hosts.
Há um RFC596 mais recente que agora requer TCP para uma implementação completa do DNS. Isso é destinado a implementadores. Os documentos especificamente não tratam dos operadores, mas alertam que não permitir o TCP pode resultar em vários cenários de falha. Ele detalha uma ampla variedade de falhas que podem resultar se o DNS sobre TCP não for suportado.
Houve discussões sobre o uso do TCP para impedir ataques de amplificação de DNS. O TCP tem seus próprios riscos de negação de serviço, mas a distribuição é mais difícil.
fonte