Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo - DNS Domain Name Server Redes de Computadores I – Prof. Mateus Raeder DNS • Pessoas – Possuem identificadores • Nome, RG, CPF, etc... • Dispositivos na Internet (hosts, roteadores, ...) – Também possuem identificadores • Números • Endereço IP usado para endereçar datagramas • “Nomes”: são dados pelos humanos • www.unisinos.br 200.188.161.4 Redes de Computadores I – Prof. Mateus Raeder DNS • Para facilitar, não chamamos por números – Imagine você ter que decorar o RG de todas as pessoas que você conhece para poder chamálas • “Olá 1098342345-09, como está?” • “35639876-29 passa para 23377665-50, que dribla 20034682-99...” – Por isto, utilizamos nomes em dispositivos na Internet também • Imagine ter que saber todos os IPs dos sites para acessar Redes de Computadores I – Prof. Mateus Raeder DNS • Um identificador de host é seu nome de host (hostname) – São fáceis de lembrar, trazendo benefícios para os usuários – Entretanto, hostnames não trazem muita informação sobre a localização do host • www.unisinos.br nos diz que está no Brasil, mas nada mais além disto • Os hosts são identificados também pelo seu endereço IP Como mapear entre nome e endereço IP? Redes de Computadores I – Prof. Mateus Raeder DNS • É tarefa principal do DNS – (1) é um banco de dados distribuído, implementando uma hierarquia de servidores de nomes (nameservers) – (2) protocolo da camada de aplicação que permite que hosts e servidores de nomes se comuniquem • Fornecer serviço de tradução (resolução) de nomes • Utiliza UDP e trabalha na porta 53 RESOLVER traduzir nome em endereço Redes de Computadores I – Prof. Mateus Raeder DNS • Por exemplo: – Usuário quer acessar a URL www.pudim.com.br – Para enviar uma mensagem de requisição, HTTP ao servidor Web requisitado, a máquina precisa obter o endereço IP de www.pudim.com.br – A máquina do usuário, então, roda o lado cliente da aplicação DNS – Cliente envia uma consulta com o nome do host – Recebe resposta com o endereço IP do host www.pudim.com.br 200.219.198.196 Redes de Computadores I – Prof. Mateus Raeder DNS • Poderia ser um servidor central, que guardasse todas as localizações dos nomes – Clientes precisariam buscar apenas em um servidor de nomes, que responderia diretamente – Impraticável • Único ponto de falha • Volume de tráfego • Banco de dados centralizado distante • Manutenção Redes de Computadores I – Prof. Mateus Raeder DNS • Servidores distribuídos e hierárquicos – Três tipos de servidores: • Servidores de nomes locais: está próximo ao cliente. Quando uma consulta é realizada, primeiramente uma mensagem a este servidor é enviada • Servidores de nomes raiz: quando um servidor local não pode atender imediatamente a uma requisição, ele se comporta como cliente DNS, e consulta um servidor de nomes raiz. Existem somente 13 no mundo. • Servidores de nomes com autoridade: todo host está registrado em um servidor de nomes com autoridade. Quando é requisitado por um servidor de nomes raiz, responde com o mapeamento pedido. Redes de Computadores I – Prof. Mateus Raeder DNS • Servidores de nomes raiz Redes de Computadores I – Prof. Mateus Raeder DNS • Servidores de nomes raiz – Procurado por um servidor local que não consegue resolver um nome – Procura servidor de autoridade caso desconheça o mapeamento para o nome consultado – Obtém a tradução – Retorna o mapeamento para o servidor local Redes de Computadores I – Prof. Mateus Raeder DNS • Servidor de nomes local – Cada provedor, empresa ou instituição possui seu servidor de nomes local (default name server) – Pedido DNS de um host vai primeiramente para o servidor local – Servidor de nomes local repassa a consulta para a hierarquia de servidores DNS Redes de Computadores I – Prof. Mateus Raeder DNS • TLDs (top-level domain) – responsáveis por .com, .org, .edu, ... E por todos os domínios de países, .fr, .uk, .br, .jp ... • Servidores DNS com autoridade – Servidores DNS de organização. Fornecem tradução de nomes para IPs dos servidores da organização • Mantidos por organizações ou provedores de serviços Redes de Computadores I – Prof. Mateus Raeder DNS • Consultas recursivas – Host cis.poly.edu quer endereço IP de gaia.cs.umass.edu – 1) contata DNS local (dns.poly.edu) – 2) servidor local contata servidor raiz (se necessário) – 3) possivelmente, um servidor intermediário é contatado – 4) servidor raiz contata servidor autoritativo dns.cs.umass.edu (se necessário) Redes de Computadores I – Prof. Mateus Raeder DNS - Servidor raiz pode não conhecer o servidor de nomes autoritativo - Pode conhecer um servidor de nomes intermediário: a quem contatar para descobrir o servidor de nomes com autoridade Redes de Computadores I – Prof. Mateus Raeder DNS • Consultas recursiva – Transfere a tarefa de resolução de nomes para o servidor contatado • Consultas iterativas – Servidor consultado responde com o nome de um servidor de contato – “Não conheço este nome, mas pergunte para este servidor” Redes de Computadores I – Prof. Mateus Raeder DNS • Uma vez que um servidor qualquer aprende um mapeamento, ele coloca em uma cache local – Consultas futuras são resolvidas utilizando os dados da cache – Entradas da cache são sujeitas a temporização (desaparecem depois de um certo tempo – TTL: time to live) Redes de Computadores I – Prof. Mateus Raeder DNS • Registros DNS – Servidores armazenam registros de recursos (RRs) para os mapeamentos – Cada resposta DNS leva um ou mais RRs – Um RR é uma tupla com 4 elementos: (Name, Value, Type, TTL) Redes de Computadores I – Prof. Mateus Raeder DNS (Name, Value, Type, TTL) Name e Value dependem do Type Tipo = A • Nome é o nome de hospedeiro • Valor é o endereço IP Tipo = CNAME • Nome é o nome alternativo (alias) para um nome verdadeiro • Valor é o nome verdadeiro Tipo = NS • Nome é o domínio • Valor é o IP do servidor de nomes com autoridade para este domínio Tipo = MX • Nome é o domínio • Valor é o nome do servidor de correio para este domínio Redes de Computadores I – Prof. Mateus Raeder DNS • Mensagens DNS: mesmo formato para pedido e resposta Identification - ID de 16 bits para pedido (resposta ao pedido usa mesmo ID) Flags - Pedido ou resposta - Recursão desejada - Recursão permitida - Resposta é autoritativa Redes de Computadores I – Prof. Mateus Raeder DNS Nome, campos de tipo para uma consulta RRs de resposta à consulta Registros para servidores com autoridade Informação útil que pode ser usada Redes de Computadores I – Prof. Mateus Raeder Exercícios • Qual a diferença entre uma requisição iterativa e uma requisição recursiva do DNS? • Numa requisição DNS podem haver 0, 2, 4, 6 ou 8 trocas de mensagens entre o cliente e os vários servidores da rede. Dê um exemplo onde ocorre troca de 0 mensagens? Idem 2, 4, 6 e 8. Redes de Computadores I – Prof. Mateus Raeder