Definir registros NS diferentes como autoritativos em DNS autoritativo

4

Tenho servidores DNS para um domínio definido como um conjunto de servidores DNS autoritativos no registrador. No entanto, esses arquivos de zona de servidores DNS para o domínio têm um conjunto diferente de registros NS para ele. Alguns servidores DNS estão passando a solicitação para os servidores NS definidos no arquivo de zona; no entanto, alguns outros (como o Google, o Level 3 e os servidores DNS públicos do OpenDNS) não estão resolvendo os registros corretamente. Eles retornam os registros NS apropriados, mas as solicitações de registros A no servidor DNS subdelegado não estão sendo retornadas. Eu forneci muitos resultados abaixo; mas a essência é que as solicitações não estão sendo encaminhadas para os registros NS que defini em QUICKROUTEDNS.COM para o domínio que são registros NS apontando para o DNS em nuvem da Amazon. Em vez disso, as solicitações estão parando em QUICKROUTEDNS.COM. Então, como eu instruo os servidores DNS para continuarem suas consultas para a Amazon como sua autoridade para o domínio, sem alterar os registros DNS no registrador?

Veja um exemplo:

Os registros de DNS do domínio no registrador:

Name Server: NS1.QUICKROUTEDNS.COM
Name Server: NS2.QUICKROUTEDNS.COM
Name Server: NS3.QUICKROUTEDNS.COM

Puxando os registros NS para o domínio (o DNS autoritativo, QUICKROUTEDNS.COM, tem esses servidores configurados como o registro NS):

$ host -t NS domain.com 
domain.com name server ns-1622.awsdns-10.co.uk.
domain.com name server ns-1387.awsdns-45.org.
domain.com name server ns-774.awsdns-32.net.
domain.com name server ns-48.awsdns-06.com.

Um registro dos servidores DNS da Amazon que hospedam o domínio:

$ host www.domain.com ns-1387.awsdns-45.org
Using domain server:
Name: ns-1387.awsdns-45.org.
Address: 205.251.197.107#53
Aliases:

www.domain.com has address 201.201.201.201

No entanto, quando eu o solicito de qualquer servidor de nomes:

$ host www.domain.com 8.8.8.8
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases:

Host www.domain.com not found: 3(NXDOMAIN)

Isso é consistente entre quase todos os servidores DNS, embora haja um FEW que relatará o registro como esperado.

Aqui está uma saída de dig + trace ao tentar extrair o registro A:

$ dig @8.8.8.8 www.domain.com A +trace                                                                         

; <<>> DiG 9.8.3-P1 <<>> @8.8.8.8 www.domain.com A +trace
; (1 server found)
;; global options: +cmd
.           1341    IN  NS  m.root-servers.net.
.           1341    IN  NS  j.root-servers.net.
.           1341    IN  NS  a.root-servers.net.
.           1341    IN  NS  d.root-servers.net.
.           1341    IN  NS  f.root-servers.net.
.           1341    IN  NS  c.root-servers.net.
.           1341    IN  NS  b.root-servers.net.
.           1341    IN  NS  e.root-servers.net.
.           1341    IN  NS  i.root-servers.net.
.           1341    IN  NS  h.root-servers.net.
.           1341    IN  NS  g.root-servers.net.
.           1341    IN  NS  l.root-servers.net.
.           1341    IN  NS  k.root-servers.net.
;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 58 ms

net.            172800  IN  NS  a.gtld-servers.net.
net.            172800  IN  NS  e.gtld-servers.net.
net.            172800  IN  NS  c.gtld-servers.net.
net.            172800  IN  NS  b.gtld-servers.net.
net.            172800  IN  NS  g.gtld-servers.net.
net.            172800  IN  NS  i.gtld-servers.net.
net.            172800  IN  NS  j.gtld-servers.net.
net.            172800  IN  NS  k.gtld-servers.net.
net.            172800  IN  NS  h.gtld-servers.net.
net.            172800  IN  NS  f.gtld-servers.net.
net.            172800  IN  NS  d.gtld-servers.net.
net.            172800  IN  NS  m.gtld-servers.net.
net.            172800  IN  NS  l.gtld-servers.net.
;; Received 503 bytes from 192.36.148.17#53(192.36.148.17) in 586 ms

domain.com.     172800  IN  NS  ns1.quickroutedns.com.
domain.com.     172800  IN  NS  ns2.quickroutedns.com.
domain.com.     172800  IN  NS  ns3.quickroutedns.com.
;; Received 153 bytes from 192.55.83.30#53(192.55.83.30) in 790 ms

domain.com.     3600    IN  SOA cns1.atlantic.net. noc.atlantic.net. 2016033004 28800 7200 604800 3600
;; Received 88 bytes from 69.16.156.227#53(69.16.156.227) in 712 ms

