Esta é uma pergunta canônica sobre registros de cola DNS.
O que exatamente (mas brevemente) é um registro de cola DNS? Por que eles são necessários e como eles funcionam?
Esta é uma pergunta canônica sobre registros de cola DNS.
O que exatamente (mas brevemente) é um registro de cola DNS? Por que eles são necessários e como eles funcionam?
Um registro de cola é um termo para um registro que é servido por um servidor DNS que não tem autoridade para a zona, para evitar uma condição de dependências impossíveis para uma zona DNS.
Digamos que eu possuo uma zona DNS para
example.com
. Eu quero ter servidores DNS que estejam hospedando a zona autoritativa para este domínio para que eu possa realmente usá-lo - adicionando registros para a raiz do domínio,www
,mail
etc. Então, eu coloco os servidores de nomes no registro para delegar eles - esses são sempre nomes, então vamos colocarns1.example.com
ens2.example.com
.Aí está o truque. Os servidores do TLD delegarão aos servidores DNS no registro whois - mas eles estão dentro de
example.com
. Eles tentam encontrarns1.example.com
, perguntam aos.com
servidores e são encaminhados de volta para...ns1.example.com
.O que os registros de cola fazem é permitir que os servidores do TLD enviem informações extras em sua resposta à consulta da
example.com
zona - para enviar também o endereço IP configurado para os servidores de nomes. Não é autoritativo, mas é um ponteiro para os servidores autoritativos, permitindo que o loop seja resolvido.Solicitei que esta resposta fosse mesclada de uma pergunta duplicada, pois as respostas existentes não explicavam o papel da
ADDITIONAL
seção.Para ver como funciona, digite isto:
dig +trace +additional google.com SOA
Isso rastreará a autoridade do servidor de nomes a partir dos servidores raiz (
+trace
). A adição+additional
também mostrará aADDITIONAL
seção de cada resposta do servidor DNS. Normalmente, a maioria das pessoas pensa no DNS em termos das seçõesQUESTION
e dasANSWER
seções, masADDITIONAL
também desempenha um papel importante: se o servidor de nomes souber as respostas para quaisquer consultas relacionadas à resposta, ele poderá fornecer preventivamente essas respostas naADDITIONAL
seção sem exigir consultas adicionais do seu cliente.Observe que os servidores de nomes autoritativos
google.com
estão enraizados no domínio para o qual são autoritativos. (ns1.google.com
,ns2.google.com
, etc.)Quando você pede a um servidor de nomes para fornecer a lista de servidores de nomes para um domínio, eles geralmente fornecem uma lista de
A
registros do tipo (endereços IP) naADDITIONAL
seção, não apenas asNS
respostas do tipo: eles são chamados de registros de cola , usados para evitar dependências. Nesse caso, essesA
registros são servidos pelos servidores de nomes TLD (.com, .org, etc.) com base nos endereços IP que alguém forneceu ao registrador DNS responsável pelo domínio. Eles geralmente podem ser alterados fazendo login na interface da Web de administração que eles fornecem a você.(disclaimer:
AAAA
registros contendo endereços IPV6 também podem ser fornecidos como parte da cola, mas deixei isso de fora para simplificar.)Depois de pesquisar muito e ler muito sobre discos de cola e ainda não entender o que eram ou como você pode fazê-los, finalmente encontrei uma resposta e é muito simples.
Pelo que entendi, não há informações extras mágicas enviadas de algum lugar, é assim que funciona.
Digamos que seu domínio seja example.com e você queira usar seus próprios servidores de nomes ns1.example.com e ns2.example.com, você precisa de pelo menos dois servidores DNS.
Para que isso funcione agora, você precisa que o principal proprietário do domínio coloque os seguintes registros em seu DNS.
Esses dois registros A são os registros de cola e precisam estar no domínio superior, neste caso .com, e nem todos os registradores podem fazer isso para você.
Se isso estiver errado por favor me corrija. Eu apenas pensei em tentar explicar de uma maneira simples para outras pessoas que não conseguem encontrar a resposta correta.
Há uma explicação precisa (e concisa) na wikipedia .
Citar:
Bem, essas são três perguntas:
A resposta breve à primeira pergunta provavelmente fará pouco sentido sem contexto, dada por uma resposta um tanto prolixa às duas últimas perguntas. Aqui, então, está uma explicação alternativa com referências históricas às RFCs para dar algum contexto à terminologia, especialmente:
RFC 822 "Padrão para o formato de mensagens de texto da Internet ARPA" 1982, https://www.rfc-editor.org /rfc/rfc822.html , agora obsoleto por;
RFC 5322 "Formato de mensagem da Internet" 2008, https://www.rfc-editor.org/rfc/rfc5322 ;
RFC 882 "Nomes de Domínio - Conceitos e Instalações" 1983, https://www.rfc-editor.org/rfc/rfc882 , que precede e é obsoleto por;
RFC 1034 "Nomes de Domínio - Conceitos e Instalações" 1987,https://www.rfc-editor.org/rfc/rfc1034 e;
RFC 1035 "Nomes de Domínio - Implementação e Especificação" 1987, https://www.rfc-editor.org/rfc/rfc1035 ; o interveniente
RFC 952 "DoD Internet Host Table Specification" 1985, https://www.rfc-editor.org/rfc/rfc952.html ;
RFC 1123 "Requirements for Internet Hosts -- Application and Support" 1989, https://www.rfc-editor.org/rfc/rfc1123.html , especialmente;
RFC 2181 "Clarifications to the DNS Specification" 1997, https://www.rfc-editor.org/rfc/rfc2181 e;
RFC 2535 "Extensões de segurança do sistema de nomes de domínio" 1999, https://www.rfc-editor.org/rfc/rfc2535 .
Agora, brevemente, à primeira pergunta: Um "registro de cola" DNS é um termo coloquial - não definido em um RFC - para um tipo de registro de recurso de endereço IP de DNS, um registro "A" ou "AAAA". Um registro de endereço IP também é um "registro de cola" quando esse registro de endereço IP fornece um endereço que vincula um caminho ao servidor de protocolo DNS secundário público de uma "zona filha"/"nome de domínio" delegada, onde, em particular, esse registro público servidor de protocolo DNS secundário "nome de domínio" para essa "zona filha" delegada também está em , e imediatamente sob a autoridade dentro, essa zona filho. E aqui - como não encontrei isso explicitamente declarado em um RFC - espera-se que o Administrador de Rede simplesmente infira que, quando a "zona filho" delegada também estiver e imediatamente sob a autoridade dentro dessa zona filho, o pai A zona também deve fornecer um ou mais registros de endereço IP que, no final, se vinculam aos servidores de protocolo DNS autoritativos da zona filho . "Glue records" são todos sobre a interação de servidores "autoritários" e "não autorizados", onde, por design , uma "zona pai" não tem autoridade para uma "zona filho".
E então, há uma ressalva, levantada em Qual é a diferença entre os registros NS e os registros de cola? , por Ladadada, que há uma incerteza na prática, talvez não muito esclarecida nas RFCs, sobre se algum cliente de protocolo DNS específico seguirá ou não um caminho e, em seguida, verificará se um servidor de protocolo DNS de zona filho vinculada também está o servidor autoritativo para essa zona filha, verificando efetivamente se os endereços IP correspondem. Existe a possibilidade de que um endereço IP de "registro de cola" possa levar a um servidor autoritativo com um registro de recurso "Servidor de nomes" levando a um endereço IP diferente , portanto inconsistente, para um ou maisServidores de protocolo DNS para essa zona filha. Talvez o endereço do servidor seja verificado. Talvez o endereço do servidor não seja verificado, e o endereço IP esteja desatualizado, e talvez o arquivo de zona deste servidor também esteja "meio caminho" desatualizado, com os registros corretos do "Servidor de Nomes", mas servindo -of-date ou respostas erradas para outros recursos. Obviamente, essa circunstância implica em erros administrativos de DNS, portanto, é apenas uma ressalva. Esse "não deveria" acontecer na prática.
As respostas através das RFCs para as duas últimas questões tornam-se complicadas quando o "conhecimento comum" é esperado do leitor e a terminologia "sobrecarregada" é frequentemente usada, onde, na prática, no uso comum, o mesmo termo é usado em referência a duas, às vezes mais, coisas diferentes ou abstrações diferentes. Outra coisa a reconhecer aqui é a associação inicial no desenvolvimento do Internet Messaging e do Domain Name System e, em seguida, a forma como essa associação influenciou o uso da terminologia de Internet Messaging nas RFCs do Domain Name System, como "conhecimento comum", para aqueles tempos.
Em particular, isso leva a um uso muito inconsistente do termo "nome de domínio" nas várias RFCs, um termo que, em diferentes contextos, pode se referir a:
Esses termos podem ser inferidos historicamente das RFCs. Como "conhecimento comum", um "host" em si é 1) uma máquina com uma interface de rede física e 2) uma interface de "soquete" IP do sistema operacional à qual um endereço IP foi atribuído. O termo "nome de domínio do host" vem da RFC 1123, que usa o termo explicitamente.
O termo "nome de domínio de subzona" pode ser inferido em vários RFCs. Vemos "nome de domínio" de um "domínio filho", como originalmente no RFC 822, ou "zona filho" posteriormente no RFC 2181, ou "subzona", um "nome de domínio de subzona", conforme implícito em outros RFCs, especialmente RFC 1035 e RFC 2535.
Esses "nomes de domínio" são duas coisas muito diferentes, ambas podem ser usadas como:
Especialmente no início do RFC 952, vemos que esses dois conceitos diferentes de "domínio" são simplesmente "agrupados":
Outra provável área de confusão é o "NS Resource Record", que também tem dois significados muito diferentes, dependendo do contexto. Podemos ler na RFC 2181, Seção 6.1, abaixo https://www.rfc-editor.org/rfc/rfc2181#section-6 :
e observe particularmente a frase "Os registros NS ... são os registros obrigatórios em todas as zonas" e observe adicionalmente:
Ao mesmo tempo, porém, também lemos na Seção 6 anterior:
Assim, o leitor pode inferir, por conta própria, que existem duas classes muito diferentes de NS Resource Record em um arquivo de zona:
Devemos tomar um momento aqui e perceber que esta segunda classe de registros NS também pode exigir a inclusão de registros de endereço correspondentes, como "registros cola", quando a "zona filho" delegada também está e imediatamente sob a autoridade dentro, essa zona filho, conforme discutido anteriormente. Também devemos perceber que esses mesmos registros NS e seus "registros de cola" associados devem ser incluídos - pode ser suposto "incluídos de forma redundante" - no arquivo de zona da zona filho, para o "nome de domínio da subzona" , como a expressão oficial dos servidores de protocolo DNS secundários públicos do domínio da subzona e seus endereços IP. Novamente, lembre-se, a zona "pai" nunca éautoritativo para a zona "filho", mesmo que o arquivo de zona pai inclua e já tenha fornecido exatamente as mesmas informações - nunca para os registros NS da zona filho e nunca para qualquer outro tipo de registro de recurso de zona filho.
Então, agora, para a segunda pergunta, " Por que os registros de cola são necessários?", devemos primeiro dizer que, estritamente falando, os registros de cola não são necessários, de forma alguma, desde que :
A menos que um administrador de rede esteja configurando alguma grande organização que precise de subdomínios delegados, com seus próprios servidores de protocolo DNS autoadministrados, não há necessidade de nenhum "registro de cola". E mesmo assim, uma grande organização pode muito bem distribuir prudentemente seus servidores de protocolo DNS fora de qualquer subdomínio delegado, novamente, possivelmente evitando qualquer necessidade de "registros de cola" se esses endereços de servidor já forem resolvidos em outro lugar, talvez por algum provedor externo.
"Registros de cola" são mais provavelmente algo necessário com um domínio "vaidade" ou com uma pequena organização que deseja administrar seus próprios servidores de protocolo DNS e o arquivo de zona usado pelo provedor de DNS upstream da organização, provavelmente seu registrador de DNS. E mesmo assim, muito provavelmente, apenas o arquivo de zona do registrador terá "registros de cola" vinculados aos servidores de protocolo DNS do próprio cliente, que provavelmente também não estão sendo usados pelo cliente para delegar nomes de domínio de subzona.
Mas, como será abordado na próxima resposta à terceira pergunta, “ como funcionam” – “ por que ” é um pouco mais complicado. A operação do DNS implica seguir um caminho através de uma hierarquia de componentes de domínio, conforme discutido na RFC 882, em "Especificações e terminologia do espaço de nomes", o que, em última análise, requer um endereço IP de "ponte", de um servidor não autoritativo para um servidor autoritativo, em cada "zona cortada". A menos que confinado à zona "raiz", sempre há cortes de zona ao longo do caminho para um "nome de domínio" de destino desejado. Os "registros de cola" fornecem essa "ponte" entre os cortes da zona.
Deve-se mencionar aqui, para o contexto histórico, o mecanismo transitivo do registro NS e do registro Endereço. Observe que o registro NS contém um "nome de domínio de subzona", o "proprietário", no lado esquerdo do registro de recurso, e um "nome de domínio do host", o "nome canônico" RDATA, no lado direito . Não há endereço IP aqui - ainda. Por que é que? Podemos nos referir ao "conhecimento comum", do agora obsoleto RFC 822, na Seção 6.2.3, em https://www.rfc-editor.org/rfc/rfc822.html#section-6.2 , que afirma com destaque:
Ou, parafraseando, um "nome de domínio" geralmente não é um endereço IP. Assim, o RDATA do registro NS é um "nome de domínio", não um endereço IP, e um registro de endereço separado associa esse "nome de domínio" NS RDATA ao registro de recurso "específico da Internet ARPA" RDATA, o endereço IP real. E então, consequentemente, o registro de endereço, nesse contexto, também pode ser chamado de "registro de cola", e o registro NS não é. Essa segunda classe de registro NS é sempre necessária para marcar um "corte de zona" em uma zona pai, mas o registro de endereço associado talvez seja necessário, ou talvez não , conforme discutido.
Há uma outra observação sobre a terminologia aqui, com relação ao registro de recursos SOA e à distinção de servidor de protocolo DNS "primário" e servidor "secundário público". Na RFC 1035, Seção 3.3.13 "formato SOA RDATA", em https://www.rfc-editor.org/rfc/rfc1035#section-3.3.13 , há:
Tome nota do pretérito, " foi a fonte original ou primária". Novamente, devemos tomar um momento aqui e perceber que, muito comumente, nenhum dos servidores públicos de protocolo DNS é necessariamente também o servidor primário para a zona, e também que a "fonte primária de dados para esta zona" nem precisa ser acessível ao público. Embora seja comum que o servidor primário seja acessível publicamente, isso não é necessário. E embora também seja possível que o servidor primário seja o público e apenasservidor para a zona, é preferível ter servidores redundantes. Para facilitar a administração de vários servidores, um único servidor primário, pode fazer uma "transferência de zona" ou "Transferência Autoritativa", "AXFR", para um grupo de servidores secundários. Para ser pedante, então, o servidor "primário" é especificado no registro SOA MNAME e, consequentemente, os servidores especificados no RDATA da primeira classe necessária de registros de recursos NS são servidores "secundários públicos". Ainda assim, pode ser que o nome SOA MNAME e um nome NS RDATA também se refiram ao mesmo servidor.
Por fim, quanto à terceira questão, " Como funcionam os registros de cola?", é útil refletir sobre a operação implícita do Protocolo DNS nas trocas entre o cliente e vários servidores, discutida na RFC 1034, especialmente na Seção 5 "Resolvers" , sob https://www.rfc-editor.org/rfc/rfc1034.html#section-5 , e RFC 1035, Seção 7 "Implementação do Resolver", em geral, e particularmente observando a Seção 7.2, sob https://www. rfc-editor.org/rfc/rfc1035#section-7.2 :
The client engages in a sequence of queries, working its way through the domain name hierarchy, mostly resolving subdomain components to IP Addresses, typically finding first a "root" server "domain name", then its IP Address, then a "global top level domain" server "domain name", then its IP Address, then a third level "domain name", a "subzone domain name" being delegated by the, at this point, parent global top level domain, and searching for the IP Address for this zone's DNS Protocol server. The server for the global top level domain will authoritatively provide a "zone cut", specifying a "subzone domain name". And then the client will want an IP Address for this third level "subzone domain name" DNS Protocol server. However, as discussed, in every "cut", following the domain name hierarchy, the "parent" zone is not the authoritative source for the IP address of the DNS Protocol server for the "child" zone, by design. Still, the client needs an IP Address - where from?
It may be possible for the client to begin following another path through the domain name hierarchy, searching for this IP Address, which only ends when the client identifies the server with the "Source of Authority" for the IP Address of the DNS Protocol server specified for this child subzone domain name, and any other record sought. But regardless, at every "cut", from zone to subzone, the client must have a "bridge" from a nonauthoritative source for a server IP Address, to an "authoritative" source for this IP Address. That is why a "glue record" may be referred to as only a "hint" about a server's IP Address. The parent zone server offers a "best guess", a "suggestion", redirecting the client from the current server to the "next" server, continuing the client's search for a server with the "Source of Authority" to finally declare authoritatively that this IP Address is the IP Address of the "host domain name" DNS Protocol server for the target "subzone domain name".
The "glue records" provide that IP Address "bridge" from nonauthoritative source server to, eventually, an authoritative source server. Whether the client bothers to verify that the current server's IP Address actually matches an authoritative DNS Name Server IP Address for the target "subzone domain name" is at the discretion of the client. Hope for the best - or do confirm it manually. It might be possible to completely leave out listing the first class of self-descriptive authoritative NS records from the zone file, and still provide the client with any other resource record - as long as the client just "hopes for the best" and doesn't actually check for the NS records and their associated Address records.
See also RFC 8499 "DNS Terminology" 2019, https://www.rfc-editor.org/rfc/rfc8499.html.