Você sabia que acessar um site vai muito além de digitar o endereço na barra de ferramentas do navegador? Existe um universo por trás dos bastidores, coisas que não vemos diante das nossas telas mas que fazem esse mundo chamado internet girar – e um dos elementos-chave é o DNS.
A sigla DNS significa Domain Name System, ou Sistema de Nomes de Domínio. Em linhas gerais, o DNS é um sistema para traduzir nomes de domínios em endereços IP, sendo, portanto, um serviço necessário para todos os computadores ou equipamentos que utilizam a internet.
De uma perspectiva teórica, conforme Kurose e Ross, “o DNS é um banco de dados distribuído executado em uma hierarquia de servidores DNS, e um protocolo da camada de aplicação que permite que os hospedeiros consultem o banco de dados distribuídos”.¹
A principal função do DNS é converter o endereço digitado em um número IP correspondente. E por que precisamos disso? Isso acontece porque as máquinas entendem o endereço IP, a sequência de números, e não o endereço que digitamos na barra de ferramentas. Sem o DNS, teríamos que lembrar o endereço IP de qualquer dispositivo ao qual quiséssemos nos conectar.
Com o endereço IP é possível localizar o servidor ou o conjunto de servidores que hospeda o site e, assim, acessar as suas páginas. Mas a pergunta que não quer calar é: por que não digitamos logo o endereço IP na barra de ferramentas em vez do URL (Uniform Resource Locator), o endereço eletrônico? Porque para o ser humano, de modo geral, é muito mais difícil memorizar grandes sequências de números. Imagine ter que saber a sequência numérica de cada site que você quer acessar? Certamente seria bem difícil memorizar muitos números – ainda mais hoje, que muitos de nós sabemos somente o nosso número do celular e olhe lá.
Para simplificar, tente pensar no DNS como uma lista telefônica que, em vez de registrar o telefone e o endereço das pessoas, mostra o endereço IP de cada dispositivo conectado à internet. Mas como existem milhões de endereços IP, seria impossível colocar tudo em uma única lista telefônica – e o mesmo acontece com o DNS. Com os milhões de computadores e dispositivos conectados e a impossibilidade de se ter um único servidor que armazene todos os endereços IPs, existem outros servidores que armazenam todos os registros DNS que existem na internet. Resumindo, podemos considerar os serviços de DNS como grandes bancos de dados que estão localizados em servidores no mundo todo.
Caso queira aprofundar seu conhecimento sobre DNS numa perspectiva mais técnica, duas boas fontes de consulta são os RFCs 1034 e 1035.
Breve história do DNS
Ainda na época da ARPANET, a “mãe” da internet, havia relativamente pouquíssimos dispositivos conectados em rede. A estrutura da rede era bem mais simples e possuía apenas um arquivo de texto, com uma tabela dos IPs de cada dispositivo. À medida que novos computadores se conectavam, o número IP deles era adicionado a essa tabela, mas, obviamente, chegou um momento que ficou insustentável atualizar a planilha.
Foi nesse cenário, com a necessidade de automatizar a gestão e a criação de novos endereços IP, que surgiu o DNS em 1985. Um dos objetivos da criação do DNS foi tornar mais fácil a expansão e a escalabilidade da internet por meio do uso do protocolo TCP/IP.
Além disso, outra importante mudança foi que essas informações passaram a estar disponíveis em outras máquinas, o que deu origem, então, ao sistema distribuído.
Como o DNS funciona?
Vamos explicar aqui de uma maneira bem básica o funcionamento do DNS. Para encontrar o endereço IP escolhido, o servidor DNS usa uma série de servidores especializados para descobrir a localização exata. Primeiro, seu próprio sistema operacional checa para ver se o endereço IP já está salvo no seu cache local. Isso é possível se você buscou o mesmo endereço eletrônico recentemente. Se não estiver no cache, é nesse momento que o serviço de DNS entra em cena.
Seu pedido é encaminhado para um servidor de DNS de entrada, chamado servidor local ou DNS resolver. Esse servidor local 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 o servidor local não tiver o endereço certo, ele procura a resposta em outro servidor.
O servidor local envia o pedido para um DNS central, chamado servidor raiz. Há apenas 13 conjuntos de servidores raiz no mundo (10 nos Estados Unidos, 1 na Holanda, 1 na Suécia e 1 no Japão), distribuídos globalmente para atender às necessidades de todas as redes ligadas ao DNS. O servidor raiz checa se seu próprio cache tem a informação e, caso não tenha, 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.
Os servidores TLD são repositórios imensos e cada um deles é responsável por diferentes categorias de nomes de domínios, como .com, .org ou .net. Por exemplo, se você digita azion.com, o servidor raiz vai estabelecer uma conexão entre seu servidor local e o servidor TLD .com. Depois disso, o TLD passa a requisição para a fase final do labirinto de servidores: o servidor autoritativo.
O servidor autoritativo é o responsável por saber tudo sobre o domínio em questão, incluindo o endereço IP. Esse servidor entrega o endereço IP para o servidor local, que o encaminha para o equipamento do usuário – e tudo isso rapidamente, no tempo de carregar uma página de internet. O Intelligent DNS da Azion é um DNS autoritativo.
Como o DNS direciona o tráfego?
Resumindo, esse é um exemplo básico da estrutura e do fluxo de funcionamento do sistema DNS:
1. O cliente solicita ao servidor local a resolução do nome (por exemplo, www.azion.com.br).
2. O servidor local pergunta www.azion.com.br a um servidor raiz;
3. O servidor raiz responde: quem é responsável por .br é esse aqui 200.219.148.10;
4. O servidor local pergunta www.azion.com.br ao servidor responsável por .com.br;
5. O servidor responsável por .com.br responde: quem é responsável por .com.br é esse aqui 179.191.160.2;
6. O servidor local pergunta www.azion.com.br ao servidor autoritativo responsável por .azion.com.br
7. O servidor autoritativo responsável por .azion.com.br responde para o servidor local www.azion.com.br = 200.240.235.4
8. O servidor local envia a resposta www.azion.com.br = 200.240.235.4 para o usuário.
A imagem a seguir mostra a arquitetura e o fluxo do sistema DNS mencionado anteriormente:
Elementos importantes de um serviço DNS
O processo de consulta de DNS e o carregamento de uma página na internet também depende de outros componentes, de processos mais complexos, e para entender isso é importante saber sobre outras peças que fazem parte da engrenagem. É isso que vamos ver a seguir.
O que é endereço IP?
O endereço IP é uma sequência numérica única, cada dispositivo tem o seu, estruturada por uma sequência de números e pontos, que ajuda a identificar os dispositivos conectados à internet. Como o endereço IP é necessário para reconhecer os dispositivos, o DNS conecta nomes de domínio aos endereços IP correspondentes. Basicamente, quando o usuário insere um endereço web no navegador da web, o DNS converte o nome de domínio em endereço IP.
Então, quando o usuário digita o domínio no navegador da web, o DNS pesquisa seu banco de dados para encontrar o endereço IP correspondente para esse nome de domínio. Em seguida, ele relaciona o nome de domínio ao endereço IP do site. Depois disso, o usuário pode se comunicar com a página.
Vamos fazer um teste? O endereço IP da Azion no Brasil é 107.22.50.165. Copie essa sequência numérica e cole em seu navegador. Pronto! Você vai ser direcionado para a nossa página principal.
O que é Espaço de Nomes de Domínio?
O Espaço de Nomes de Domínio (Domain Name Space), também conhecido como hierarquia de domínios, possui uma estrutura hierarquizada, em formato de árvore, e contém especificações de nomes de domínios e dados associados a esses nomes. Esse espaço de nomes é dividido em domínios e a responsabilidade pelo gerenciamento de nomes dentro de cada domínio é delegada em sistemas dentro de cada domínio. Ou seja, a estrutura de nomenclatura é dividida em zonas pequenas, gerenciáveis, e cada servidor DNS mantém um arquivo de banco de dados específico e só é responsável por gerenciar os mapeamentos de nome para IP para essa pequena parte da estrutura de DNS. Quando um servidor DNS recebe uma solicitação para a conversão do nome que não faça parte da zona DNS, o servidor DNS encaminha a solicitação para outro servidor DNS na zona apropriada para conversão.
Veja a hierarquia de domínios na imagem abaixo:
Sobre essa estrutura:
- cada interseção (nesse caso, o retângulo com um nome dentro) é chamada de nó;
- cada nó representa um domínio;
- cada domínio tem um nome, então, cada nó nessa estrutura é chamado de nome de domínio;
- o nome do domínio identifica a posição de cada um na hierarquia lógica do DNS em relação ao seu domínio principal. Cada nome de domínio consiste em alguns nomes separados por pontos;
- cada domínio pode conter subdomínios;
- um subdomínio faz parte de um domínio maior. Por exemplo, docs.azion.com e mail.azion.com e www.azion.com são subdomínios do domínio azion.com;
- os domínios e subdomínios agrupam-se em zonas para permitir a administração distribuída do espaço de nomes.
O que é um servidor DNS?
Os servidores DNS executam as seguintes tarefas:
- respondem a consultas de clientes ou servidores externos (vindas da internet) sobre nomes registrados em seu domínio local;
- realizam resoluções de nomes de domínio na internet para seus clientes locais (máquinas dentro de seu domínio);
- armazenam em cache local as resoluções de nomes solicitadas por seus clientes, para agilizar consultas futuras.
E, de acordo com a função, um servidor DNS pode ser classificado em:
Primário: é responsável por um domínio. A inclusão, alteração ou exclusão dos registros desse domínio são feitas neste servidor.
Secundário: funciona como backup do servidor primário, recebendo dele os registros do domínio através de um processo chamado zone transfer; também responde às requisições dos clientes quando requisitado.
Caching-only: apenas efetua consultas e retorna resultados, mantendo um cache local. Não é responsável por nenhum domínio, sua única função é melhorar o desempenho das resoluções de nome para os clientes locais usando seu cache.
Ficou curioso e quer saber como implementar um DNS moderno para alavancar o seu negócio digital? Fale com um dos nossos especialistas. A Azion tem a melhor solução.
Referência
¹ KUROSE, J. F.; ROSS, K. Redes de computadores e a Internet: uma abordagem top-down. Tradução Daniel Vieira. 6. ed. São Paulo: Pearson Education do Brasil, 2013.