O Básico do DNS

A internet é um conjunto de protocolos de comunicação em rede. Confira os detalhes do DNS que atua como um tradutor global desse sistema.

Frank Garland - Technical Researcher
O Básico do DNS

A internet é um lugar mágico. Bem, nem tudo na internet, mas a internet em si, o fato de você poder digitar exemplo.com em um sistema de busca e acessar uma página web com a informação exata que você está procurando (presumivelmente a página dedicada a exemplos…), esse fato às vezes pode parecer mágico, especialmente quando a única coisa que você faz é clicar o botão de busca.

Mas não é mágica, claro. É um sistema elegante chamado Domain Name System (DNS, Sistema de Domínios de Nomes, em inglês) que opera por trás das câmeras, agindo como um tradutor global entre humanos e computadores.

Entendendo o DNS

No fundo, a internet é um conjunto de protocolos de comunicação em rede, cujo mais fundamental é o Internet Protocol (protocolo da internet, em inglês). O Internet Protocol, ou IP, designa uma sequência única de números chamado endereço de IP para todos os devices em uma rede. Já que todos os endereços de IP são únicos, computadores conseguem usar esses números para achar e se comunicar uns com os outros, do mesmo jeito que o seu número de telefone único permite que você se comunique com qualquer pessoa que saiba como entrar em contato com você.

Mas a memória humana é imperfeita e não somos obrigados a decorar o número de todo mundo para quem queremos ligar. Por isso, telefones modernos guardam as informações de contato para que você possa apertar “Ligue para Bob Bobson” e ligar para seu amigão Bob Bobson sem jamais interagir com o seu número de telefone.

É claro que quando você aperta aquele botão, seu celular não está procurando entre as torres telefônicas atrás de algo chamado “Telefone do Bob Bobson”, porque essa não é a linguagem com que os telefones conversam. Em vez disso, ele traduz o nome do contato para o número de telefone guardado para aquele contato e liga para aquele número, já que é assim que os telefones ligam uns para os outros.

O DNS funciona do mesmo jeito, mas em uma escala ainda maior. Assim como humanos não conseguem decorar uma centena de números, também não somos obrigados a decorar os endereços de IP para cada página que queremos acessar. É aí que entra o DNS.

O DNS pareia endereços de IP de servidores a nomes de domínio que humanos conseguem ler, como www.azion.com, construídos para serem muito mais fáceis de ler e lembrar do que uma sequência de números usada por um computador. Mas, assim como números de telefone, o serviço de DNS inicia uma série de passos para encontrar o endereço de IP específico que corresponde ao nome de domínio procurado e retorná-lo para o computador para que você complete a conexão.

Processo de Resolução de DNS

Para encontrar o endereço de IP escolhido, o servidor de DNS usa uma série de servidores especializados para descobrir a localização exata do endereço de IP. Primeiro, seu próprio sistema operacional checa para ver se o endereço de IP já está salvo no seu cache local. Isso é possível se você buscou o mesmo nome de domínio recentemente. Se não estiver no cache, é aí que o serviço de DNS entra em cena.

Seu pedido é encaminhado para um servidor de DNS de entrada, chamado de servidor resolver . Esse servidor resolver vai buscar em sua própria memória de cache, muito mais extensa, e retornar com o endereço de IP correto que está guardado. Se até o servidor resolver não tiver o endereço certo, é aí que as coisas ficam divertidas.

O DNS envia o pedido para um DNS central chamado servidor-raiz. Há apenas 13 conjuntos de servidores-raiz no mundo, distribuídos globalmente para atender às necessidades de todas as redes ligadas ao DNS. O servidor-raiz não se importa em checar se seu próprio cache tem a informação. Não importa se ele tem a informação, mas ele sabe como encontrar quem tem. O servidor-raiz, por sua vez, encontra o servidor de domínio de topo (top-level domain server ou TLD) e cria uma conexão entre ele e o servidor.

TLDs são repositórios massivos, cada um designado para diferentes categorias de nomes de domínios, como .com, .org ou .net. Então, se você está buscando azion.com, o servidor raiz vai estabelecer uma conexão entre seu resolver e o servidor de domínio TLD .com. O TLD então passa a requisição para a fase final do labirinto de servidores: o servidor com autoridade de domínio. Esse servidor é responsável por saber tudo sobre o domínio em questão, incluindo o endereço de IP. O servidor com autoridade entrega o endereço de IP para o resolver, que o encaminha para o seu device e é isso aí: tudo no tempo de carregar uma página de internet.

Servidores de DNS Secundários

É considerada boa prática para o serviço de DNS manter um ou mais servidores secundários ligados a todo servidor de DNS primário. Servidores secundários são réplicas simplificadas de servidores primários, guardando muitas das mesmas informações, mas como arquivos de texto estáticos, apenas para leitura. Em si, não fazem quaisquer modificações da maneira que os servidores primários fazem; em vez disso, recebem zonas de transferência periódicas do servidor primário, que adiciona algo ou reorganiza os dados existentes.

