Domain Name System Protocol (DNS)

Propaganda
1

Domain Name System Protocol (DNS)
José Gomes1 5571, Ernesto Ferreira2 7821 e Daniel Silva3 7997
Engenharia de Sistemas Informáticos Pós Laboral, Comunicação de Dados
Escola Superior de Tecnologia
Instituto Politécnico do Cávado e do Ave, Barcelos, Portugal
1
[email protected], [email protected] e [email protected]
I. INTRODUÇÃO
Abstract—This document is an overview of the
protocol DNS1 (Domain Name System). The DNS (Domain
Name System) is a service we use when we access the
internet, even if we do not know it. When we type an
address into a browser, it will make use of DNS to change
the host name to an IP address.
This is not the only function of this protocol, but it is a
very simple example that proves how our life would be
difficult without him, imagine if we need to remember
every IP addresses of all the sites that we access every day,
it would be something out of range from the most of us
Index Terms—Domain Name System Protocol, DNS,
Server DNS.
Resumo— Este documento é uma visão geral do
protocolo DNS (Domain Name System). O DNS é um
serviço que todos nós usamos, quando acedemos à internet,
mesmo sem o conhecermos. Quando digitamos um
endereço num browser, ele irá fazer uso do DNS para
trocar um endereço de um host para um endereço de IP2.
Esta não é a única função deste protocolo, mas é um
simples exemplo que prova o quão difícil seria a nossa vida
sem ele, imaginem que tinham de memorizar todos os
endereços IP de todos as páginas de internet que acedem
todos os dias, seria algo impensável para a maioria de nós.
A
presente dissertação tem como objetivo transmitir uma
visão transversal sobre os principais aspetos do Protocolo
DNS. Este nos dias de hoje reveste-se de grande relevância,
face há estabilidade e confiança da internet, tendo sido criado
como forma de reforçar a segurança e facilidade de utilização
da mesma.
Com o início do crescimento exponencial da internet, na
década de 80, foi necessário adotar novas metodologias de
forma a massificar e disseminar a internet. O protocolo DNS
nasce das necessidades acima referidas e da carência de um
conjunto de métodos que automatizasse e simplificasse a
comunicação entre vários hosts3.
O endereço IP, até então, usado unicamente para a
comunicação entre hosts necessitava de uma simplificação de
modo a ser mas intuitivo para o ser humano.
A título de exemplo, para aceder a uma página web no
mundo da internet, estas são identificadas pelos seus nomes de
domínio (domain name). No entanto, todos os hosts são
também identificados por endereços IP.
O endereço IP é constituído por quatro octetos,
perfazendo 32 bits, a estrutura hierárquica do IP, quando
examinada da esquerda para a direita dá-nos a informação
acerca da localização na rede, coisa que não é possível obter
apenas com o nome do host.
Para o ser humano é mais simples lembrar nomes, e assim
identificar os referidos hosts, mas para um router o endereço
IP é mais simples de processar, pois esses cálculos são
efetuados através de operações lógicas. Para o router os
cálculos em binário são simples de fazer, quanto à informação
a ser processada se incluísse carateres alfanuméricos, os
mesmos teriam tamanho variável, o que dificultaria o
processamento e a rapidez de propagação na rede.
1
DNS-Domain Name System
2
IP – Internet Protocol
3
Hosts - Computador Ligado a uma Rede - Hospedeiro
2
De grosso modo, as principais motivações para a criação
do protocolo DNS, são simplificar a nomenclatura usada nas
comunicações, assegurar o método de gestão das mesmas e
otimizar a troca de informações de hosts entre os diversos
servidores DNS dispersados pela rede de internet.
O presente documento está dividido em quatro partes
distintas. A primeira parte é feita uma pequena síntese na
história e evolução do protocolo DNS, numa segunda parte, é
descrito todos os prossupostos técnicos e funcionalidades que
compõem o protocolo. Na terceira parte do documento é
colocado um exemplo da aplicação do DNS na atualidade
“Google DNS”, por fim é demostrado aplicações e comando
de terminal que utilizem o protocolo DNS para obter
informações. [1]; [2]
O protocolo DNS utiliza o protocolo UDP7 e a porta 53
para comunicar.
Para além de identificar um host, pode também identificar
pelos apelidos que simplificam o nome do mesmo que seja
demasiado complicado ou demasiado comprido. Nestas
situações o DNS pode ser chamado para obter o nome do host,
e também para obter o respetivo IP que corresponde ao
apelido fornecido, como é o caso de alguns servidores de
correio eletrónico, que possuem apelido para simplificar o seu
host.
O protocolo DNS pode ainda ser utilizado para distribuir a
carga entre servidores web ou de correio eletrónico replicado,
com maior incidência nas páginas de internet mais
movimentados que rodam em vários servidores e têm
endereços de IP diferentes.
II. ORIGEM E EVOLUÇÃO DO PROTOCOLO
O DNS foi criado devido à complexidade de traduzir os
números de IP, por uma nomenclatura de mais alto nível, que
as pessoas comuns conseguem recordar com facilidade. Este
terá sido o ponto de apoio para o crescimento exponencial que
a internet sofreu.
A criação do DNS data do ano de 1983, e o seu principal
mentor foi o americano Paul Mockapetris, que fez o trabalho
a pedido de Jonathan Postel, uma grande personagem que
esteve presente na criação da ARPANET4 (Advanced Research
Projects Agency Network) e foi editor dos RFCs. Paul
descreveu o sistema de nomes nas RFCs5 882 e 883,
posteriormente o protocolo foi reformulado nas RFCs 1034 e
1035. A primeira implementação do DNS foi criada por um
grupo de quatro estudantes da Universidade da Califórnia
Berkeley. Essa implementação foi melhorada no ano seguinte,
dando vida ao software que até hoje é o mais conhecido e
importante servidor de domínios, o BIND6 (Berkeley Internet
Name Domain). [1]; [2]
B. Modo de funcionamento do DNS:
Os servidores DNS são distribuídos de forma hierárquica
entre vários servidores por todo o mundo, de forma que não
concentre todo o processo num único servidor, o que
sobrecarregaria o mesmo, tornaria o processo mais lento e
mais sujeito a falhas. Os servidores DNS dividem-se em três
classes, e descritos de seguida.
C. Tipos de servidores de DNS:
1) Servidores de nomes raiz
Existem 13 servidores de nomes de raiz no mundo, estes
são os responsáveis por passar uma lista de servidores TLD8
correspondentes ao endereço IP desejado.
2) Servidores TLD (nomes de domínio de alto nível)
III. DESCRIÇÃO DO PROTOCOLO
Estes servidores são os responsáveis por domínios de alto
nível como: .com; .net; .edu; .gov; .uk; .fr; .jp; entre outros.
A. Serviços fornecidos pelo DNS:
A tradução do nome de um hosts para um endereço de IP,
é realizada pelo protocolo DNS, este protocolo basicamente
funciona com um conjunto de servidores distribuídos
hierarquicamente, que recebem o nome do host que
determinado utilizador digita e devolve o endereço de IP
correspondente.
3) Servidores de nomes com autoridade
Estes servidores são a parte final do processo, isto é,
geralmente as próprias organizações, responsáveis por passar
o endereço de IP correspondente ao nome de host.
4
ARPANET - Advanced Research Projects Agency Network
5
RFC - Request for Comments
7
UDP - User Datagram Protocol
BIND - Berkeley Internet Name Domain
8
TLD - Top-Level Domain
6
3
Existem ainda os servidores DNS locais, contidos em cada
ISP9 (internet service provider - provedor de serviços de
internet). Este não integra a hierarquia de servidores DNS,
apenas repassa o nome de host e recebe o endereço IP
correspondente dos servidores que integram a hierarquia.
Para que um host tenha acesso a uma URL10 qualquer,
como por exemplo:"www.google.com", na internet. Em
primeiro lugar envia uma mensagem de requisição para o
servidor de nomes local. O servidor local envia uma consulta
ao DNS raiz, o qual percebe o sufixo 'com' e responde uma
lista de endereços IP para o DNS local contendo servidores
TLD que são responsáveis por 'com'. Em seguida, o DNS local
faz requisição para um desses servidores TLD, o qual recebe o
sufixo 'google.com' e envia ao DNS local o endereço IP do
servidor DNS com autoridade para a Google. Finalmente, o
DNS local consulta o servidor com autoridade e esse responde
com o endereço do host 'www.google.com'. Assim, o DNS
local responde ao host o IP do nome solicitado.
a)
Exemplo: www.est.ipca.pt
– pt – domínio de nível de topo
– ipca e est – domínios de segundo e terceiro níveis,
respetivamente
Fig. 1. Esquema Consulta Iterativa.
Servidor responde com endereço se o souber, ou envia
endereço de servidor que pode fornecer a informação
pretendida
– www – nome da máquina (host)
Significa máquina www dentro do domínio est, dentro do
domínio ipca, dentro do domínio pt.
Realizado o processo relatado acima, vemos que há
consultas recursivas e iterativas. Essas consultas são feitas
entre o host e o DNS local. Estas consultas são recursivas pois
o hospedeiro solicita ao DNS local que obtenha o mapeamento
em seu nome. Enquanto as outras três consultas (DNS local
com DNS raiz, TLD e autoridade) são iterativas, já que as
respostas são retornadas diretamente ao DNS local. Em teoria,
qualquer consulta DNS pode ser iterativa ou recursiva, porém,
na prática, as consultas geralmente são feitas conforme o
padrão exposto no exemplo acima.
Todos os servidores DNS, podem utilizar a cache de DNS
para tornar o processo mais rápido, isto é, ao realizar o pedido
ao servidor, este guarda na memória a resposta
correspondente. Desta forma quando a mesma requisição é
feita novamente ele dará a resposta imediatamente, não
necessitando fazer toda a procura novamente. Essa informação
fica armazenada por um certo período de tempo, geralmente 2
dias, até ser atualizada novamente em uma outra requisição.
Fig. 2. Esquema Consulta Recursiva.
Servidor responde com endereço se o souber, ou
encarrega-se de fazer o pedido a outro servidor e enviar a
resposta final ao cliente
b)
9
ISP - Internet service provider
10
URL - Uniform Resource Locator
DNS reverse lookup
Pesquisa em sentido contrário: com este método, sabe-se
endereço IP e pretende-se saber qual o nome associado, usa-se
endereço IP em sentido inverso seguido de ‘in-addr-arpa’ para
IPv4, ou ‘ip6.arpa’ para IPv6.
4
c)
Exemplo.: 231.231.137.193.in-addr.arpa
IV. ATUALIDADE GOOGLE PIONEIRA EM DNS
Servidores de raiz apontam para o RIPE11 NCC (Réseaux
IP Européens
Network Coordination Centre, o RIR12 (Regional Internet
Registry) para a Europa), para a zona 193.in-addr.arpa.
Servidor no RIPE NCC aponta para Portugal (FCCN 13),
para a zona 137.193.in-addr-arpa.
Servidor da FCCN aponta para o IPCA (ns.ipca.pt), para a
zona 231.137.193.in-addr.arpa.
Servidor ns.ipca.pt devolve ‘www.est.ipca.pt’ como
resposta (nome associado ao IP 193.137.231.231.
d)
DNS mensagens
Fig. 3. DNS da Google.
Tipos de registo:
A – endereço IPv4.
AAAA – endereço IPv6.
CNAME14 (Canonical Name) – fornece um nome
alternativo (alias) para o nome pesquisado; é depois enviado
um novo pedido com este nome.
MX 15(Mail Exchanger) – indica o endereço do servidor
de e-mail para o domínio especificado.
NS16 – indica um servidor de nomes que pode ser
consultado.
PTR17 – utilizado em pesquisa invertida, para devolver
nome associado a um endereço.
SOA18 (Start of Authority) – contém meta-informação
sobre a zona (nome, contacto, valores padrão para a zona). [1];
[2]; [4]
O Google anunciou recentemente a passagem deste
serviço a um estágio mais definitivo e apresentou também os
números referentes à sua utilização.
O Google utiliza os mesmos endereços de IP em qualquer
parte do mundo, mas utilizando um sistema distribuído, que
trata da sincronização de zonas automaticamente e de forma
distribuída.
Segundo Google, mais de 70% dos pedidos que são
recebidos neste serviço são provenientes dos Estados Unidos.
A presença em outras zonas do globo continuam a crescer e a
Google instalou novos servidores em zonas que até agora não
estavam cobertas com este serviço de forma correta.
O empenho do Google neste serviço é tal que alargaram já
o seu suporte para IPV619.
Este modelo apresentado pela Google para o serviço de
DNS, deu origem a uma nova proposta acerca de como o DNS
pode funcionar com recurso a CDN´s20, modelo esse que está
em estudo e em discussão no IETF21, esse mesmo modelo está
atualmente a ser implementado por outras empresas de forma
semelhante. [3]
11
RIPE- Réseaux IP Européens
12
RIR- Regional Internet Registry
13
FCCN- Fundação para a Computação Cientifica Nacional
14
CNAME- Canonical Name
15
MX- Mail Exchanger
16
NS- Name server
19
IPV6 - Internet Protocol Version 6
PTR- Pointer record
20
CDN’s - Content Delivery Network
SOA- Start of Authority
21
IETF - Internet Engineering Task Force
17
18
5
V. APLICAÇÕES
A. Principais Softwares
Estes
são
alguns
dos
principais
softwares
(opensource22 ou comerciais) utilizados para se instalar e
configurar um Servidor DNS:







