Nossa empresa está ansiosa para implantar e manter seu próprio DNS público. Estou descrevendo a atividade de implantação, mas estou um pouco confuso sobre onde registrar o nome de domínio da minha empresa e como mapear meu DNS público. Por favor, qualquer um explique o fluxo de tráfego.
Responder1
Eu trabalhava para um registro de domínio e fazia parte de grupos de trabalho de DNS da IETF, então vou lhe dar uma introdução.
O Sistema de Nomes de Domínio é projetado em uma hierarquia. Quando você procura os dados de um nome de domínio, geralmente vai até o topo e desce.
No topo está a raiz. Os servidores de nomes raiz são vários servidores espalhados pelo mundo onde qualquer pergunta sempre começará - a menos que os dados sejam armazenados em cache, falaremos disso mais tarde. Como usuário normal, você não os verá em um nome de domínio, mas eles estão lá.
Em seguida estão os domínios de nível superior. Eles são divididos em domínios genéricos de primeiro nível (como .com, .net ou .movie) e domínios de primeiro nível com código de país (como .us para os EUA, .no para a Noruega ou .cn para a China).
Depois disso estão os Domínios de Segundo Nível. Esses são aqueles que você normalmente compra como cliente final. Por exemplo, se você deseja possuir example.com, vá a um registrador, verifique se example.com está disponível e, em caso afirmativo, adicione-o ao carrinho e clique em finalizar compra. Em seguida, você fará com que o registrador ou outra empresa de hospedagem execute seu DNS para você ou configurará seus próprios servidores DNS e fará com que o registrador delegue o domínio para você. Delegação significa que eles registrarão dados que indicarão que seus servidores DNS são responsáveis por este domínio.
Depois de possuir seu domínio, você também pode configurar domínios de terceiro nível ou subdomínios. Isso adiciona outra hierarquia aos servidores DNS. Você também pode configurar nomes de host, que para o usuário médio serão exatamente iguais.
Então, vamos dar uma olhada em uma pesquisa média de DNS.
Digamos que você queira ir parawww.exemplo.com. A primeira coisa que seu servidor DNS fará é acessar os servidores raiz para procurar quem é o responsável por .com. Seu servidor DNS já possui os endereços dos servidores raiz integrados, portanto, normalmente não há necessidade de procurá-los. Em vez disso, procuramos as informações de .com.
Usarei o programa "dig" aqui, mas apreciarei a saída pela legibilidade.
Primeiro, solicitamos os Name Servers (ns) para com. Pedimos isso diretamente ao servidor a.root-servers.net, que é um dos servidores raiz do sistema DNS.
$ dig ns com. @a.root-servers.net.
A saída é a seguinte (novamente, abreviada)
;; QUESTION SECTION:
;com. IN NS
;; AUTHORITY SECTION:
com. 172800 IN NS a.gtld-servers.net.
;; ADDITIONAL SECTION:
a.gtld-servers.net. 172800 IN A 192.5.6.30
a.gtld-servers.net. 172800 IN AAAA 2001:503:a83e::2:30
A SEÇÃO DE PERGUNTAS nos mostra o que estamos pedindo, neste caso os registros NS para com.
A SEÇÃO DE AUTORIDADE nos mostra que o servidor raiz não é responsável por .com, mas nos diz quem é. Neste caso, diz-nos que a.gtld-servers.net é o responsável.
Também nos fornece uma SEÇÃO ADICIONAL que contém registros de endereço (A para IPv4 e AAAA para IPv6) para a.gtld-servers.net. Esse endereço é chamado de cola e não é considerado uma resposta oficial, mas é uma dica que nos diz que esse é o endereço listado no sistema. Os registros cola são necessários quando você precisa de um endereço IP de um servidor que, de outra forma, só poderia ser alcançado fazendo uma pesquisa de DNS, para a qual você precisa do endereço IP do servidor de nomes. É tudo um pouco recursivo.
De qualquer forma, vamos continuar pesquisando os servidores de nomes de example.com. Agora, isso será um pouco diferente do que o DNS do mundo real dirá, mas isso é um exemplo, então usaremos dados de exemplo.
$ dig ns example.com. @192.5.6.30
Estamos perguntando o endereço IP do a.gtld-servers.net que obtivemos acima. Eles são autorizados para o domínio .com e, portanto, devem ser capazes de nos informar quais servidores de nomes example.com possuem.
;; QUESTION SECTION:
;example.com. IN NS
;; AUTHORITY SECTION:
example.com. 172800 IN NS ns2.example.com.
example.com. 172800 IN NS ns1.example.com.
;; ADDITIONAL SECTION:
ns2.example.com. 172800 IN A 192.0.2.4
ns1.example.com. 172800 IN A 192.0.2.5
Agora, veja por que essa cola é importante. Como os servidores de nomes de exemplo.com residem em exemplo.com, eles são gerenciados pelos servidores de nomes em exemplo.com. Essencialmente, você deve ligar para Bob para saber o número de Bob, porque somente Bob sabe qual é o número de telefone de Bob. A cola é uma dica. Bob pode ter mudado de número, mas é isso que os servidores de nomes de .com sabem.
Agora que sabemos o endereço dos servidores de nomes example.com, podemos finalmente solicitar o nome do host.
$ dig a www.example.com. @192.0.2.4
;; QUESTION SECTION:
;www.example.com. IN A
;; ANSWER SECTION:
www.example.com. 300 IN A 192.0.2.10
Finalmente temos o registro de endereço dowww.exemplo.comnome de anfitrião. Observe como não há SEÇÃO ADICIONAL aqui, porque essa seção não é necessária para esta consulta. Estamos fazendo uma pergunta direta e obtendo uma resposta precisa de um servidor autoritário para o domínio.
Agora, fazer toda essa pesquisa o tempo todo é uma perda de tempo e recursos, então o que normalmente é feito é que seu servidor DNS local atue como um cache. Você notou a aparência de todos os registros DNS? Os campos em um registro DNS são os seguintes: Domínio, Time To Live (TTL), Classe (no nosso caso IN para Internet), Tipo (A para endereço, NS para servidor de nomes, etc.) e Dados (por exemplo, um endereço IP para um Uma gravação).
O TTL no registro DNS é por quanto tempo um cache pode armazenar os dados. Os registros que não devem mudar ou que mudam muito raramente têm TTLs longos. Por exemplo, o TTL de 172.800 segundos nos primeiros registros que analisamos. Os registros que podem ser atualizados em curto prazo têm TTLs baixos, como o TTL de 300 segundos parawww.exemplo.com.
Sempre que fazemos uma pesquisa de DNS, não precisamos ir até os servidores raiz se os dados que já procuramos estiverem armazenados em cache. Normalmente acessamos domínios .com o tempo todo, de modo que os dados quase sempre são armazenados em cache em nosso servidor DNS local. No entanto, isso significa que sempre que você alterar os dados DNS, pode levar algum tempo para que as alterações sejam propagadas. Em termos práticos, isso significa que você precisará alterar os TTLs com antecedência ou informar ao seu chefe que levará algum tempo para que as alterações tenham efeito total.
Para registrar seu domínio, normalmente você desejará ir a um registrador do domínio de nível superior no qual deseja registrar. A maioria das empresas de hospedagem e registradores de domínios poderão registrar domínios em vários domínios de nível superior diferentes, então você pode escolher qualquer um deles.
Os Registradores são revendedores do Registro. O Registro é a empresa ou organização que realmente administra o Domínio de Nível Superior em questão, mas como usuário final, tudo que você precisa lidar é com o Registrador, ou mesmo apenas com sua empresa de hospedagem.
A maioria dos registradores possui interfaces web que lidam com muitos detalhes técnicos de delegação e registros DNS, mas mesmo assim compreender os fundamentos do DNS tornará sua vida muito mais fácil, mesmo se você confiar na interface web do seu registrador.
Se você quiser saber mais sobre DNS, e se estiver trabalhando com TI, você realmente deveria saber como o DNS funciona porque é a fonte de muitos problemas potenciais, eu recomendo o livro DNS and Bind da O'Reilly. É muito abrangente e fará de você um especialista em DNS. Se você deseja executar seus próprios servidores DNS, recomendo fortemente que você leia este livro. Ele cobre o software de servidor Bind DNS, mas os mesmos princípios se aplicam a qualquer software de servidor DNS existente.