O Sistema de Nomes de Domínio (Domain Name System, DNS) é o componente do protocolo padrão da internet responsável por converter nomes de domínio que podem ser entendidos pelas pessoas nos endereços de protocolo de internet (IP) que os computadores utilizam para identificar uns aos outros na rede.
Frequentemente chamado de "lista telefônica da internet", uma analogia mais moderna é que o DNS gerencia nomes de domínio de maneira muito semelhante a como smartphones gerenciam contatos. Os smartphones eliminam a necessidade de os usuários memorizarem números de telefone individuais, armazenando-os em listas de contatos pesquisáveis com facilidade.
Da mesma forma, o DNS possibilita que os usuários se conectem a sites com nomes de domínio da internet em vez de endereços IP. Em vez de ter que memorizar que o servidor da web está em "93.184.216.34", por exemplo, os usuários podem simplesmente acessar a página "www.exemplo.com" para receber os resultados desejados.
Antes do DNS, a internet era uma rede crescente de computadores utilizados principalmente por instituições acadêmicas e de pesquisa. Os desenvolvedores associavam manualmente os nomes dos servidores aos endereços IP utilizando um arquivo de texto simples chamado HOSTS.TXT. O SRI International mantinha esses arquivos de texto e os distribuía a todos os computadores na internet. No entanto, com a expansão da rede, essa abordagem tornou-se cada vez mais insustentável.
Para lidar com as limitações do HOSTS.TXT e criar um sistema mais escalável, Paul Mockapetris, cientista da computação da Universidade do Sul da Califórnia, inventou o sistema de nomes de domínio em 1983. Um grupo de pioneiros da internet ajudou na criação do DNS e foi o autor da primeira solicitação de comentários (RFCs) que detalhava as especificações do novo sistema, RFC 882 e RFC 883. O RFC 1034 e o RFC 1035 substituíram posteriormente os RFCs anteriores.
Eventualmente, com a expansão do DNS, o gerenciamento do DNS tornou-se responsabilidade da internet Assigned Numbers Authority (IANA), antes de finalmente passar para o controle da organização sem fins lucrativos Internet Corporation for Assigned Names and Numbers (ICANN), em 1998.
Desde o início, os desenvolvedores projetaram o DNS com uma estrutura de banco de dados hierárquica e distribuída para facilitar uma abordagem mais dinâmica para a resolução de nomes de domínio, capaz de acompanhar o ritmo de uma rede de computadores em rápida expansão. A hierarquia começa com o nível raiz, indicado por um ponto (.) e se ramifica em domínios de nível superior (TLDs) como “.com”, “.org”, “.net” ou TLDs com código de país (ccTLDs). ) como “.uk” e “.jp” e domínios de segundo nível.
A arquitetura do DNS consiste em dois tipos de servidores de DNS, servidores recursivos e servidores autoritativos. Os servidores DNS recursivos são os que fazem a "solicitação", procurando as informações que conectam um usuário a um site.
Os servidores recursivos, também conhecidos como resolvedores recursivos ou resolvedores de DNS, normalmente são gerenciados por provedores de serviços de internet (ISPs), grandes empresas ou outros provedores de serviços de DNS de terceiros. Atuam em nome do usuário final para resolver o nome de domínio de um endereço IP. Os resolvedores recursivos também armazenam em cache as respostas a uma solicitação por um determinado período (definido pelo valor de tempo de vida, ou TTL) para melhorar a eficiência do sistema nas consultas futuras no mesmo domínio.
Quando um usuário digita um endereço da web em um navegador de pesquisa, o navegador conecta um servidor DNS recursivo para resolver a solicitação. Se o servidor recursivo tiver a resposta armazenada em cache, poderá conectar o usuário e concluir a solicitação. Caso contrário, o resolvedor recursivo consultará uma série de servidores DNS autoritativos para encontrar o endereço IP e conectar o usuário ao site desejado.
Os servidores autoritativos apresentam as “respostas”. Os servidores de nomes autoritativos mantêm os registros definitivos de um domínio e respondem às solicitações sobre nomes de domínio armazenados em suas respectivas zonas (normalmente, com respostas configuradas pelo proprietário do domínio). Há diversos tipos de servidores de nomes autoritativos, cada um atendendo a uma função específica dentro da hierarquia do DNS.
Os servidores de nomes DNS autoritativos incluem:
Os servidores de nomes raiz ficam no topo da hierarquia do DNS e são responsáveis por gerenciar a zona raiz (o banco de dados central do DNS). Eles respondem a consultas de registros armazenados na zona raiz e encaminham as solicitações ao servidor de nomes do TLD apropriado.
Há 13 endereços IP utilizados para consultar 13 redes de servidores raiz diferentes, identificadas por letras de A a M, que lidam com solicitações para os TLDs e direcionam as consultas para os servidores de nomes de TLD apropriados. A internet Corporation for Assigned Names and Numbers (ICANN) opera essas redes de servidores raiz.
Os servidores TLD são responsáveis por gerenciar o próximo nível da hierarquia, incluindo domínios genéricos de nível superior (gTLDs). Os servidores de nomes TLD direcionam consultas aos servidores de nomes autoritativos para os domínios específicos dentro de seu TLD. Então, o servidor de nomes TLD de ".com" direcionaria domínios que terminam em ".com", o servidor de nomes TLD de ".gov" direcionaria domínios que terminam em ".gov", e assim por diante.
O servidor de nomes de domínio (também conhecido como servidor de nomes de domínio de segundo nível) contém o arquivo de zona com o endereço IP do nome de domínio completo, como "ibm.com".
Toda consulta (também conhecida como solicitação DNS) ao DNS segue a mesma lógica para resolver endereços IP. Quando um usuário insere um URL, seu computador consulta progressivamente os servidores DNS para localizar as informações e os registros de recursos apropriados para atender à solicitação do usuário. Esse processo continua até que o DNS encontre a resposta certa do servidor DNS autoritativo associado a esse domínio.
Mais especificamente, a resolução de consultas ao DNS envolve vários processos e componentes importantes.
Um usuário insere um nome de domínio, como "ibm.com", em um navegador ou aplicativo e a solicitação é enviada para um resolvedor de DNS recursivo. Normalmente, o dispositivo do usuário tem configurações de DNS predefinidas, fornecidas pelo provedor de serviços de internet (ISP), que determinam qual resolvedor recursivo um cliente consulta.
O resolvedor recursivo verifica seu cache, o armazenamento temporário de um navegador da web ou sistema operacional (como macOS, Windows ou Linux) que contém pesquisas de DNS anteriores, em busca do endereço IP correspondente do domínio. Se o resolvedor recursivo não tiver os dados de pesquisa de DNS em cache, iniciará o processo de busca dos servidores DNS autoritativos, começando pelo servidor raiz. O resolvedor recursivo consulta a hierarquia do DNS até encontrar o endereço IP final.
O resolvedor recursivo consulta um servidor de nomes raiz, que responde com uma referência ao servidor de TLD apropriado para o domínio em questão (o servidor de nomes de TLD responsável pelos domínios ".com" neste caso).
O resolvedor consulta o servidor de nomes TLD ".com" que responde com o endereço do servidor de nomes autorizado para "ibm.com". Esse servidor também é chamado de servidor de nomes de domínio de segundo nível.
O resolvedor consulta o servidor de nomes de domínio, que procura o arquivo de zona DNS e responde com o registro correto do nome de domínio fornecido.
O resolvedor recursivo armazena em cache o registro DNS, por um tempo especificado pelo TTL do registro, e retorna o endereço IP ao dispositivo do usuário. O navegador ou aplicativo pode então iniciar uma conexão com o servidor host nesse endereço IP para acessar o site ou serviço solicitado.
Além dos principais tipos de servidor, o DNS usa arquivos de zona e vários tipos de registro para ajudar no processo de resolução. Arquivos de zona são arquivos baseados em texto que incluem mapeamentos e informações sobre um domínio dentro de uma zona DNS.
Cada linha de um arquivo de zona especifica um registro de recurso DNS (uma única informação sobre a natureza de um tipo específico ou parte de dados). Os registros de recursos garantem que, quando um usuário envia uma consulta, o DNS pode converter rapidamente os nomes de domínio em informações praticáveis que direcionam os usuários para o servidor correto.
Os arquivos de zona DNS começam com dois registros obrigatórios: o tempo de vida global (TTL) — que indica como os registros devem ser armazenados no cache DNS local — e o início da autoridade (registro SOA) — que especifica o servidor de nomes autoritativo primário para a zona DNS.
Após os dois registros primários, um arquivo de zona pode conter vários outros tipos de registros, incluindo:
Os registros A estão vinculados aos endereços IPv4 e os registros AAAA estão vinculados aos endereços IPv6.
Os registros MX definem um servidor SMTP de e-mail para um domínio.
Os registros CNAME redirecionam nomes de host de um alias para outro domínio (o "domínio canônico").
Os registros NS indicam o servidor de nomes autoritativo de um domínio.
Os registros PTR definem uma pesquisa DNS reversa, mapeando endereços IP de volta para nomes de domínio.
Os registros TXT indicam o registro da estrutura da política do remetente para autenticação de e-mail.
As pesquisas de DNS normalmente envolvem três tipos de consultas. As consultas recursivas, que conectam o servidor recursivo e o cliente DNS, resolvem totalmente o nome do domínio ou retornam uma mensagem de erro ao usuário, notificando-o de que não consegue localizar o domínio.
Consultas iterativas— que conectam resolvedores recursivos (um servidor DNS local) e servidores DNS não locais (como a raiz, TLD ou servidores de nome de domínio) — não exigem resolução de domínio. Em vez disso, os servidores podem responder com uma referência, onde o servidor raiz encaminha o resolvedor recursivo para o TLD, que encaminha o resolvedor para um servidor autoritativo que fornece a resposta (se a resposta estiver disponível). Portanto, as consultas iterativas são resolvidas com uma resposta ou uma referência.
No caso de consultas não recursivas, o resolvedor recursivo já sabe onde localizar a resposta para a consulta, portanto essas consultas sempre são resolvidas com uma resposta. O resolvedor economiza tempo encontrando a resposta armazenada em cache no servidor recursivo ou ignorando os servidores DNS raiz e de nomes TLD para ir diretamente para o servidor autoritativo apropriado. Se, por exemplo, o resolvedor recursivo fornecer um endereço IP armazenado em cache em uma sessão anterior, a solicitação se qualificará como uma consulta não recursiva.
As organizações contam com diversas opções para usar o DNS, incluindo DNS público e privado, ou uma combinação dos dois. DNS público e privado são duas coisas completamente diferentes; para entender como usar melhor o DNS para atender às necessidades organizacionais, é importante entender o funcionamento de cada tipo.
DNS público geralmente refere-se ao lado do resolvedor do DNS e aos servidores recursivos utilizados para consultar servidores de nomes autoritativos e conectar usuários a sites.
Esses servidores são acessíveis a qualquer usuário na internet, e empresas como a Cloudflare (1.1.1.1), Quad9 e OpenDNS normalmente os oferecem gratuitamente. Os servidores DNS públicos são mantidos pelas organizações que os executam. Usuários e clientes não têm controle sobre operação, políticas ou configuração.
DNS privado geralmente se refere à parte autoritativa do DNS. As organizações configuram servidores DNS privados dentro de uma rede privada e esses servidores atuam como servidores DNS autoritativos, oferecendo pesquisa de DNS para recursos internos. Os servidores DNS privados ficam atrás de um firewall e mantêm somente registros de sites internos, portanto o acesso é restrito a usuários, dispositivos e redes autorizados.
Diferentemente das configurações de DNS público, o DNS privado oferece às organizações controle sobre seus servidores DNS, permitindo que elas personalizem os registros DNS, apliquem esquemas de nomes internos e apliquem políticas de segurança específicas. Isso também significa que as organizações são responsáveis pela manutenção da infraestrutura, seja ela hospedada em data centers locais ou por meio de serviços de nuvem.
Soluções de DNS gerenciado essencialmente terceirizam o processo de gerenciamento e orquestração de servidores. Com um sistema gerenciado, o provedor de DNS lida com todos os protocolos de configuração, manutenção e segurança dos servidores DNS de uma organização, e o cliente usa a infraestrutura do provedor para gerenciar os nomes de domínio. Nesse caso, quando um usuário insere o URL de uma empresa, é redirecionado do servidor de nome de domínio da empresa para os servidores do provedor, que buscam todos os recursos e respondem ao usuário.
O DNS gerenciado também pode fornecer serviços e benefícios, como DNS dedicado, balanceamento de carga de servidores globais, garantias de tempo de atividade, arquitetura API-first, compatibilidade com DNSSEC, redes anycast globais, tempos de propagação acelerados, ferramentas de monitoramento e verificação de funcionamento, proteção contra DDoS e muito mais.
A maioria dos servidores DNS modernos é bastante segura, mesmo no caso de DNS público. No entanto, os melhores sistemas DNS ainda podem ser vulneráveis a problemas de cibersegurança. Certos tipos de ataques têm como alvo o lado autoritativo do DNS, enquanto outros têm como alvo o lado recursivo. Esses ataques incluem:
A falsificação de DNS, também chamada de envenenamento de cache, ocorre quando um invasor insere registros de endereços falsos no cache de um resolvedor de DNS, fazendo com que o resolvedor retorne um endereço IP incorreto e redirecione os usuários para sites maliciosos. A falsificação pode comprometer dados confidenciais e levar a ataques de phishing e distribuição de malware.
A amplificação de DNS é um tipo de ataque de distributed denial-of-service (DDoS) em que um invasor envia pequenas consultas a um servidor DNS, com o endereço de retorno falsificado para o endereço IP da vítima. Esses ataques exploram a natureza sem estado dos protocolos DNS e aproveitam o fato de que uma pequena consulta pode gerar uma resposta desproporcionalmente grande.
Como resultado de um ataque de amplificação, o servidor DNS responde com respostas muito maiores, o que amplifica a quantidade de tráfego direcionado ao usuário, sobrecarregando seus recursos. Isso pode impedir que o DNS funcione e derrubar o aplicativo.
O encapsulamento DNS é uma técnica utilizada para ignorar medidas de segurança encapsulando tráfego não-DNS, como HTTP, em consultas e respostas DNS. Os invasores podem usar túneis DNS para retransmitir comandos de malware ou para exfiltrar dados de uma rede comprometida, geralmente codificando a carga em consultas e respostas DNS para evitar a detecção.
O sequestro de domínio ocorre quando um invasor obtém acesso não autorizado a uma conta de registrador de domínio e altera os detalhes de registro de um domínio. O sequestro permite que agentes mal-intencionados redirecionem o tráfego para servidores maliciosos, interceptem e-mails e assumam o controle da identidade online do usuário.
Entradas de DNS negligenciadas para subdomínios que apontam para serviços desativados são os principais alvos dos invasores. Se um serviço (como um host na nuvem) tiver sido desativado, mas a entrada de DNS permanecer, um invasor poderá reivindicar o subdomínio e configurar um site ou serviço malicioso em seu lugar.
Independentemente de quais DNS Services uma organização escolher, é prudente implementar protocolos de segurança para minimizar as superfícies de ataque de DNS, mitigar possíveis problemas de segurança e otimizar o DNS nos processos de rede. Algumas práticas úteis para solidificar a segurança de DNS são:
Saber como separar o DNS da sua CDN pode melhorar o desempenho, gerar economia de custos e resiliência. Saiba por que gerenciar o DNS com independência oferece maior controle sobre o direcionamento do tráfego, o monitoramento do desempenho e a resiliência entre vários provedores de CDN.
Selecionar o provedor de DNS certo é fundamental para gerenciar o tráfego, garantir a resiliência e otimizar o desempenho. Conheça os quatro fatores essenciais que você deve considerar, do perfil de risco e necessidades do desenvolvedor ao gerenciamento de várias CDNs e requisitos de desempenho.
Saiba como o DNS gerenciado melhora o desempenho e a segurança, reduz a latência e simplifica suas operações. Conheça as diferenças entre DNS gerenciado e autogerenciado e explore os principais benefícios para a sua empresa.
Explore os benefícios e as dificuldades do DNS autoritativo auto-hospedado para grandes empresas. Saiba mais sobre as complexidades ocultas da auto-hospedagem e por que as soluções de DNS gerenciado podem ser a melhor opção para escalabilidade, resiliência e economia.
O IBM NS1 Connect é um serviço de nuvem totalmente gerenciado para DNS corporativo, DHCP, gerenciamento de endereços IP e direcionamento de tráfego de aplicações.
As soluções de rede em nuvem da IBM oferecem conectividade de alto desempenho para potencializar seus aplicativos e negócios.
Consolide o suporte ao datacenter com o IBM Technology Lifecycle Services para rede em nuvem e muito mais.