Curso Básico de DNS
Domain Name System
Índice
DNS – Domain Name System
 Histórico
 O que é DNS
 Como Funciona
 Delegação
 Tipos de Servidores
 Resource Records – Tipos de Registros
 Resolução de Nomes
 Resolução Reversa
 Recursividade
Histórico
 Necessidade de mapeamento de nomes para endereços de rede desde a
ARPAnet (década de 1970)
 Arquivo hosts.txt continha toda a informação necessária a respeito do
mapeamento dos nomes para endereços IP de todos os hosts da rede
(semelhante ao arquivo /etc/hosts.txt do Unix).
 Arquivo mantido pelo SRI-NIC (Stanford Research Institute - Network
Information Center) e distribuído aos administradores da ARPAnet por FTP.
Histórico
 Problemas detectados com a solução baseada no arquivo hosts.txt:
 Tráfego e carga de CPU: o suporte ao tráfego na rede decorrente do
processo de atualização e a carga de CPU da máquina que mantinha o
arquivo de hosts se tornaram cada vez mais difíceis.
 Conflito de nomes de hosts: não era possível existir dois hosts com o
mesmo nome no arquivo, mesmo sendo de instituições diferentes. O NIC
tinha poderes para designação de endereços IP únicos, mas não tinha
qualquer autoridade sobre os nomes dos hosts.
 Consistência: manter a consistência do arquivo hosts.txt era quase
impossível.
Histórico
 O sucesso da ARPAnet determinou o fracasso do arquivo hosts.txt.
 Administradores da ARPAnet buscam um sucessor para o hosts.txt, onde a
administração deve ser local e os dados devem estar disponíveis globalmente.
 Paul Mockapetris foi o responsável por desenhar a arquitetura do novo
sistema. Em 1984, lança as RFCs 882 e 883 (obsoletadas pelas RFCs 1034 e
1035), descrevendo o DNS (Domain Name System).
O que é DNS
 O DNS é um banco de dados distribuído.
 A árvore de domínios que constitui o banco de dados do DNS é denominada
DNS name space (espaço de nomes de domínio).
O que é DNS
 Os dados de cada segmento do banco de dados são disponibilizados em toda
a rede através de um esquema cliente-servidor.
 A parte servidor do esquema cliente-servidor é executada pelos name servers,
que contém informações sobre os segmentos (zonas).
 Os clientes são chamados resolvers e enviam aos name servers as consultas
de nomes para a porta destino 53 UDP (ou TCP, que não é muito utilizado).
 O componente que permite acesso dos clientes ao serviço DNS é denominado
name resolver. Sua implementação não é feita via um programa específico (isto
é, não existe um “cliente DNS” específico) e sim por rotinas de acesso das
aplicações que necessitam resolver nomes em endereços de rede.
 Fazer a consulta de resolução de nomes, interpretar as respostas e retornar
aos programas as informações solicitadas são funções do resolver.
Como Funciona
 A estrutura do banco de dados do DNS é similar ao sistema de arquivos do
Unix, desenhado como uma árvore invertida com o nó raiz (root node) no topo.
 No Unix, o nó raiz é identificado com uma barra (/) . No DNS, é um nó nulo
(null) representado como um par de aspas (“”) ou na notação textual como um
ponto (.).
Como Funciona
 Cada nó é, por sua vez, a raiz de uma nova “subárvore” que pertence à árvore
completa. Cada uma dessas “sub-árvores” representa um segmento do banco de
dados do DNS (equivalente a um diretório do Unix) que é chamada de domínio.
 Cada domínio no DNS (bem como um diretório no Unix) pode ser dividido em
subdomínios (subdiretórios no Unix).
 Todo domínio terá uma
identificação única
representada pela seqüência
de nomes desde o nó raiz até
o próprio nó, com cada nome
separado do outro por um
ponto.
 Cada nó da árvore pode
conter até 63 caracteres e a
árvore de nomes pode ter até
127 níveis de profundidade.
A notação da árvore do
banco de dados do
DNS é invertida em
relação ao sistema de
arquivos do Unix.
br
net
usr
local
telemar
bin
rms
imake
rms.telemar.net.br
/usr/local/bin/imake
Como Funciona
 Cada domínio pode ser administrado por uma organização diferente,
permitindo a distribuição de responsabilidades ao longo da rede.
 As organizações podem administrar seus respectivos domínios através da
