Sistema de Distribuição de Nomes de Domínios (DNS) Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações e de Computadores Redes de Computadores Sumário: Domain Name System (DNS) • • • • • • • • • • Contexto Introdução ao DNS Hierarquia de nomes Hierarquia de servidores Processo de resolução de nomes Protocolo DNS Arquitectura de servidores Balanceamento de carga Distribuição de conteúdos Segurança 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 2 Contexto • De uma forma geral existem múltiplos mapeamentos: Nome: www.isel.ipl.pt Resolução DNS (Domain Name System) Endereço IP: 193.137.100.231 ARP (Address Resolution Protocol) Endereço MAC (físico): 00-1B-77-E4-F8-F8 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 3 DNS: para que é preciso ? Cliente 193.136.222.18 Servidor HTTP Servidor DNS 193.137.100.227 193.137.100.231 DNS: www.isel.pt 193.137.100.231 Estabelecimento de ligação TCP Get http://www.isel.pt/ <ficheiro> 28/02/10 Fecho de ligação TCP Sistema de Distribuição de Nomes de Domínios (DNS) 4 Introdução ao Domain Name System (DNS) • Identificação das máquinas na rede: – Endereço IP de 32 bits: utilizados no endereçamento de datagramas • Formato fácil de processar pelos computadores – Nome (p.e. www.isel.pt) utilizados pelos humanos • Fácil memorização pelos humanos • Problema: como mapear um nome num endereço IP ? • Domain Name System: – Implementa uma função essencial para o funcionamento da Internet a uma escala planetária ! – Base de dados distribuída implementada num conjunto de servidores – Protocolo do nível de aplicação que permite o processo de resolução de nomes – Pode ser utilizado para outros serviços, ex. tradução nº telefone - endereço IP 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 5 Mapeamento DNS • Múltiplos nomes podem ser mapeados no mesmo endereço IP: – www.cnn.com e edition.cnn.com podem ser mapeados para a mesma máquina (i.e., o mesmo endereço IP) • Um nome pode ser mapeado em múltiplos endereços IP: – www.cnn.com pode ser mapeado em múltiplas máquinas 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 6 Nomes genéricos (labels) Nome genérico Descrição com edu gov mil org net int aero biz coop info museum name pro 28/02/10 Organizações comerciais Instituições de ensino pós-secundario Instituições governamentais Grupos militares Organizações sem fins lucrativos Infraestrutura de rede Organizações internacionais Companhias de navegação aérea Negócios ou firmas (semelhante ao com) Cooperativas Locais de informação sem restrições Museus Famílias e indivíduos Profissões Sistema de Distribuição de Nomes de Domínios (DNS) 7 Hierarquia de nomes raiz sem nome com edu gov int mil nao ae pt United Arab Emirates isel zw Zimbabwe www sun domínios genéricos 28/02/10 org www.isel.pt tuc sun.tuc.nao.edu net domínios de países Sistema de Distribuição de Nomes de Domínios (DNS) 8 Nomes de domínios e labels Um nome completo é uma sequência de labels separadas por pontos: começa com a label de um nó de último nível e percorre um ramo da árvore até chegar à raiz Raiz Nome genérico pt pt Nome genérico Nome genérico Nome genérico 28/02/10 www ipl isel Nome de domínio ipl.pt Nome de domínio isel.ipl.pt Nome de domínio www.isel.ipl.pt. Fully Qualified Domain Name Nome de domínio Sistema de Distribuição de Nomes de Domínios (DNS) 9 Domínios Domínio Domínio Domínio Domínio Domínio 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 10 Autoridade: zonas • Uma zona corresponde a uma autoridade administrativa que é responsável por uma parte da hierarquia de nomes raiz edu gov mil org net uk fr cmu berkeley eecs com sims divine 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 11 Zonas e domínios Raiz Zona Domínio Zona e Domínio 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 12 Sistema de nomes DNS • Exemplos de serviços DNS: – – – – Tradução de um nome de uma máquina para um endereço IP Nomes canónicos Endereçamento (alias) de servidores de email Distribuição de carga entre servidores web replicados • Conjunto de endereços IP para um só nome • Centralizar o DNS ? Porque não ? – – – – – 28/02/10 Volume de tráfego Único ponto de falha Distância à base de dados centralizada Manutenção Falta de escalabilidade Sistema de Distribuição de Nomes de Domínios (DNS) 13 Hierarquia de servidores • Os servidores DNS são organizados de forma hierárquica • Autoridade: servidor com a responsabilidade de manter uma tabela de resolução para todos os nomes no espaço de nomes que controla • Cada servidor tem autoridade sobre uma parte da hierarquia – Um único nó na mesma hierarquia de nomes não pode ser dividido – Um servidor mantém apenas um subconjunto de todos os nomes – Necessita de conheçer outros servidores que são responsáveis por outras partes da hierarquia 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 14 Base de dados hierárquica e distribuída servidor raiz servidor com servidor edu servidor stanford.edu 28/02/10 servidor berkley.edu servidor pt servidor utl.pt Sistema de Distribuição de Nomes de Domínios (DNS) servidor es servidor ipl.pt 15 Servidores de nomes raiz • Servidores de nomes raiz: contactados por outros servidores de nomes quando estes não conseguem resolver o nome 13 servidores raiz conheçidos (A-M) 28/02/10 28/02/10 Sistema de Distribuição Redes dede Computadores Nomes de Domínios (DNS) 16 Servidores TLD • Servidores top-level domain (TLD): – Responsáveis por com, org, net, edu, ..., e todos os domínios de países de TLD pt, uk, fr, ca, jp, ... – Os servidores TLD são conhecidos pelo servidor de nomes raiz – Registos de topo (por exemplo isel.pt) são realizados nos registrars – Os operadores de registos mantêm a base de dados de nomes de domínios actualizada para um ou mais TLDs dos quais são responsáveis • Alguns exemplos: – Network Solutions mantém os servidores para o TLD com – FCCN mantém os servidores para o TLD pt e alberga fisicamente um servidor raiz “F” gerido pela ISC 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 17 Servidores autoritários • Servidores de DNS autoritários: – Servidores de DNS das instituições (empresas, universidades, etc) que fornecem mapeamentos autoritários (end. IP – nome) para algumas máquinas da instituição (e.g., web, mail). – Podem ser mantidos pela instituição ou pelo fornecedor de conectividade da Internet (ISP) 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 18 Servidores de nomes local • Não faz parte da hierarquia de servidores • Cada ISP (residencial, empresa, universidade) tem um • Quando uma máquina faz um pedido de DNS, este é enviado para o servidor de nomes local – Funciona como um proxy, reencaminha os pedidos na hierarquia de servidores de DNS • Conhece os servidores de nomes raiz 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 19 Processo de resolução de nomes: iterativo • Máquina em cis.poly.edu quer o endereço IP de www.mit.edu • Servidor de nomes local responde com a resposta final (endereço IP) • Pedido iterativo: – Um servidor DNS pode responder com o nome do servidor DNS a contactar – “Eu não conheço este nome, mas sei qual é o servidor que o pode conheçer” Servidor DNS raiz 2 3 Servidor DNS TLD 4 5 Servidor DNS local dns.poly.edu 1 8 Máquina 7 6 Servidor DNS autoritário bitsy.mit.edu cis.poly.edu www.mit.edu 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 20 Processo de resolução de nomes: recursivo • Coloca a tarefa de resolução do pedido no servidor contactado • Carga elevada ? Servidor DNS raiz 2 3 7 6 Servidor DNS TLD Servidor DNS local 5 dns.poly.edu 1 4 8 Máquina Servidor DNS autoritário bitsy.mit.edu cis.poly.edu www.mit.edu 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 21 Protocolo DNS: campos • DNS: base de dados distribuída e organizada em campos RR (resource records) RR format: (Nome, Valor, Tipo, TTL) • Tipo A: – Nome é o nome da máquina (hostname) – Valor é o endereço IP • Tipo NS: – Nome é o domínio (p.e. foo.com) – Valor é o nome do servidor de nomes autoritário para aquele domínio • Tipo CNAME: – Nome é um alias para algum nome canónico (nome real) – Valor é o nome canónico – Exemplo: www.ibm.com é na realidade www.ibm.com.cs186.net • Tipo MX: – Valor é o nome do servidor de email associado ao nome 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 22 Protocolo DNS: tipos de RRs 28/02/10 Tipo Abreviatura 1 A 2 NS 5 CNAME 6 SOA 11 WKS 12 PTR 13 HINFO 15 MX 28 AAAA 252 AXFR 255 ANY Descrição Endereço IPv4 de 32 bits. Utilizado para converter um nome de domínio num endereço IPv4 Servidor de nomes. Identifica um servidor autoritário para uma zona. Nome canónico. Define uma alias para o nome oficial de uma máquina Secção de autoridade. Marca o início de uma zona. Primeiro campo de um ficheiro de zona. Serviços conhecidos. Define serviços de rede que a máquina fornece. Resolução inversa. Permite converter um endereço IP num nome de domínio. Informação da máquina. Descrição do hardware e software de uma máquina Permite conhecer os servidores de email responsáveis pelo domínio. Endereço IPv6 de 128 bits. Utilizado para converter um nome de domínio num endereço IPv6. Um pedido para a transferência de toda a zona. Permite a replicação dos dados do DNS. Um pedido para todos os campos. Sistema de Distribuição de Nomes de Domínios (DNS) 23 Cache e actualização de RRs • O processo de resolução de nomes pode ser altamente ineficiente: – Cada máquina a contactar por nome gera um pedido de DNS – Um pedido de DNS pode passar por múltiplos servidores na hierarquia • Servidores e máquinas usam um sistema de cache para reduzir o número de pedidos – Cache contém os mapeamentos recentemente resolvidos – As entradas na cache expiram depois de um certo tempo Time to Live (TTL) – Os servidores TLD são guardados em cache nos servidores de nomes locais • Desta forma alevia-se os servidores de nomes raiz 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 24 Protocolo DNS: mensagens • Protocolo DNS: define mensagens de pedidos e respostas, ambas com o mesmo formato • Cabeçalho: – Identificação: 16 bit para identificar pedidos, resposta usa o mesmo valor – Flags: Identificação Flags • • • • Questão ou resposta ? Recursão desejada ? Recursão disponível ? Resposta é autoritativa ? Nº de questões Nº de respostas Nº de RRs autoritários Nº de RRs adicionais Questões Respostas Servidores autoritários 28/02/10 Informação adicional Sistema de Distribuição de Nomes de Domínios (DNS) 25 Protocolo de DNS: mensagens 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 26 Protocolo DNS: transporte • Protocolo UDP (porto 53): – Normalmente os pedidos e respostas DNS são transportados num datagrama UDP – As mensagens UDP de DNS são limitadas a 512 bytes – Mensagens maiores são truncadas e a flag truncated é activada • Protocolo TCP (porto 53): – Para transferência de informação de zonas do servidor primário para os secundários (sincronização) – O cliente DNS estabelece uma ligação TCP com o servidor DNS para realizar a transferência – Quando é recebida uma resposta com a flag truncated activada 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 27 Arquitectura de servidores DNS • Para receber pedidos de resolução da própria zona existem dois servidores de nomes: um servidor primário e zero ou mais servidores secundários – Redundância: permite a resolução mesmo que o servidor primário falhe – Manutenção: quando existem servidores secundários pode-se efectuar manutenção ao servidor primário sem impacto significativo – Balanceamento de carga: permite espalhar a carga em múltiplos servidores DNS melhorando assim a eficiência no acesso aos servidores de dados da zona – Eficiência: colocar servidores o mais perto possível dos clientes, por exemplo em ambos os lados de uma ligação WAN • O servidor primário carrega toda a informação de um ficheiro local • Um servidor secundário carrega toda a informação do servidor primário: – Transferência de zona • Para encaminhar pedidos de resolução de outras zonas – Servidores locais: Forwarders, Cache, Cache-Only 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 28 Exemplo de uma topologia DNS • Servidores DNS primário e secundários: – Normalmente autoritários para um ou mais domínios • Servidores forwarder (local): – Encaminham as perguntas DNS realizados pelos clientes (com cache ou não) 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 29 Inserir um registo no DNS • Exemplo: nova empresa startup “Network Utopia” – Registar o nome networkuptopia.pt no DNS registrar (FCCN) – Providenciar nomes, endereços IP dos servidores de nomes autoritários (primário e secundário) – O operador de registo FCCN insere dois RRs no servidor TLD pt: • (networkutopia.pt, dns1.networkutopia.pt, NS) • (dns1.networkutopia.pt, 212.212.212.1, A) • Criar um servidor autoritário (e.g. BIND) com um campo do Tipo A para www.networkuptopia.pt e um campo Tipo MX para networkutopia.pt • • De que forma se obtém o endereço IP de www.networkutopia.pt ? De que forma se obtém o servidor de email do endereço [email protected] ? 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 30 DNS dinâmico • DDNS (Dynamic Domain Name System) – Mecanismo de actualização dos servidores de DNS quando máquinas ou domínios são adicionadas/apagadas/modificadas – Mecanismo de update/notify (RFC 2136) Servidor DNS Re sp Pe os di ta do en de d. IP en d. IP – Actualização automática do endereço IP e nome (FQDN) de uma máquina Actualização do Dynamic DNS (PTR) do ) ão (A aç S liz DN ua i c ct A nam y D • Permite a interacção entre DHCP e DNS: Servidor DHCP Cliente (PC) XP 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 31 Balanceamento de carga • Um balanceamento de carga simples pode ser conseguido no DNS utilizando múltiplos registos A para um nome: – Três servidores WWW assim configurados: • www.domain.tld. 60 IN A 123.45.67.1 www.domain.tld. 60 IN A 123.45.67.2 www.domain.tld. 60 IN A 123.45.67.3 – Quando um resolver perguntar por www.domain.tld, o servidor DNS efectua uma rotação e responde à pergunta com os registos em ordem diferente: • www.domain.tld. 60 IN A 123.45.67.3 www.domain.tld. 60 IN A 123.45.67.1 www.domain.tld. 60 IN A 123.45.67.2 – Os clientes irão utilizar o primeiro registo e ignorar os restantes – A carga é distribuída por três máquinas permitindo responder a um número maior de pedidos HTTP para www.domain.tld 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 32 Balanceamento de carga: exemplo Servidor DNS configurado com 2 endereços IP para www.isel.pt www.isel.pt www.isel.pt Sincronismo Servidor 1 10.0.0.1 6. GET www.isel.pt Re Re spo n so lv de e 1 ww 0.0 .0 w. .1 is el .p t 1. 2. t .p el is .2 w. .0 ww 0 .0 1 e lv e so ond p Re 4. Res 5. 3. GET www.isel.pt Servidor DNS Cliente 1 28/02/10 Servidor 2 10.0.0.2 Cliente 2 Sistema de Distribuição de Nomes de Domínios (DNS) 33 Segurança • DNS é um serviço muito importante e por isso frequentemente atacado: – Direccionar os pedidos de www.bes.pt para um servidor web malicioso – Negação de serviço (DoS): muitos serviços de rede dependem do DNS – Guarda informação sensível sobre a rede: nº máquinas, endereços IP, etc.. • Possível solução: DNSSec = DNS Security – Garante comunicação segura entre servidores de nomes e clientes – Garante integridade de dados – A origem da informação é verificada 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 34 Referências • “Computer Networking, a top down approach featuring the Internet (4th edition)”, James F. Kurose (Author), Keith W. Ross, Addison-Wesley Longman. • “TCP/IP Protocol Suite”, Behrouz A. Forouzan, Sophia C. Fegan, McGraw-Hill Professional. 28/02/10 Sistema de Distribuição de Nomes de Domínios (DNS) 35