BIND
NSD
djbdns
Unbound
Microsoft DNS
Dnsmasq
MaraDNS
B. Aplicações em linha de comandos
Em Linux existem alguns comandos de terminal que usam
o protocolo DNS de forma a transmitir ao utilizador as
informações necessárias.
De Seguida faz-se referência aos quatro principais
comandos com base em terminal Linux.
Host - é um utilitário simples para a realização de
pesquisas de DNS. É normalmente usado para converter
nomes de domínio em endereços IP e vice-versa. Quando não
há argumentos o anfitrião imprime um breve resumo dos seus
argumentos. Nome é o nome de domínio que está a ser
observado. Também pode ser um endereço IPv4 ou um
endereço IPv6, no qual o host padrão, executa uma pesquisa
inversa para o endereço.
Nslookup - é um comando de terminal Windows/Linux
para consultar servidores de nome de domínio da Internet.
Nslookup tem dois modos: interativo e não-interativo. O modo
interativo permite ao utilizador consultar os servidores de
nomes para obter informações sobre os vários hosts e
domínios ou para imprimir uma lista de hosts num domínio. O
modo não interativo é usado para imprimir apenas o nome e as
informações solicitadas para uma máquina ou domínio.
Dig23 - É uma ferramenta flexível para interrogar os
servidores de nomes DNS. Ele executa pesquisas de DNS e
exibe as respostas que são retornadas do servidor de nome (s)
de domínio que foram consultados.
A maioria dos administradores de DNS utilizam o dig
para solucionar problemas de DNS por causa de sua
flexibilidade, facilidade de uso e clareza.
22
Opensource - Software de Código Aberto
23
Dig - Domain Information Groper
Apesar de dig normalmente usar argumentos, ele também
tem um modo de lote de operações de leitura de pedidos de
pesquisa a partir de um arquivo. Um breve resumo dos seus
argumentos de linha de comando e opções é disponibilizado
quando a opção-h é dada. Ao contrário das versões anteriores,
o BIND 9 implementação do dig permite pesquisas múltiplas a
ser emitido a partir da linha de comandos. A menos que seja
dito para consultar um servidor nomes de domínio específico,
o dig vai tentar cada um dos servidores listados no
/etc/resolv.conf.
Quando não há argumentos de linha de comandos, o dig
irá realizar uma consulta NS a partir da "." (a raiz).
Whois - O comando whois pesquisa nos registos de uma
base de dados mantidos por vários Centros de Informação de
Rede. Este permite identificar se o nome de domínio está
disponível, e se não estiver indica o proprietário de um nome
de domínio e outras informações com servidores NS etc. [1];
[4]
VI. REFERÊNCIAS
[ IBM, “ibm.com,” 04 Junho 2012. [Online]. Available:
[1] http://www.ibm.com/developerworks/br/local/opensource/
dns_protocol/index.html. [Acedido em 22 Março 2013].
[ WikiversityS, “wikiversity.org,” 16 Setembro 2012.
[2] [Online].
Available:
http://pt.wikiversity.org/wiki/Introdu%C3%A7%C3%A3o
_%C3%A0s_Redes_de_Computadores/DNS.
[Acedido
em 25 Março 2013].
[ Pplware, “Pplware.sapo.pt,” 25 Fevereiro 2012.
[3] [Online].
Available:
http://pplware.sapo.pt/informacao/dns-da-google-e-ja-omais-usado-na-internet/. [Acedido em 25 Março 2013].
[ The Internet Engineering Task Force (IETF), “rfc[4] editor.org,”
[Online].
Available:
http://www.rfceditor.org/search/rfc_search.php. [Acedido em 28 Março
2013].
Download