Servidores secundários servem como camada extra de redundância, garantindo que, caso um servidor primário se torne irresponsivo, haverá sempre uma cópia para resolver requisições de DNS. Com secundários o suficiente, também é possível fazer balanceamento de carga com seus servidores de DNS, se certificando de que nenhum servidor se sobrecarregue.

Segurança

A principal razão para que a qualidade dos servidores de DNS se aprimorem são preocupações severas com segurança. O Sistema de Nomes de Domínio é uma das áreas mais populares para ataques de hackers e empresas pelo mundo reportaram perdas de milhões de dólares por causa de infrações de DNS. Aqui estão apenas alguns exemplos das várias formas como hackers podem invadir servidores de DNS vulneráveis.

Sobrecarga de rede

Este ataque não é exclusivo em servidores de DNS, mas a importância do DNS para a saúde da rede significa que ataques de sobrecarga apontam para ele com certa frequência. Uma sobrecarga de rede lota o servidor de DNS com um enxame de requerimentos falsos, forçando-o até a cair. Se o servidor não estiver equipado com um filtro contra requerimentos ruins – ou não estiver propriamente balanceado para distribuir o tráfego – esses ataques podem danificar partes vitais do processo de DNS.

Atualizações sem autorização

Focados no servidor de domínios com autoridade, atacantes podem explorar a habilidade do servidor de atualizar os registros do DNS. Se conseguirem comprometer um servidor com autoridade, entradas sem autorização podem ser substituídas em suas memórias, passando dados ruins para qualquer servidor que fizer aquela requisição.

Desvio de Domínio

O DNS depende de algum nível de confiança. Quando digitamos exemplo.com, esperamos ser direcionados para o nosso site de exemplos preferido. Mas se um invasor conseguir linkar um endereço de IP diferente ao domínio, sua busca pode ser redirecionada para um site impostor, criando oportunidades de ataques direto para o seu computador.

Envenenamento de Cache

Aqui, o resolvedor de DNS é atacado. Já que resolvers tentam fazer o cache do máximo de endereços de IP possíveis para evitar o trabalho de fazer requisições a todos os outros servidores, corromper os dados do cache é um jeito fácil de levar dados ruins a todos os computadores que dependem daquele resolver.

Por sorte, há medidas de segurança para serviços de DNS em funcionamento para bloquear a maioria desses ataques. No entanto, não são perfeitos, como mostram os ataques devastadores a DNS que ocorrem com cada vez mais frequência todos os anos. Há vários serviços simples e gratuitos de DNS, caso você esteja rodando um site pequeno, mas se você estiver mantendo uma rede em qualquer escala, é bom ter certeza de ter um serviço de DNS inteligente, rápido e seguro.

Azion Intelligent DNS

Segurança é crucial para o trabalho em edge computing que fazemos aqui na Azion, e os serviços existentes de DNS não eram bem o que a gente precisava, então construímos o nosso.

Azion Edge DNS é a nossa tentativa de um sistema inteligente de DNS interativo. Isso significa que usamos uma rede de Edge redundante e distribuída para diminuir o tempo de requisições e entregar conexões de rede de alta velocidade. Nossa tecnologia de DNS inteligente permite que a rede se adapte às mudanças e interrupções enquanto elas ocorrem, mudando de rota para não encontrar servidores caídos e integrando diretamente com as ferramentas de balanceamento de carga da Azion para otimizar o tráfego.

Não acreditamos que um administrador inexperiente deva ser um obstáculo para rodar uma rede de DNS segura, então construímos a interface do Edge DNS focada em usabilidade. Também equipamos nosso sistema com integração total a terceiros, disponível no marketplace da Azion, porque inovação colaborativa é como grandes redes são construídas – e você não deve comprar exclusivamente conosco só para que seu DNS funcione bem.

Por último, nossa linha completa de ferramentas de DDoS Protection protegem o sistema de uma gama enorme de ataques externos, garantindo que vulnerabilidades comuns ao DNS não sejam a causa de uma rede comprometida.

Resumo

O Sistema de Nomes de Domínio é uma besta fascinante, mas também é vulnerável. Como humanos, nossa habilidade de se comunicar com facilidade na internet só é possível graças aos serviços de DNS, e ataques a servidores de DNS podem colocar a rede toda em perigo.

Escolher um serviço de DNS seguro e inteligente está se tornando cada vez mais crucial para a confiabilidade de rede. As capacidades de segurança de Edge e alta velocidade da Azion Edge DNS oferecem uma opção poderosa, mas o que realmente importa é ter certeza de que você encontrou um serviço confiável, para que possa construir a melhor versão da sua rede.

Inscreva-se na nossa Newsletter