DNS
Parte 1
Características e Conceitos
Tópicos em Sistemas de Computação
Prof. Dr. Adriano Mauro Cansianadriano@acmesecurity.org
1
Referência para estudo
• O tratamento uMlizado neste tópico é o mesmo adotado pelo livro Craig Hunt -‐
TCP/IP Network Administra5on. Este tratamento é excelente e suficiente para o
administrador de redes e UNIX. Entretanto, por algumas vezes, este texto não é muito formal, ou seja, ignora alguns conceitos, considerando-‐se o ponto de vista acadêmico e mais aprimorado. Para alunos que desejam ir mais a fundo na questão, e aprimorar sua formação e seus conhecimentos em gerenciamento, recomenda-‐se uma leitura atenta do capítulo 14 (DNS: The Domain Name System) de TCP/IP Illustrated -‐ Volume 1 -‐ The Protocols, de Richard Stevens . Trata-‐se de um texto excelente, de fácil compreensão e com excelentes ilustrações que auxiliam no entendimento.
• Créditos – Fair Use: este material foi produzido a parMr de um dos livros-‐texto adotados no disciplina: Hunt, Craig -‐ TCP/IP Network Administra5on -‐ O’Reilly & Associates, Inc. -‐ 1.a Edição -‐ Capítulo 3, pag. 51 e Capítulo 8, pag 167. Este material pode usar citações e figuras de outros autores. Direitos reservados aos autores. Todas as citações feitas em caráter didáMco para uso em sala de aula.
Introdução
• Nomes e endereços
• Tradução
• Do /etc/hosts para o Bind
3
Introdução: nomes e endereços (1)
Interface de rede TCP/IP:
endereço IP formado por 32 bits
.
Representado na forma numérica como:
xxx.yyy.zzz.kkk
200.145.1.1
Mas, lidar com endereços de um computador pelo
número é
desconfortável, pouco prá=co
e sujeito a
erros
Introdução: nomes e endereços (2)
• Além disso, o endereço de um computador poderianecessitar ser alterado, devido a, por exemplo, uma
mudança de rede fsica ou de roteamento.
• Neste caso, todos os usuários daquele computador precisariam ser avisados de que o endereço foi mudado.
• Em virtude principalmente destes fatos, foi considerado que um nome poderia ser atribuído e associado a qualquer disposi=vo que possua um endereço IP.
5
Introdução: nomes e endereços (3)
•
É
muito mais fácil um humano se lembrar de
nomes
do que de
números
.
•
Além do fato do nome poder ser manMdo numa
eventual mudança de endereço IP.
Entretanto à O
soCware
da camada de rede e a
pilha TCP/IP operam apenas com os endereços
numéricos.
Nomes e números podem ser usados indisMntamente, mas os nomes são sempre lembrados com mais facilidade.
Tradução / Conversão
Exemplo: % ssh METAL.dcce.ibilce.unesp.br % ssh 200.145.202.125conduzem ao mesmo computador.
Quando se uMlizam nomes é necessário que exista um serviço
que efetue a conversão deste nome em um número IP para
que se estabeleça a conexão.
• Existe um processo de “conversão”
• Chama-‐se processo de TRADUÇÃO.
7
/etc/hosts
• A tradução entre nomes e números passou por diversos estágios durante o desenvolvimento da Internet e das redes que a precederam.
• Inicialmente exisMa uma tabela, chamada hosts.txt, manMda por um órgão chamado DDN-‐NIC, e que era distribuída para todos os computadores da Internet:
• usada no /etc/hosts.txt
• (análoga à atual tabela /etc/hosts )
• Com o crescimento da Internet este esquema se tornou inviável, exigindo a criação de um serviço mais eficiente para a resolução de nomes.
/etc/hosts para o DNS
hosts.txt à foi subsMtuído por um banco de dados distribuído
denominado Domain Name Service, conhecido simplesmente como DNS, que foi concebido por Paul Mockapetris, em 1983.
• Em 1984, quatro estudantes da Universidade de Berkeley — Douglas Terry, Mark Painter, David Riggle and Songnian Zhou — escreveram a primeira implementação do DNS para o UNIX, que passou a ser manMda por Ralph Campbell e denominou-‐se Berkeley Internet Name Daemon.
• Em 1985, Kevin Dunlap da DEC Digital Equipament Co. (comprada pela HP) significaMvamente re-‐escreveu a implementação do e mudou seu nome para BIND -‐ Berkeley Internet Name Domain.
9
Bind
• O BIND é mantido pela Internet Systems Consortium
(www.isc.org)
• DNS à foi desenvolvido para oferecer uma alternativa à resolução
de nomes através do arquivo /etc/hosts.txt, e que pudesse garantir seu funcionamento eficiente mesmo em face do crescimento
explosivo da Internet.
• Permitindo ao mesmo tempo que informações sobre computadores novos fossem rapidamente disseminadas conforme a necessidade.
• Deu escalabilidade à tradução de nomes.
• As especificações do DNS encontram-se descritas na RFC-1034 e RFC-1035.
DNS x /etc/hosts
• DNS resolve dois problemas com relação ao /etc/hosts:
• DNS é facilmente escalonável à a base é distribuída
e não reside numa única tabela.
• DNS dissemina facilmenteà isso garante que novas informações sobre novos hosts, sejam disseminados para o resto da rede.
• Além disso a informação só é disseminada para
aqueles que precisam dela. Isso será discutido em seguida.
11
Funcionamento do DNS
Como o DNS funciona (1)
• Um cliente faz uma requisição a UM SERVIDOR DE DNSlocal ou remoto, previamente configurado.
• Este é o “servidor recursivo” (discuMdo mais adiante). • O Servidor de DNS recursivo recebe um request de
informações sobre um host para o qual ele (servidor) não
possui cache da informação.
• O servidor passa a requisição para um authorita?ve server:
• responsável por manter informação correta e atualizada sobre o domínio consultado.
(figura e mais detalhes a seguir)
13
Como o DNS funciona (2)
• Quando o authorita?ve server responde à o serverrecursivo faz cache da resposta para uso futuro.
• Na próxima vez que o server recursivo receber um request sobre aquele domínio, ele responde por si próprio.
Como o DNS funciona (3)
15
Como host sabe quem é seu servidor recursivo?
• Configuração manual no host do(s) IP(s) do(s) servidor(es) à pode (e deve) haver mais de um.
• Provisão automática para o host, por protocolo de provisionamento
DHCP (na rede local), ou protocolos similares: LDAP, Active Directory, ou outros.
• Host pode ser seu próprio recursivo.
– Processo servidor de DNS rodando na máquina local com arquivo de cache.
• Neste caso o host consulta seu próprio processo recursivo de DNS e cache.
– Boas alternativas ao Bind
– DJBDNS:http://cr.yp.to/djbdns.html
– Unbound: https://www.unbound.net
DNS: porta 53/udp
• O serviço de DNS é associado à porta 53 UDP, e é
chamado de “domain”.
• Aparece no /etc/services.
• Fonte de confusão para iniciantes: não confundir
com um anMgo serviço de nomes associado à porta
42, chamado “nameservice”.
• Consulte /etc/services , e/ou a documentação do
seu sistema.
17
Hierarquia e governança de
domínios de DNS
Hierarquia de domínios
• DNS NÃO possui uma base de dados central
com todos os IPs da Internet.
• A Informação é distribuída ao longo de
milhares de nameservers.
• Organizados numa hierarquia similar à
estrutura de diretórios de um filesystem
UNIX.
19
Hierarquia de domínios x filesystem
Hierarquia de domínios
• DNS tem um root domain (domínio raiz) no topo da hierarquia de domínio. • Este root domain é servido por root servers.
• Representado por um “.” (ponto).
21
Hierarquia de domínios
• root domain fica no topo da hierarquia de domínio. • Representado por um ponto “. “• O root domain é servido por root servers.
• Abaixo do root domain à estão os top level domains = TLD • Dois Mpos básicos de top level domains:
Organizacional e Geográfico.
• Organizacional são nomes de domínios genéricos de primeiro
nível com códigos genéricos (ou gTLD – Generic TLD)
• gTLD à .com .org .net .mil .edu .gov ...
Hierarquia de domínios
• Geográfico: Nomes de domínios de primeiro nível com códigos de países.
• Chamados de ccTLD – Country Code TLD
Geográfico ou ccTLD à .br .jp .ar .uk .nz .au
Geográfico-‐organizacional à .com.br .org.br .gov.br
23
Recapitulando
• Genérico:gTLD – Generic Top Level Doman
.com
.org
.net
.mil
.edu
.gov
• Geográfico:
ccTLD – Country Code Top Level Domain
.br
.jp
.ar
.uk
.nz
.au
• Geográfico-organizacional
.com.br
.org.br
.gov.br
.eng.br
Root servers (1)
Os root servers à somente possuem informações completas sobre os domínios de top level (TLDs: gTLD e ccTLD).
• São os root servers que possuem os apontadores para os servidores de top level ou para os “registry”
• (ver governança mais adiante)
Nenhum servidor (nem mesmo os root servers) possui informações completas sobre todos os domínios, mas os root servers possuem
ponteiros para os servers dos gTLDs e ccTLDs.
Assim à os root servers não possuem a resposta para um
request, mas eles sabem para quem perguntar.
25
Root servers (2)
• Root servers são operados por 13 organizações conhecidas
como "root server operators".
• Esta localização e seus respecMvos endereços raramente são alterados. Atualmente são 377 root servers, incluindo os espelhos.
• Os nomes são da seguinte forma:
“letra”.root-servers.net
onde “letra” é a letra “nome” do root nameserver, de A até M.
• Relação dos endereços:
• h{p://www.root-‐servers.org/
Root servers map
Os nomes são formados da seguinte forma:
“letra”.root-‐servers.net, onde “letra” é a letra do nome root nameserver, variando de A até M.
27
List of root servers
h{p://www.iana.org/domains/root/servers
Governança de DNS
ICANN, Registry
e
Registrar
29
ICANN
Os TLDs são delegados pelo ICANN aos “registry” ou “registradores”.
O que é a ICANN? -‐ hmp://www.icann.org/
ICANN -‐ Internet Corpora?on for Assigned Names and Numbers
• Órgão mundial responsável por estabelecer regras do uso da Internet.
• EnMdade sem fins lucraMvos e de âmbito internacional, responsável
pela:
• Distribuição de numeração IP.
• Designação de identificações de protocolos.
• Controle dos sistemas de nomes de domínios de primeiro nível gTLD e ccTLD.
ICANN e IANA
•
AnMgamente estas aMvidades eram originalmente
prestadas mediante contrato com o governo dos
EUA, pela
Internet Assigned Numbers Authority
(
IANA
) e outras enMdades.
•
A
ICANN
hoje cumpre a função da
IANA
.
• Recomendado: veja a explicação da evolução da governança em h{p://www.icann.org/en/about/unique-‐authoritaMve-‐root
31
ICANN e o DNS
Qual é a função da ICANN no DNS?
•
A ICANN é
responsável por coordenar o controle dos
elementos técnicos do DNS
que garantem a
“resolução universal”.
• Manter uma Raiz unificada do DNS (Unified Root Servers).
• Isso é realizado através da supervisão da distribuição das identificações exclusivas usadas nas operações da Internet e a distribuição de nomes de domínio de primeiro nível
(como .com, .info, org, etc....)
• Na prática isso é o que permite um usuário da Internet achar qualquer endereço válido.
33
h{p://convergenciadigital.uol.com.br/cgi/cgilua.exe/sys/start.htm?infoid=39940&sid=4 22/6/2015
Registry (1)
• REGISTRY é a enMdade delegada pela ICANN para armazenar
e administrar os registros de um determinado TLD, seja ele um gTLD ou ccTLD.
• O REGISTRY mantém disponível em seus servidores as informações dos endereços IP dos nomes de domínio de segundo nível relaMvos ao TLD que administra.
• Um REGISTRY também é chamado de NIC -‐ Network
Informa?on Center.
Registry (2)
•
Cada gTLD ou ccTLD tem
apenas um Registry
.
•
O
Registry
opera a raiz do seu TLD.
•
Tecnicamente opera seu TLD apontando para os
servidores autorizados.
•
O
Registry
mantém apenas informações de
servidores de DNS.
•
Controla as polí=cas de alocação de nomes.
•
O Registry gerencia o registro de domínios de um
TLD, operando em conjunto com o REGISTRAR.
•
É tecnicamente diferente de um
REGISTRAR
.
35
Registrar (1)
Registrar, ou agente de registro, é a enMdade credenciada
por um Registry para proceder o registro de nomes de domínio requerido por qualquer pessoa ou enMdade.
• Um TLD (gTLD ou ccTLD) pode ter vários Registrars.
• Registrar mantém as informações do proprietário do domínio em um banco de dados.
• O Registrar informa o Registry que um determinado domínio está sob sua reponsabilidade.
• Informa apenas o ponteiro para os servidores de DNS
daquele domínio.
Registrar (2)
Leituras recomendadas:
• Funcionamento de um Registrar:
h{p://en.wikipedia.org/wiki/Domain_name_registrar
• Aspectos históricos e de mercado sobre como evoluiu o sistema de
registro de nomes:
h{p://www.icann.org/en/resources/registrars/accreditaMon/history
• ICANN atualmente reconhece os seguintes domínios de nível
superior genéricos (gTLD):
h{p://www.iana.org/domains/root/db (root zone database)
h{p://www.icann.org/registrar-‐reports/accredited-‐list.html
Em alguns países o Registry também atua como Registrar.
37
Alguns TLDs e Registrys
Registrant
• Registrant é a enMdade ou pessoa que registra um domínio.
• Como ocorre o registro de um domínio:
• Consiste em ter um domínio publicado nos sistemas de um Registry
para que, quando o Registry for quesMonado sobre "-‐ Qual o servidor de DNS do domínio taldominio.com?" ele responda com um apontador para o IP do servidor.
• Registrant faz o registro de seu domínio no Registrar e informa os dados técnicos (os servidores de DNS), os dados administraMvos (contatos, endereços, pessoas) e os dados de cobrança.
• O Registrar informa para o Registry o nome do domíno sobre aquele TLD e os apontadores IP dos servidores de DNS.
39
Registro de um domínio
• Ter um domínio registrado significa "exisMr" na internet, ou seja, um
Registry (e somente um Registry) é capaz de responder a pergunta:
"sim, eu sei quem é o domínio xyz.com, e o servidor DNS que
contém informações detalhadas sobre esse domínio é o abc.com".
Exemplificando, o registro.br, que é o registry de domínios terminados em .br sabe que os servidores de DNS do domínio adr.pro.br são:
adr.pro.br nameserver = ns7.zoneedit.com. adr.pro.br nameserver = ns14.zoneedit.com.
Authoritative answers can be found from:
ns7.zoneedit.com internet address = 216.122.7.155
Processo de registro
41
Relacionamento registry x registrar
43
Registro de nomes no .BR
• No Brasil o REGISTRO.BR é o REGISTRY do domínio .br • h{p://www.registro.br
(No Brasil, o REGISTRY também atua como REGISTRAR)
• registro.br é coordenado pelo NIC.BR
• Núcleo de Informação e Coordenação do Ponto br
• hmp://www.nic.br/
• NIC É uma en=dade civil, sem fins lucra=vos, que desde dezembro de 2005 implementa as decisões e projetos do
Comitê Gestor da Internet no Brasil (CGI.BR).
• O NIC.br é considerado o braço execuMvo do CGI.br
Atribuições do NIC.BR (1)
• Manter os nomes de domínios que usam o <.br> , e a
distribuição de números de Sistema Autônomo (ASN#) e
endereços IPv4 e IPv6 no País, por meio do Registro.br;
• Realizar o tratamento e resposta a incidentes de
segurança em computadores envolvendo redes
conectadas à Internet no Brasil, atividades do CERT.br;
• Desenvolver projetos de suporte ou melhoria da infra-estrutura de redes no País:
• Interconexão direta entre redes (PTT.br); • Distribuição da Hora Legal brasileira (NTP.br) • Estes Projetos estão a cargo do CEPTRO.br.
45
Atribuições do NIC.BR (2)
• Produzir e divulgar indicadores, estatísticas e
informações estratégicas sobre o desenvolvimento da Internet no Brasil, sob responsabilidade do CETIC.br;
• Promover estudos e recomendar procedimentos, normas
e padrões técnicos e operacionais, para a segurança das redes e serviços de Internet (pelo GTER e GTS).
• Dar suporte técnico e operacional aoLACNIC - Registro de Endereços da Internet para a América Latina e Caribe.
• Hospedar o escritório brasileiro doW3C, que tem como
Composição do nic.br
•
Registro.br
-‐ Registro de domínios no ccTLD ".br”.
•
CERT.br
-‐ Centro de Estudos, Resposta e Tratamento
de Incidente de Segurança no Brasil.
•
CETIC.br
-‐ Centro de Estudos sobre as Tecnologias da
Informação e da Comunicação.
•
CEPTRO.br
-‐ Centro de Estudos e e Pesquisas em
Tecnologia de Redes e Operações.
•
W3C Brasil
-‐ Escritório brasileiro do W3C (World
Wide Web Consor5um).
47
CGI.br
• NIC.BR é definido pelo CGI.br – Comitê Gestor da Internet no Brasil.
• Entre as diversas atribuições do CGI.br destacam-‐se:
• A coordenação da atribuição de endereços internet (IPs) e do registro de nomes de domínios usando <.br>;
• O estabelecimento de diretrizes estratégicas relacionadas ao uso e desenvolvimento da internet no Brasil;
• A coleta, organização e disseminação de informações sobre os serviços internet, incluindo indicadores e esta†sMcas.
Organograma CGI.br e nic.br
h{p://www.nic.br/sobre-‐nic/nicbr.htm
49
Composição do cgi.br
Funcionamento do DNS
Questões técnicas e tecnológicas
a respeito da operação do DNS
51
Como ocorre uma resolução de nome (1)
Quem é www.acme.com.br ? (qual o IP de www.acme.com.br ?)
Como ocorre uma resolução de nome (2)
Root server
Registry para .net
Autorita=vo para Domínio Unixwiz.net
53
Bind, resolver e named
Algumas definições:
• Na maioria das vezes o serviço DNS é implementado através do so‡ware BIND (apesar de exisMrem alternaMvas em outros sistemas)
• BIND : Berkeley Internet Name Domain
• O BIND é um sistema cliente-‐servidor.
• O lado cliente do BIND à chama-‐se resolver.
• resolver à envia perguntas relaMvas a informações conMdas no DNS a
servidores de nomes (nameservers). O servidor DNS responde à estas perguntas.
Domínio
• Parte da hierarquia de um domínios é idenMficada por um “nome de domínio” ou domain name.
• Um domínio sempre está relacionado como uma “zona” e os
termos podem ser usados de forma equivalente.
• Os nomes de domínio são escritos a parMr do nome mais específico (ou seja, o nome do host) até o menos específico (o
top-‐level domain), com cada uma das partes do domínio
separada por um ponto “ . ”
• O root domain é idenMficado por um único ponto “ . ”
55
Zona
•
O termo “zona” (zone) refere-‐se a informações
conMdas em um arquivo do banco de dados do
DNS.
•
Tecnicamente a zona é o conjunto de
informações que descreve um domínio
.
•
As configurações de zona estão associadas às
definições do domínio
.
•
Alguns dos arquivos de configuração de DNS são
chamados de “arquivos de zona” (zone files).
FQDN
FQDN à Fully Qualified Domain Name
• Começa com um nome de host específico, e termina com
um top-‐level domain
• Por exemplo: firewall.sjrp.unesp.br é o FQDN
de um host chamado “firewall” dentro do sub-‐
domínio “sjrp”, do domínio unesp.br.
• Um domínio pode delegar subdomínios a outras partes da organização à delega5on
57
Delegation e subdomain
59
CaracterísMcas do
sistema de nomes
Funcionamento do
bind server
Características do bind
• O so‡ware BIND pode ser configurado de
diversas maneiras.
•
Os conceitos para as configurações mais
comuns são apresentadas a seguir.
• É muito importante estar familiarizado com a
nomenclatura e os termos uMlizados.
61
Servidor primário ou
master
• Servidor primário ou servidor MASTER à é a fonte oficial de todas as informações a respeito de um domínio específico.
• É o que deve manter todas as informações atualizadas sobre o domínio.
• Ele carrega as informações a respeito do domínio a parMr de arquivos locais (arquivos de zona e outros) manMdos pelo administrador do domínio.
• O servidor primário é o servidor mestre devido ao fato de que pode
responder a qualquer pergunta sobre seu domínio com total autoridade à
por isso é chamado de authorita?ve server.
Importante à Só pode exis=r APENAS UM servidor primário (master) para cada domínio !
Servidores secundários (1)
•
Servidores secundários (ou escravos – “slave
”):
•
São aqueles que
transferem (copiam) um
conjunto completo de informações
a par=r do
servidor primário.
• Servidores secundários NÃO possuem arquivos de zona próprios.
• Os arquivos descrevendo as zonas à são transferidos do
servidor primário, e armazenados no servidor secundário
como arquivos locais.
• Esta transferência chama-‐se zone transfer.
63
Servidores secundários (2)
• Os servidores secundários (ou slaves) também sãofrequentemente conhecidos como backup servers.
•
Mantém uma
cópia backup
dos arquivos do
servidor primário.
• O servidor secundário mantém uma cópia completa de todas
as informações a respeito do domínio, e também responde a perguntas com autoridade.
• Consequentemente, um servidor secundário também é considerado autorita=vo para um domínio.
• Os servidores primário e secundários são apontados na configuração de DNS da “zona pai” acima do domínio. 64
Servidores secundários (3)
• Server secundário à deve responder sempre.• Para quem está de fora da organização
não é possível
dis=nguir um servidor primário de um secundário
, pois ambos respondem com autoridade pelodomínio.
• É usado para manter o sistema de resolução de nomes de um domínio em funcionamento no caso de uma falha ou
sobrecarga do servidor primário.
(Existem temporizadores e caches que serão discuMdos mais adiante.)
• DEVE exisMr mais de um servidor secundário para cada
domínio. 65
Delegação na zona pai
DNS em example.com é a zona pai deve conter os apontadores para os servidores primário e secundários de at.example.com e de.example.com
Redundância do secundário
• Os RFCs recomendam que, para cada domínio,
exista pelo menos um servidor secundário
fora
da rede física onde reside o servidor
primário
do domínio ou zona.
• Por redundância, visando evitar a paralisação total de um domínio inteiro, no caso de uma falha no segmento de rede onde reside o servidor primário.
• (Como já mencionado existem temporizadores de TTL e caches que serão discutidos mais adiante na configuração da zona).
67
Relação primário e secundário
Transferência automática da zona
Últimas definições: servidores recursivos
Servidores recursivos
ou Caching-only:
• São servidores que rodam o programa named, mas
não são fontes oficiais de informação a respeito de domínios. Servem como intermediários para uma rede local ou um ISP. Fazem as perguntas recursivas
• Estes servidores obtém a resposta a todas as
perguntas que lhe são direcionadas a partir de algum
servidor remoto, primário ou secundário, ou
eventualmente de outro cache (depende de como a estrutura da rede está organizada).
69
Últimas definições: Client only
• Client only à são apenas clientes de DNS, e nãomantém processos servidores.
• É o caso da maioria das máquinas de um domínio. Ou seja, a maioria das máquinas utiliza a resolução de nomes dos servidores.
• Entretanto, como já mencionado: opcionalmente, em algumas situações, um client only pode rodar um servidor recursivo para responder a consultas para ele mesmo, fazendo consultas recursivas a partir dos root server.
• Exemplo: DJBDNS - http://cr.yp.to/djbdns.html
• Útil quando você não deseja confiar no servidor recursivo provisionado automaticamente para você pelo DHCP.