delegação pela autoridade competente no seu país.
 Autoridade nos EUA: InterNIC (http://www.internic.net)
 Autoridade no Brasil: FAPESP (http://registro.br)
 Organização dos domínios dividida em:
 Institucionais: englobam os equipamentos em função da natureza da
instituição que os mantém. Exemplos: com, edu, gov, org.
 Geográficos: definidos em função da disposição geográfica das
instituições. Exemplo: br, ar, uk, jp.
Como Funciona
 Top-Level Domains (TLD): domínios superiores do tipo institucionais para
instituições registradas diretamente no InterNIC e domínios geográficos para países,
delegados para instituições locais responsáveis por eles. Atualmente, também são
conhecidos por generic Top-Level Domains (gTLD).
 Originalmente, 7 TLDs:
 com – Empresas comerciais
 edu – Instituições de ensino e pesquisa
 mil – instituições militares
 int – Organizações internacionais
 gov – Instituições governamentais
 org – Instituições não comerciais
 net – Empresas provedoras de conectividade
 Um oitavo TLD chamado arpa foi originalmente utilizado pela ARPAnet para
transição do arquivo de hosts para o DNS e atualmente é utilizado para resoluções
reversas.
 FQDN (Fully Qualified Domain Name): nome de domínio completo de um host na
Internet, reflete toda a hierarquia desde onde o domínio está registrado até o TLD.
Como Funciona
“”
root
Top Level
Domains
Second
Level
Domains
arpa
com
edu
gov
mil
net
au
...
br
in-addr
berkeley
com
200
ce
telemar
222
waxwin
www
generic domains
0
34
34.0.222.200.in-addrp.arpa
...
uk
...
zw
telemar.com.br
www.telemar.com.br (FQDN)
country domains
Delegação
 A descentralização da administração do DNS é obtida através do conceito de
delegação.
 A administração de um domínio pode ser dividida em subdomínios e cada
subdomínio pode ser delegado a outra organização.
 Os name servers (servidores de nomes) geralmente contêm informações
completas a respeito de uma zona, que podem ser obtidas através de um arquivo
local ou de outro name server.
Tipos de Servidores
 Os servidores de nomes podem ser classificados como:
 Autoritativos
 Cache-Only
 Fowarders
 Os servidores autoritativos podem ser de dois tipos: servidores primários
(primary master) e servidores secundários (secondary master).
 Os servidores primários de uma zona obtêm os dados dessa zona de um
arquivo local.
 Os servidores secundários (também conhecidos como slave name servers) de
uma zona obtêm os dados dessa zona de outro servidor de nomes que tem
autoridade sobre essa zona, chamado servidor master (master server).
 Geralmente, os servidores master são servidores primários mas nada impede
que um servidor secundário obtenha os dados de um outro servidor secundário.
Tipos de Servidores
 Tanto o servidor primário quanto o secundário respondem com autoridade
(authoritative answer) pelas zonas que têm em sua configuração.
 O servidor secundário contém uma cópia dos arquivos de zona do servidor
primário. Quando um servidor secundário é iniciado, lê os arquivos de backup da
zona e verifica com o primário se houve alguma modificação (consultando o
serial number da zona) e, em caso afirmativo, busca os dados da zona. Esse
processo é chamado de transferência de zona (zone transfer) e utiliza a porta 53
TCP.
 A diferença entre um servidor primário e um servidor secundário diz respeito a
administração dos servidores, já que os dados de uma zona só precisam ser
atualizados no primário (pois a atualização da zona é transmitida via
transferência de zona para o secundário). Para consultas, todos os dois têm a
mesma importância, respondendo com autoridade pela zona.
 Os arquivos utilizados pelo servidor primário para carregar os dados de uma
zona são denominados arquivos de zona.
Tipos de Servidores
 Os servidores do tipo Cache-Only não têm autoridade sobre nenhuma zona
(exceto, se configurado, pela 0.0.127.in-addr.arpa).
 Quando uma consulta a um nome é feita e sua resposta ainda não está no
cache do servidor, é preciso resolvê-lo através de consultas recursivas a
servidores autoritativos.
 Uma vez recebida a resposta, ela é armazenada em cache. Dessa forma, a
próxima consulta para o mesmo nome será respondida diretamente ao cliente,
sem necessidade de consultas recursivas para encontrar a resposta (desde que o
tempo de vida (TTL) do registro ainda não tenha expirado).
 TTL (Time To Live): valor que o administrador da zona configura que indica por
quanto tempo um servidor de nomes pode manter os registros referentes a sua zona
em cache. Quando o TTL de um registro expira, o servidor de nomes deve descartar o
dado em cache e buscá-lo novamente nos servidores autoritativos da zona consultada.
 Se uma zona tem seus registros atualizados freqüentemente, a melhor opção é usar
um TTL baixo, porém a carga nos servidores autoritativos para a zona será maior, pois
as consultas dos servidores cache também serão mais freqüentes.
Tipos de Servidores
 Os servidores do tipo Forwarder encaminham as consultas de resolução de
nomes para outros servidores.
 O recurso de forwarding pode ser aplicado para o servidor de nomes ou apenas
para determinadas zonas.
 Quando aplicado para o servidor de nomes (que passa a ser trabalhar no
modo Forwarder-Only), toda consulta para esse servidor é encaminhada para
outros servidores.
 Quando aplicado apenas para determinadas zonas, apenas as consultas
referentes a essas zonas serão encaminhadas para outros servidores
Tipos de Servidores
 Os servidores do tipo Forwarder ainda podem ser utilizados para aumentar a
segurança da rede interna, quando utilizados com o recurso de um Bastion Host.
 O bastion host é um servidor de nomes que geralmente é colocado em uma
DMZ, com conectividade à Internet.
 Todas as consultas dos
servidores de nomes internos
são encaminhadas para o
bastion host, através do
recurso de forwarding.
 Dessa forma, o único host
da rede que pode se
comunicar com os servidores
de nomes da Internet é o
bastion host.
Resource Records – Tipos de Registros
 Os Resource Records (RR’s) contêm as informações dos dados de uma zona.
 Os tipos mais comuns de RR’s são:
A - Address: mapeia um hostname para um enredeço IP (resolução direta).
CNAME – Canonical Name: mapeia um alias (apelido) para um hostname
com RR do tipo A.
MX – Mail Exchanger: indica um ou mais servidores de e-mail que receberão
mensagens pelo domínio.
NS – Name Server: especifica os servidores de nome autoritativos para o
domínio.
PTR – Pointer Record: mapeia um endereço IP para um hostname (resolução
reversa).
SOA – Start Of Authority: indica o início da zona e deve estar no início do
arquivo de zona. Define valores de zona tais como o serial number e o TTL.
Resolução de Nomes
 Os servidores de nomes podem fornecer informações não apenas sobre as
zonas das quais têm autoridade, bastando buscar pela árvore de domínios do
DNS as informações de zonas das quais não têm autoridade. Esse processo é
chamado resolução de nomes.
 Root Name Servers: contêm informações dos servidores de nomes que têm
autoridade sobre cada TLD.
 Em uma consulta para resolução de qualquer endereço, os root servers
informam o nome e o endereço dos servidores de nomes que têm autoridade
sobre o domínio de nível mais alto ao qual pertence o domínio desejado.
 Os servidores de nome dos domínios mais altos fornecem, então, o nome
e o endereço dos servidores de nomes do domínio de segundo nível ao qual
pertence o domínio desejado.
 Cada servidor de nomes fornece a informação necessária para chegar
“mais perto” da resposta até que um deles saiba a resposta para a consulta
do endereço.
Resolução de Nomes
Processo de resolução de nomes para o endereço girigiri.gbrmpa.gov.au
Resolução de Nomes
 Os root name servers são extremamente importantes, uma vez que se não há
informação no cache do servidor de nomes, a resolução de nomes começa por
eles. Se todos os root name servers ficarem indisponíveis por um longo período
de tempo, toda resolução de nomes na Internet falhará.
 Atualmente, existem 13 root name servers disponíveis no mundo.
Resolução Reversa
 Além da necessidade de resolução de nomes para endereços IP, existe o caso
contrário, onde uma vez conhecido um endereço IP é necessário obter o nome
do host associado. Esse processo é utilizado tanto por servidores quanto por
administradores que necessitam conhecer quem acessa seus serviços.
 A implementação dessa resolução requer uma estrutura de zonas de
autoridade e domínios totalmente independente daquela usada para as demais
informações.
 A solução foi a criação de uma parte do espaço de nomes de domínio que
usasse os endereços IP como nome dos nós. No espaço de nomes de domínio
da Internet, essa porção é o domínio in-addr.arpa.
 Os nós do domínio in-addr.arpa são nomeados por números de 0 a 255,
separados por pontos.
 O domínio in-addr.arpa pode ter até 256 subdomínios, cada um
correspondendo a valores possíveis do primeiro octeto de um endereço IP. Cada
subdomínio pode ter até 256 subdomínios, representando o segundo octeto de
um endereço IP e assim sucessivamente, até o quarto octeto.
Resolução Reversa
 O processo de resolução reversa é semelhante ao processo de resolução de
nomes, com as consultas recursivas inicialmente direcionadas para os servidores
autoritativos da zona in-addr.arpa, até a resposta final.
 Normalmente o DNS trata nomes
de domínio reverso até os limites de
uma classe C.
 Existe a possibilidade de
configurar servidores de nomes para
que seja possível a administração
de zonas de domínio reverso
correspondentes a subredes de
classe C. Essa configuração
denominada delegação de
autoridade de reverso de subredes.
Recursividade
 As consultas de nomes podem ser recursivas ou não recursivas.
 Uma consulta recursiva requer um processo de resolução do servidor de
nomes onde ele repete as consultas a servidores remotos e seguindo as
referências dadas até a resposta final.
 Nas consultas não
recursivas, a resposta dada
informa apenas quais
servidores respondem o
nome e o endereço dos
servidores de nomes que têm
autoridade sobre o domínio
de nível mais alto ao qual
pertence o domínio desejado.
 Os servidores de nome
podem ser configurados para
responder a consultas
recursivas e não recursivas.
Conhecendo mais o DNS
 As primeiras RFC’s a descreverem o DNS são: 1033 (Domain Administrators
Operations Guide), 1034 (Domain Names--Concepts and Facilities) e 1035
(Domain Names--Implementation and Specification). Após essas RFC’s dezenas
de outras foram lançadas, muitas vezes atualizando ou tornando obsoletas as já
existentes. Para informações complementares a respeito das RFC’s do DNS,
consulte http://www.dns.net/dnsrd/rfc.
Download

Resolução de Nomes