Arquitectura de Redes Domain Name System DNS 1
Objectivo / Motivação 2 'What's the use of their having names the Gnat said if they won't answer to them?' Alice no País das Maravilhas Resolução de nomes (alfanuméricos) para endereços IP Será que 66.102.11.99 é mais fácil de decorar que www.google.com? Hierarquia de nomes RFCs 1034 Domains Names Concepts and Facilities 1035 Domains Names Implementation and Specification 1101, 1183 outras entradas para DNS 1032, 1033 Guias para utilização / administração 2535 Domain Name System Security Extensions
Hierarquia generic country Root Root DNS gov... com edu mil pt es... nl TLD DNS min-edu up fe.up.pt 3 rede-nonio fc fe User DNS dcc dcc.fc.up.pt
Hierarquia Características 4 Existe subdivisão das responsabilidades/administração Cada domínio é responsável pelo registo dos níveis abaixo Deve saber indicar a resolução ou apontar a máquina responsável pelo domínio abaixo Vantagens Subdivisão da carga, entradas no sistema Aumentar a performance da busca Evitar colisões (www.??) Registo de topo são feitos nos registrars que administram os domínios Top level domains Países.aero,.biz,.com,.coop,.info,.museum,.name,.net,.org,.pro,.gov,.edu,.mil,.int http://www.iana.org/gtld/gtld.htm Nomes Cada nível é separado por ponto (www.fc.up.pt) Limite de 63 caracteres por nível, limite total de 255 caracteres Não é necessário que a cada nível corresponda um servidor de nomes.
Hierarquia Exemplo 1 Zona com sub-zonas servidor: ns.min-edu.pt pt 1 Zona com sub-zonas servidor: dns1.up.pt min-edu up 1 Zona com zub-zona servidor: dns1.fe.up.pt rede-nonio fc fe 1 Zona com 1 sub-zona servidor: gtwnt2.fc.up.pt deec dcc 5 1 sub-zona servidor: dns.dcc.fc.up.pt
Recursos endereçados (resource records) DNS permite a resolução de diversos recursos Cada nome pode ter mais do que uma entrada no DNS A sintaxe do nome não identifica o seu tipo (fc.up.pt pode ser um domínio ou uma máquina) SOA Source Of Authority A Address Inteiro 32-Bit MX Mail Exchange Parâmetros da zona (administrador, etc) Prioridade, domínio que recepciona email NS Name Server Name(s) Server(s) do domínio CNAME Canonical Name Domain Name PTR Pointer Alias para um endereço IP (usado para perg. inversas) HINFO Host Info CPU e SO (em ASCII) 6 TXT Text Outros Alguns tipos para IPv4
Recursos Entrada 7 Entrada DNS Domain TTL Class Type Value Domain nome do recurso, se terminar em. é considerado completo (FQDN Fully Qualified Domain Name). TTL define o tempo que a entrada pode ser guarda em cache. Class IN para Internet (CH (Chaos) e HS (Hesiod) eram antigos protocolos no MIT). Type define o tipo de entrada (exemplos na tabela do slide anterior). Value depende do tipo, representa a informação.
Recursos Exemplo de envio de email Enviar email para rprior@dcc.fc.up.pt: Descobrir entrada MX de dcc.fc.up.pt Descobrir entrada A de mail.dcc.fc.up.pt Ligar por SMTP a 193.136.39.16 8
Servidores 9 Master (antigamente designado primário): Para o seu domínio dá respostas Authoritative. O domínio está sob a sua responsabilidade (existe uma entrada para este servidor). A configuração do domínio/zona existe num ficheiro local Slave (antigamente designado secundário): Também dão respostas Authoritative Recebem a informação do domínio através de um servidor primário (zone transfers) Podem ser informados para o fazer pelo master (NOTIFY) Caching: Faz cache de questões, não tendo dados locais Dá respostas Non-Authoritative Forwarding: Semelhante ao caching, mas faz recursão para um servidor definido em vez de iterar a partir dos servidores root
Questões Pergunta Iterativa O servidor local responde com o endereço (se tiver na cache) ou com uma referência a um servidor DNS que pode saber a resposta. 3 6 8 autho3.ns.uu.net ns2.dns.pt 5 4 garret.min-edu.pt Top level server Resposta Authoritative dada por um servidor responsável (a autoridade) do domínio. Resposta Cached - resposta obtida anteriormente numa questão e em cache (TTL não expirou). Dependendo da configuração o servidor rede-nonio.min-edu.pt poderia perguntar ao servidor acima garret.min-edu.pt dns2.up.pt 1 rede-nonio.min-edu.pt cafirewall.fc.up.pt 10 2 host www.dcc.fc.up.pt 7 12 9 11 dns.dcc.fc.up.pt 10 Resposta Authoritative
Questões Pergunta Recursiva Servidores tentam o próximo da lista caso não tenham a resposta. Em geral, servidores não usam recursividade com outros servidores, fazem perguntas iterativas. Cliente no entanto recebe resposta (ou erro) e nunca uma referência autho3.ns.uu.net Top level server 2 3 ns2.dns.pt 4 5 10 garret.min-edu.pt dns2.up.pt 9 11 rede-nonio.min-edu.pt 1 12 11 6 7 cafirewall.fc.up.pt Resposta Authoritative host www.dcc.fc.up.pt dns.dcc.fc.up.pt 8
Mensagens Servidor corre na porta 53 e comunica por Udp ou tcp 12 0 8 16 24 31 Identificação Parâmetros Número Questões Número Respostas Número Autoridades Número info. Adic Secção Questões... Secção Respostas... Secção Autoridade... Secção informação adicional... 31 Identificação permite relacionar pergunta com resposta Parâmetros Operação: Pergunta/Resposta Tipo Quest.: Standard, Inversa Autorithative? Recursão desejada? Tipo Resposta: sem erro, falha, nome não existe, servidor falhou etc Questões preenchida pelo cliente e servidor Respostas preenchida pelo servidor Autoridade pode levar SOA de outros servidores ou do próprio Informação adicional relevante para o tipo de questão
Mensagens Secções Questão/Resposta Domain Name pode ser de comprimento variável e não alinhado (número ímpar de octetos) Primeiro octeto de Domain name indica o comprimento de Domain Name Quando existem Domain Names repetidos, pode-se usar referências nas mensagens para poupança de espaço Domain Name... 13 Domain Name Questão... Tipo Questão Classe Questão Formato Secção Questão Tipo Comprimento TTL Dados Classe Formato Secção Resposta
Busca Inversa Dado o IP reconhecer o nome, Qual o nome de 207.46.134.221? Inverter ip: 221.134.46.207 Adicionar in-addr.arpa.: 221.134.46.207.inaddr.arpa. Resolver origin2.microsoft.com Utiliza o tipo PTR nos Resource Records 14
Exemplos de configuração (named.conf) Master zone "example.com" in{ }; type master; file "example.com"; Forwarding por zona zone "example.com" IN { }; type forward; forwarders {10.0.0.1; 10.0.0.2;}; 15 Slave zone "example.com" in{ }; type slave; file "slave/example.com"; masters {192.168.23.17;}; Forwarding options { }; directory "/var/named"; forwarders {10.0.0.1; 10.0.0.2;}; forward only; Caching options { }; directory "/var/named"; recursion yes; // zone section... // the DOT indicates the root // (all domains) zone "." IN { }; type hint; file "root.servers";
Exemplos Bind Exemplo ficheiro zona Domain_name TTL (opcional) Class(opcional) Type value $TTL 86400 ; 24 hours could have been written as 24h or 1d Mandatório $ORIGIN company.xy. @ 86400 IN SOA dns.company.xy. hostmaster.company.xy. ( 1998092900 ; Serial number 86400 ; Refresh 1 day 7200 ; Retry 2 hours Mandatório 3600000 ; Expire 41.67 days 7200 ) ; Minimum 2 hours company.xy. 86400 IN NS dns.company.xy. 86400 IN NS ns2.isp.net. ; external to domain Mandatórios (min. 2) company.xy. 86400 IN MX 1 mailserver.company.xy. IN MX 2 mailserver.another.com. ; external mail provider star.company.xy. A 192.168.42.33 www.company.xy. CNAME star.company.xy. 16 dns IN A 192.168.42.2; server name definition mailserver IN A 192.168.42.12 ping IN A 192.168.42.17 pong IN A 192.168.42.18 pong IN HINFO Intel Linux redundantsrv IN A 192.168.42.20 IN A 192.168.42.21
Exemplos Bind Exemplo ficheiro rede inversa $TTL 86400 ; 24 hours could have been written as 24h or 1d $ORIGIN 0.168.192.IN-ADDR.ARPA. @ 1D IN SOA ns1.example.com. mymail.example.com. ( 2002022401 ; serial 3H ; refresh 15 ; retry 1w ; expire 3h ; minimum ) 17 ; server host definitions 1 IN PTR ns1.example.com. 2 IN PTR www.example.com. ; non server domain hosts 3 IN PTR bill.example.com. 4 IN PTR fred.example.com. FQDNs por causa da regra de substituição de $ORIGIN
Acrónimos 18 cctld Country Code TLD DNS Domain Name System ICANN Internet Corporation for Assigned Numbers and Names FQDN Fully Qualified Domain Name gtld generic TLD RR Resource Record SLD Second Level Domain SOA Start Of Authority TLD Top Level Domain