Como podemos ver, é só chegar aos servidores de nomes QUICKROUTEDNS.COM e não solicitar os servidores de nomes da Amazon. Então, como eu digo aos servidores DNS para buscar suas consultas nos servidores da Amazon e NÃO para parar no QuickRouteDNS.COM?

    
por Brendan 31.03.2016 / 21:56

2 respostas

3

Há realmente duas perguntas sendo feitas aqui e elas se contradizem diretamente:

  1. como eu instruo os servidores DNS a continuarem suas consultas para a Amazon como sua autoridade para o domínio, sem alterar os registros DNS no registrador?
  2. como eu digo aos servidores DNS para buscarem suas consultas nos servidores da Amazon e NÃO para parar no QuickRouteDNS.COM?

Toda delegação na pesquisa de DNS deve ser mais específica que a anterior. Em outras palavras, você pode delegar subdomínios, mas não pode re-delegar exatamente o mesmo nome que foi delegado ao seu servidor. A solução correta é alterar a configuração no nível de registrador, o que você está tentando evitar.

O que você tem agora é uma configuração incorreta comum, conhecida como incompatibilidade de registro NS, que dá uma impressão incorreta de que esse design é viável. Abaixo está uma explicação do que está acontecendo, mas será um desafio seguir sem uma boa compreensão dos conceitos de DNS. Se eu perder você, lembre-se de que corrigir os dados do registrador é a maneira correta de resolver o problema.

Para ilustrar, aqui estão dois exemplos de snippets de zona:

$ORIGIN example.com
@       2941 IN SOA ns1.example.com. someone.example.com. (
            2015071001 ; serial
            7200       ; refresh (2 hours)
            900        ; retry (15 minutes)
            7200000    ; expire (11 weeks 6 days 8 hours)
            3600       ; minimum (1 hour)
            )
@   IN NS ns1
@   IN NS ns2

sub IN NS ns1.contoso.com.
sub IN NS ns2.contoso.com.

Nos servidores de nomes contoso.com:

$ORIGIN sub.example.com.
@       2941 IN SOA ns1.sub.example.com. someone.contoso.com. (
                2015071001 ; serial
                7200       ; refresh (2 hours)
                900        ; retry (15 minutes)
                7200000    ; expire (11 weeks 6 days 8 hours)
                3600       ; minimum (1 hour)
                )
@     IN NS bagel.contoso.com.
@     IN NS bacon.contoso.com.

Quais registros NS nas duas zonas acima são autoritativos para sub.example.com ? Se você achou que era ns1 e ns2.contoso.com , estaria enganado. Ao contrário da crença popular, um servidor de nomes que executa uma delegação não é considerado autoritativo para os registros NS usados para definir essa delegação. A definição autoritativa é de propriedade da zona na extremidade de recebimento da delegação.

Estabelecemos que bacon e bagel são autoritativos. O que não é tão óbvio aqui é que os namesevers não necessariamente perceberão isso imediatamente. As delegações são seguidas de boa fé, e inicialmente será assumido que os servidores que recebem a delegação são autoritativos. É somente quando esses registros NS são atualizados que o dano cerebral ocorre. As atualizações podem ser acionadas por qualquer número de itens, desde o TTL dos registros de NS de delegação que expiram a uma solicitação explícita para o valor desses NS records. Quando os registros NS forem sobrescritos, os novos servidores serão usados.

Juntando tudo, há um período inicial em que os servidores de nomes definidos pelo registrador estão sendo usados, seguido por um período em que o segundo conjunto de servidores de nomes está sendo usado. Durante o primeiro período, todos os registros que existem apenas no segundo conjunto de servidores falharão. Durante o segundo período, qualquer registro que exista apenas no primeiro conjunto de servidores falhará.

Pode parecer que o problema acabará se corrigindo (espere que tudo seja atualizado), mas isso nunca acontecerá. As pessoas reiniciarão seus servidores de nomes, liberarão seu cache ou defenderão novos servidores de nomes. Seu domínio existirá em um estado inconsistente de fluxo até que os registros NS se tornem consistentes. Os gurus de DNS podem fazer algumas coisas interessantes com isso, mas os casos de uso válidos para esse tipo de configuração são poucos e distantes entre si. O usuário médio deve evitar definições conflitantes de servidores de nomes a todo custo.

    
por 01.04.2016 / 09:37
0

Dizendo "Tenho servidores DNS para um domínio definido como um conjunto de servidores DNS autoritativos no registrador. No entanto, esses arquivos de zona de servidores DNS para o domínio têm um conjunto diferente de registros NS para ele." significa que você criou uma delegação inválida. Você pode parar por aí, pois nada funcionará corretamente com esse tipo de configuração, então não faça isso!

Ferramentas úteis para solucionar problemas: link e link

mais duas coisas:

  1. não use host para solução de problemas, apenas dig (mas @something e + trace são contraditórios)
  2. como dito por @Ward, forneça o verdadeiro nome de domínio sobre o qual você está perguntando se deseja ter uma boa ajuda de volta para você
por 16.04.2017 / 21:34