Como funciona o protocolo DNS

Como funciona o protocolo DNS?

O protocolo DNS ou Domain Name System é um protocolo descrito no RFC’s 882 e 883 no ano de 1984.

É usado para resolver nomes em endereços IP de computadores ou dispositivos que estejam ligados a internet usem endereços IP.

Protocolo DNS

Para entender melhor como funciona o DNS podemos fazer uma analogia.

Imagine a nossa agenda de contactos no telemóvel, contem o nome e numero de telemóvel dos nossos amigos, familiares,etc.

Sempre que queremos comunicar com alguém procuramos pelo nome na agenda e ligamos para o respectivo numero associado ao nome da pessoa.

O protocolo DNS é usado para desempenhar o mesmo sistema mas em vez de traduzir nomes de pessoas em números de telemóvel traduz nomes (domínios) em endereços IP.

Por exemplo, quando queremos aceder a uma pagina da internet digitamos o nome do domínio (poplab.pt) no browser, ao primir enter o cliente DNS (browser) faz uma consulta no servidor DNS (dns query) para verificar que endereço IP esta atribuído.

Após receber uma resposta do servidor DNS (dns response) com a informação do endereço IP associado ao domínio para puder comunicar com o servidor e visualizar a pagina, mais à frente vou explicar o funcionamento em mais detalhe.

Estrutura DNS

O DNS e uma base de dados hierárquica distribuída para resoluções de nomes em endereços IP, não existe um servidor que armazene toda a informação.

Como dito anteriormente o sistema de resolução de nomes tem uma estrutura hierárquica em forma de arvore, como exemplificado na imagem seguinte de forma centralizada.

protocolo DNS
Protocolo DNS

Como é possível verificar na imagem existe um root server que esta no topo da hierarquia e é representado por um ponto “.”

gTLD’s (Generic Top Level Domain)

Os gTLD’s estao definidos como extensões para domínios de topo na Internet.

.com , .org , .edu , .gov

ccTLD’s (Country Codes Top Level Domain)

Os ccTLDs estão definidos como domínios de topo em cada país.

.pt , .es , .br

Funcionamento de uma pesquisa DNS

As pesquisas pelos nomes de domínios podem ser divididas em duas fases, local e remota.

Resolução DNS

Fase 1 Local

Na primeira fase são usados os recursos locais assim como a cache DNS local, nome do computador e o ficheiro Hosts caso não encontre informação relativa ao domínio passa para a segunda fase.

  • Cache DNS local
  • Nome do Computador
  • Ficheiro Hosts

Fase 2 Remota

Passos para a resolução de endereços de domínio:

  • Cache do DNS Server
  • DNS Server Address

Cada vez que um visitante introduz o endereço poplab.pt na barra de endereços do firefox o sistema verifica na cache local do DNS se visitou o endereço recentemente, se o IP do domínio esta em cache a ligação é estabelecida caso contrario é comparado com o nome do computador.

De seguida se o nome não é idêntico ao nome do computador o sistema verifica o ficheiros Hosts se tem informação relativa ao IP do dominio.

Ate este momento todos os passos para a resolução do Ip do domínio foram feitos localmente, daqui em diante as consultas vao ser feitas em servidores remotos.

Apos consultar o ficheiros Hosts e nao detetar a informação necessária o sistema vai consultar a cache do servidor atribuído pelo nosso ISP.

Se ja houve algum client do ISP ou dns público a requisitar o domínio (poplab.pt) recentemente, o servidor atribui o endereço IP associado ao domínio.

Caso contrario o servidor faz uma consulta ao root server pelo endereço IP associado ao domínio (poplab.pt), obviamente o root server nao conhece o IP de todos os domínios mas conhece os IP’s de todos os servidores de topo que gerem os dominios .pt.

Sendo assim o nosso servidor faz um consulta (query) ao servidor raiz pelo endereço IP do dominio (poplab.pt) mas não este não conhece e responde com o endereço IP do servidor de topo que gere o dominios .pt.

Apos conhecer o endereço do servidor que gere os dominios .pt o servidor (do ISP) faz uma consulta ao servidor de topo (.pt) pelo endereço IP associado ao servidor DNS que gere o dominio poplab.pt.

De seguida e feita outra consulta pelo servidor do ISP ao servidor(ns1.poplab.pt) que gere o domínio poplab.pt pelo endereço IP associado ao site www.poplab.pt.

O servidor que gere o domínio responde com o IP do site ao servidor DNS do nosso ISP que este por sua vez o repassa ao nosso browser para ser possível consultar o site.

Localização do ficheiro hosts

Linux

vi /etc/hosts

Windows

%systemroot% \system32\drivers\etc/hosts

Como alterar DNS

PC local

Linux

Alterar os endereços IP no ficheiro:

vi /etc/resolv.conf

Windows

Executar o comando no terminal:

netsh interface ip set dns “Local Area Connection” static 8.8.8.8
Rede local

O DNS usado na rede local e atribuído pelo servidor DHCP do nosso ISP, para o alterar temos de aceder ao nosso router e fazer a alterar, consultar aqui o artigo de como alterar DNS nos router Thomson TG787n.

Cache Servidor DNS

A cache de um servidor DNS armazena todas as consultas realizadas pelo servidor aos DNS root servers, este processo permite acelerar as consultas realizadas pelos clientes aos domínios mais requisitados ao servidor DNS.

Protocolo DNS Tipos de Registros (Records Types)

Registo DNSDescriçãoUso
A
CNAME
MX
TXT
PTR

Servidores de DNS

Muitas empresas fornecem serviços de dns públicos, passo a listar algumas delas:

Google Public DNS IP

  • 8.8.8.8
  • 8.8.4.4

Cloudflare DNS

  • 1.1.1.1
  • 1.0.0.1

Domain Name Space

Zonas

Name Servers

Mais topicos: FQDN, Forward Lookup, Reverse Lookup

RFC 882 DOMAIN NAMES – CONCEPTS and FACILITIES

RFC 883 DOMAIN NAMES – IMPLEMENTATION and SPECIFICATION

nameserver tld autoritativo, nameserver tld autoritativo, dns recursivo root nameserver tld, nomes de domínio,