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.
Muitas vezes chamado de "lista telefônica da internet", uma analogia mais moderna é que o DNS gerencia nomes de domínio como um smartphone gerencia seus contatos. Os smartphones eliminam a necessidade de os usuários memorizarem números de telefone individuais, armazenando-os em listas de contatos facilmente pesquisáveis.
Da mesma forma, o DNS permite que os usuários se conectem a sites usando 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 "192.0.2.1", por exemplo, os usuários podem simplesmente acessar a página "www.exemplo.com" para receber os resultados desejados.
Para entender como o DNS funciona, é importante primeiro conhecer os componentes envolvidos.
Desde o início, o DNS foi projetado 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.
As arquiteturas de DNS consistem em dois tipos de servidores de DNS: recursivos e 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 autoritativos apresentam as “respostas”.
Os servidores recursivos, também conhecidos como resolvedores recursivos ou resolvedores DNS, normalmente são gerenciados por provedores de serviços de internet (ISPs) ou provedores de serviços de DNS de terceiros. Uma organização também pode hospedar e gerenciar seu próprio resolvedor.
Os resolvedores recursivos atuam em nome do usuário final para lidar com o nome de domínio em um endereço IP. Os resolvedores recursivos também armazenam em cache (armazenam temporariamente os resultados de consultas DNS recentes) as respostas a uma solicitação por um período específico de tempo (definido pelo valor de tempo de vida, ou TTL) para melhorar a eficiência do sistema em consultas futuras ao mesmo domínio.
Quando um usuário digita um endereço da web em um navegador, 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 consulta a hierarquia do DNS até encontrar os registros A (ou AAAA) que contêm o endereço para um determinado domínio.
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á diferentes servidores autoritativos, cada um responsável por uma parte distinta do namespace.
Os servidores de nomes raiz ficam no topo da hierarquia do DNS e são responsáveis por atender a zona raiz (o banco de dados central do DNS). Há 13 "identidades" ou "autoridades" (agrupamentos lógicos) de servidores raiz, identificadas por letras de A a M. Elas respondem a consultas de registros armazenados na zona raiz e encaminham as solicitações para o servidor de nomes de TLD apropriado.
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 de TLD direcionam consultas aos servidores de nomes autoritativos para os domínios específicos dentro do seu TLD. Assim, o servidor de nomes de TLD para ".com" direcionaria domínios que terminam em ".com", o servidor de nomes de TLD para ".gov" direcionaria domínios que terminam em ".gov", e assim por diante.
Os servidores de nomes de domínio de segundo nível (a maioria dos servidores de nomes de domínio) mantêm arquivos de zona com o endereço IP do nome de domínio completo (“ibm.com”, por exemplo).
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 domínios específicos dentro de uma zona de DNS.
Cada linha de um arquivo de zona define um registro de recursos DNS, uma única parte de informações sobre a natureza de um tipo específico ou parte de dados. Os registros de recursos ajudam a garantir 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 as consultas para o servidor correto.
Os arquivos de zona DNS começam com dois registros obrigatórios: o registro do servidor de nomes (NS), que indica o servidor de nomes autoritativo de um domínio, e o registro de autoridade inicial (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. Entre eles:
| Tipo de registro | Propósito |
|---|---|
| Registros A e registros AAAA | Mapeamento para endereços IPv4 (registros A) e endereços IPv6 (registros AAAA) |
| Registros de troca de mensagens (registros MX) | Especifica um servidor de e-mail SMTP para um domínio |
| Registros de nomes canônicos (registros CNAME) | Redirecionar nomes de host de um alias para outro domínio (o “domínio canônico”) |
| Registros de ponteiro (registros PTR) | Especifica um processo de resolução DNS reversa, mapeando endereços IP de volta para nomes de domínio |
| Registros do Sender Policy Framework (SPF) | Identifica os servidores de e-mail que têm permissão para enviar e-mails por meio de um domínio |
| Registros de texto (registros TXT) | Usado para notas legíveis por humanos e processamento automatizado, como frameworks de políticas de remetente para autenticação de e-mail |
Toda consulta (também conhecida como solicitação DNS) segue a mesma lógica para resolver endereços IP. Há diferentes maneiras de iniciar consultas. Como exemplo comum, vamos considerar uma pessoa usando um navegador da web.
Quando o usuário insere uma URL no navegador, o navegador envia a consulta ao resolvedor de DNS, que progressivamente consulta os servidores DNS autoritativos para localizar o servidor de nomes autoritativo que contém os registros do domínio, incluindo o endereço IP associado. O endereço IP é retornado ao navegador, e o usuário é conectado ao site.
Mais especificamente, a resolução de consultas ao DNS envolve vários processos e componentes importantes
O DNS é, basicamente, um protocolo público. DNS público e privado não são necessariamente termos e conceitos exatos, universalmente usados e compreendidos, e seu uso geralmente é impreciso.
O DNS público é frequentemente usado para se referir ao processo “padrão” de resolução de DNS, ou aos resolvedores DNS públicos, nos quais um resolvedor recursivo consulta uma sequência de servidores autoritativos que armazenam registros DNS publicamente disponíveis para localizar um endereço IP e, por fim, conectar o usuário ao site que ele procura. Muitas vezes, trata-se de um resolvedor fornecido pelo ISP do usuário ou por um serviço de DNS como o DNS público "quad 8" do Google. Os resolvedores privados também podem ser configurados para consultar o DNS público, mas são mais comumente usados para redes restritas ou corporativas.
Essa consulta DNS padrão provavelmente é chamada de DNS público devido a esses resolvedores disponíveis publicamente e ao fato de que os registros DNS nesses servidores autoritativos podem ser acessados por qualquer pessoa com acesso à internet.
O uso de "DNS privado" é ainda mais confuso. Às vezes, é usado para descrever o uso de protocolos de criptografia, como DNS over TLS (DoT) ou DNS over HTTPS (DoH). No entanto, eles são descritos mais precisamente como "funcionalidades de privacidade" ou "protocolos de privacidade" em vez de "DNS privado". O processo de resolução permanece o mesmo, pois um resolvedor utiliza o DNS disponível publicamente para encontrar o que precisa. Neste caso, isso é feito apenas com uma transferência criptografada.
O DNS privado também é usado para se referir à pesquisa dentro de uma rede interna fechada, como redes corporativas ou nuvens privadas virtuais, com acesso restrito a usuários autorizados. Nesse sistema, os resolvedores privados configurados localmente consultam servidores privados para localizar recursos e sites dentro de uma rede interna. Esses servidores são configurados para atender apenas zonas privadas e endereços IP internos, e a rede mantém URLs internas e endereços IP ocultos do restante da internet. Esse tipo de DNS privado proporciona às organizações maior controle e segurança.
Há muitas maneiras de configurar esse tipo de rede. Uma maneira é por meio de um domínio de uso especial, como .local usado para resolução em redes locais. Outra opção é ter subdomínios privados de domínios que estão disponíveis publicamente na internet. Esse subdomínio privado está disponível apenas para indivíduos ou agentes que usam resolvedores na rede interna.
Uma configuração corporativa comum que combina o DNS "público" e o "privado" é chamada de "DNS de horizonte dividido" ou "split brain DNS". Nessa configuração, existe um servidor recursor local que consulta servidores locais e privados com autoridade para solicitações internas e utiliza o DNS padrão para consultas externas. Normalmente, há uma lista de nomes de domínio, uma espécie de "lista de permissões", que informa ao servidor quais solicitações vão para servidores internos e quais devem ser encaminhadas para a internet pública.
O DNS gerenciado é um serviço de terceiros que permite a uma organização terceirizar a hospedagem, as operações e o gerenciamento de sua infraestrutura de DNS. Com o DNS gerenciado, os registros DNS autoritativos dos domínios de uma organização são hospedados na rede global de servidores do provedor. Em muitos casos, os provedores de DNS gerenciado oferecem um painel de controle, dashboard ou APIs que permitem aos clientes gerenciar e automatizar seus registros DNS e outras configurações.
Os serviços de DNS gerenciado geralmente oferecem funcionalidades como roteamento Anycast, balanceamento de carga, acordos de nível de serviço (SLAs) de tempo de atividade, proteção contra falhas, DNSSEC e ferramentas de monitoramento e solução de problemas que podem permitir uma resolução de domínio mais rápida, confiável e segura do que as configurações tradicionais de DNS autogerenciado.
Mesmo os melhores sistemas DNS podem ser vulneráveis a problemas de cibersegurança. Os ataques relacionados ao DNS 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 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 tunelamento de DNS é uma técnica usada para contornar medidas de segurança ao encapsular tráfego não relacionado ao DNS, como HTTP, dentro de consultas e respostas DNS. Os invasores podem usar túneis DNS para retransmitir comandos de malware ou para exfiltrar informações DNS de uma rede comprometida, geralmente codificando a carga em consultas e respostas DNS para evitar a detecção.
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 dos serviços de DNS que uma organização escolha, é importante 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 do DNS são:
Antes do DNS, a internet era uma rede crescente de computadores utilizados principalmente por instituições acadêmicas e de pesquisa. Os desenvolvedores lidavam com os nomes dos servidores para os endereços IP utilizando arquivos de texto simples chamados HOSTS.TXT, mantidos pelo SRI International e distribuídos para 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. O grupo de pioneiros da internet que ajudou a criar o DNS também elaborou os primeiros Request for Comments (RFCs) que detalhavam as especificações do novo sistema, o RFC 882 e o RFC 883. O RFC 1034 e o RFC 1035 substituíram posteriormente os RFCs anteriores.
Com o tempo, à medida que o DNS se expandiu, 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.
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.