Redes de Computadores II Prof. Celio Trois portal.redes.ufsm.br/~trois/redes2
DNS - DOMAIN NAME SYSTEM Mecanismo que converte uma string ASCII em endereço de rede (IP) Motivação: No início da ARPANET, só existia um arquivo texto, host.txt para listar todos os hosts e seus endereços IPs
DNS - Motivação Na Internet os hosts são identificados por nomes ou por números IP Os humanos preferem os nomes www.google.com 64.233.161.99 www.redes.ufsm.br 200.132.24.15 Pacotes IP usam número IP do destino (nunca usam nomes)
DNS Breve Histórico As pessoas consultavam o arquivo txt para poderem acessar as máquinas desejadas. Com o crescimento e a transformação da ARPANET na rede Internet, surgiu a necessidade de criar um mecanismo mais eficiente e inteligente. Deveria ser distribuída para não depender de uma única central de fornecimento de endereços IPs.
DNS Utiliza Porta 53 Protocolo TCP comunicação entre zonas Protocolo UDP consultas Descrito pelas RFCs 1034 Conceitos e facilidades 1035 Implementação e especificação http://www.zoneedit.com/doc/rfc/
DNS Domain Name System É formado por um banco de dados globalmente distribuído, escalável e dinâmico Possui 3 componentes: Um namespace (espaço de nomes) Servidores que tornam disponível o espaço de nomes Resolvedores (resolvers) que fazem perguntas (queries) aos servidores sobre o espaço de nomes
Name Space Name Space = sistema organizado para nomear domínios na Internet Fully Qualified Domain Name (FQDN) www.cefetpb.edu.br. www.google.com. Nomes (rótulos) separados por pontos Nomes são usados como chave na busca de dados no DNS FQDN indica uma hierarquia Nomes mais à direita têm mais alto nível na hierarquia O pai de todos é o domínio. (root) Exemplo: cs.berkeley.edu. domínio cs está dentro do domínio berkeley domínio berkeley está dentro do domínio edu domínio edu está dentro do domínio. Domínio root pode ser omitido no final do nome cs.berkeley.edu. = cs.berkeley.edu
Hierarquia de Domínios. org. br. edu. com. ufpe. com. gov. org. abc. mail ftp www. www. abc. com. br. Subdomínio Domínio segundo nível Domínio primeiro nível Raiz
domínio net domínio ripe.net Domínios Domínios são namespaces Tudo abaixo de.com é do domínio com Tudo abaixo de.ripe.net é do domínio domínio ripe.net e do domínio com net. ripe net www disi ftp ws2 edu isi ws1 com sun moon google tislabs www
Organização dos Domínios na Internet Organizados de forma hierárquica Domínios básicos (primeiro nível) com empresas (EUA) edu educacional, universidades (EUA) gov órgãos governamentais net empresas de telecomunicações, provedores mil organizaçõe militares org entidades sem fins lucrativos int organizações internacionais Domínios para cada país Domínios de cada país seguem padrão ISO-3166 br Brasil, fr França, ca Canadá,
Sub-Domínios br ufpe.br ufpb.br com.br uol.com.br edu.br cefetpb.edu.br gov.br fazenda.gov.br receita.fazenda.gov.br mec.gov.br www.mec.gov.br com ibm.com microsoft.com sun.com
domínio net zona ripe.net zona disi.ripe.net Zonas e Delegação Zonas são espaços administrativos Domínios são namespaces Administradores de zona são responsáveis por uma parte do espaço de nomes do domínio autoridade é delegada de um pai para um filho zona net ripe net www disi ftp ws2 edu isi ws1 com sun moon google tislabs www
Delegação Administradores podem criar subdomínios para agrupar hosts Critério geográfico, filiação organizacional, ou outro Um administrador de um domínio pode delegar para outro a responsabilidade de gerenciar um subdomínio O domínio pai registra quem é o responsável pelos subdomínios e repassa as consultas para ele
DNS- Registro de Recurso Todos servidores de DNS contêm um arquivo de configuração chamado Registro de recursos Quando alguém consulta um nome de domínio, na verdade está consultando esses registros. Um Registro de Recurso é uma tupla de quatro campos São geralmente codificados em textos ASCII, ocupando uma linha para cada registro.
DNS - Registro de Recurso Formato: domain_name - Informa o domínio que esse registro se aplica class - Indica a classe de informações, para internet este campo contém IN type - Informa o tipo do registro value - Define o conteúdo que depende com contexto (type)
DNS - Tipos de Registros Tipos (Types) de Registros
Configuração - named.conf Opções de log Inclui os arquivos: named.conf.options named.local.conf
named.local.conf Inclui as zonas que o servidor responderá: zone "intranet.ctism.ufsm.br" { type master; file "/etc/bind/db.ctism"; allow-query { "any"; }; }; zone "17.172.in-addr.arpa" { type master; notify no; file "/etc/bind/db.172.17"; allow-query { "any"; }; };
bd.ctism $TTL 800 @ IN SOA ns1.intranet.ctism.ufsm.br. cpd.ctism.ufsm.br. ( 2011061001 ; Serial 604800 ; Refresh 4000 ; Retry 2419200 ; Expire 800 ) ; Negative Cache TTL @ IN NS ns1 @ IN A 127.0.0.1 @ IN AAAA ::1 ns1 IN A 172.17.8.2 web IN A 172.17.8.5 www IN CNAME web mail IN MX 172.17.8.12 labazul1 IN A 172.17.10.1 labazul2 IN A 172.17.10.2 labazul3 IN A 172.17.10.3 labazul4 IN A 172.17.10.4 labazul5 IN A 172.17.10.5 labazul6 IN A 172.17.10.6...
bd.172.17 ; BIND reverse data file for local loopback interface $TTL 800 @ IN SOA infra.intranet.ctism.ufsm.br. cpd.ctism.ufsm.br. ( 2011061001 ; Serial 604800 ; Refresh 4000 ; 86400 Retry 2419200 ; Expire 800 ) ; 604800 Negative Cache TTL @ IN NS infra. 5.8 IN PTR web.intranet.ctism.ufsm.br. 12.8 IN PTR mail.intranet.ctism.ufsm.br. 1.10 IN PTR labazul1.intranet.ctism.ufsm.br. 2.10 IN PTR labazul2.intranet.ctism.ufsm.br. 3.10 IN PTR labazul3.intranet.ctism.ufsm.br. 4.10 IN PTR labazul4.intranet.ctism.ufsm.br. 5.10 IN PTR labazul5.intranet.ctism.ufsm.br. 6.10 IN PTR labazul6.intranet.ctism.ufsm.br....
Resolvers São programas que extraem informação dos servidores de nomes através de queries Trabalham sob solicitação dos clientes Browsers, FTP, ping, Qualquer aplicação pode solicitar uma tradução de nome Resolvers precisam saber o IP de pelo menos um servidor DNS para iniciar a consulta Tipos de Consulta: Recursiva Interativa Não há um protocolo entre o ciente e o resolver Resolver é uma função chamada pela aplicação Exemplo da libc: gethostbyname(char *name); Protocolo é usado apenas entre o resolver e o servidor DNS
DNS funcionamento Exemplo de funcionamento Uma aplicação que utiliza nomes, chama um procedimento para buscar o endereço IP correspondente àquele nome Uma API chamada de resolvedor, então envia um pacote UDP para um servidor DNS mais próximo para consultar qual é o IP desejado Com posse o IP, uma aplicação pode comunicar-se diretamente com a outra máquina se assim desejar
DNS - Funcionamento Qual Qual IP IP www.google.com.br? IP IP address = = 64.233.167.104 DNS Server Nome de de 64.233.167.104? Nome = = www.google.com.br DNS Server
DNS Exemplo aplicação // gethostbyname.c #include <stdio.h> #include <netdb.h> #include <netinet/in.h> #include <sys/socket.h> #include <arpa/inet.h> #include <string.h> int main (int argc, char **argv){ struct hostent *he; struct in_addr a; if (argc!= 2) { fprintf(stderr, "usage: %s hostname\n", argv[0]); return 1; } he = gethostbyname( argv[1] ); if(! he ) {fprintf( stderr, "%s: host desconhecido\n", argv[1] ); return 2; } printf("name: %s\n", he->h_name); while( *he->h_aliases ){ printf("alias: %s\n", *he->h_aliases++); } while( *he->h_addr_list ){ bcopy( *he->h_addr_list++, (char *) &a, sizeof(a) ); // printf("\n I got a connection from (%s)", inet_ntoa(a.sin_addr)); printf( "address: %s\n", inet_ntoa(a) ); } return 0; }
DNS Exemplo aplicação $ gcc o gethostbyname gethostbyname.c $./gethostbyname www.google.com.br name: www.google.akadns.net alias: www.google.com.br alias: www.google.com address: 64.233.167.104 address: 64.233.167.99 $
Modos de resolução de nomes Recursiva O cliente pergunta a um servidor que pergunta a outro e assim sucessivamente até descobrir o endereço final Interativa O cliente (ou servidor) recebe o endereço de outro servidor então pergunta novamente e assim sucessivamente
Resolução Interativa Pergunta: www.ripe.net, tipo = A 1 www.ripe.net A? www.ripe.net A? root-server 2 3 pergunte a X.gtld-servers.net Resolver 192.168.5.10 8 DNS Server 4 www.ripe.net A? gtld-server 9 5 pergunte a ns.ripe.net Adiciona a cache 7 192.168.5.10 6 www.ripe.net A? ripe-server
Resolução Recursiva Resolver Pergunta: www.cisco.com A 1 www.cisco.com A? Resposta 6 5 Resposta ISP DNS Server 4www.cisco.com A? 7 3 Resposta Adiciona na cache cisco.com A? 2 DNS root Server Cisco s DNS Server
Exemplo de consultas http://media.pearsoncmg.com/aw/aw_kurose_net http://media.pearsoncmg.com/aw/aw_kurose_n etwork_2/applets/dns/dns.html
Respostas DNS Resposta oficial (authoritative) Enviada por servidores primários ou secundários que são responsáveis pela zona Resposta não oficial (non authoritative) Enviada por outros servidores (resposta em cache)
Ferramentas para consulta DNS direta nslookup dig
nslookup exemplo A
nslookup exemplo ANY
nslookup exemplo NS
nslookup exemplo NS
nslookup exemplo MX
nslookup exemplo SOA
Consulta DNS nslookup Aplicativo tradicional para consultas host Aplicativo simples para consultas dig Aplicativo flexível para consultas
AA - Autoridade sobre o domínio Respostas DNS Esta não é uma mensagem de erro. O servidor DNS possui os dados do domínio em seus arquivos locais, ou seja, ele está configurado para este domínio. TIMEOUT - Tempo esgotado O servidor DNS não respondeu a pesquisa no tempo esperado. NOAA - Sem autoridade sobre o domínio O servidor DNS tem os dados do domínio, porém não em seus arquivos locais e não pode garantir a validade dos mesmos. UDN - Domínio Desconhecido O servidor DNS não possui dados deste domínio. UH - DNS Desconhecido O servidor DNS não pode ser achado ou não existe na Internet. FAIL - Erro/Falha no DNS Ocorreu um erro na comunicação com o servidor DNS. QREFUSED - Pesquisa Recusada O servidor DNS recusou-se a enviar informações sobre o domínio ao sistema. CREFUSED - Conexão Recusada O servidor DNS foi contactado mas recusou-se a aceitar uma conexão no serviço DNS. CNAME - Canonical Name O nome informado não é o nome verdadeiro do servidor. É apenas um apelido. NOT SYNC ZONE - Zona não sincronizada A versão da configuração do servidor DNS para o domínio não corresponde a versão utilizada pelos demais servidores.
Ferramenta dig Perguntando sobre o endereço IP de www.cefetpb.edu.br $ dig www.cefetpb.edu.br. A ; <<>> DiG 8.4 <<>> www.cefetpb.edu.br. A ;; res options: init recurs defnam dnsrch ;; ANSWER SECTION: www.cefetpb.edu.br. 23h59m17s IN CNAME imothep.cefetpb.edu.br. imothep.cefetpb.edu.br. 23h59m17s IN A 200.249.188.4 ;; Total query time: 0 msec ;; FROM: athome to SERVER: 200.241.199.4 ;; WHEN: Thu Jul 01 09:15:07 2004 ;; MSG SIZE sent: 36 rcvd: 74
Ferramenta dig Perguntando sobre os servidores DNS do domínio ibm.com $ dig ibm.com NS ; <<>> DiG 8.4 <<>> ibm.com NS ;; QUERY SECTION: ;; ibm.com, type = NS, class = IN ;; ANSWER SECTION: ibm.com. 9m53s IN NS ns.watson.ibm.com. ibm.com. 9m53s IN NS ns.almaden.ibm.com. ibm.com. 9m53s IN NS internet-server.zurich.ibm.com. ibm.com. 9m53s IN NS ns.austin.ibm.com. ;; Total query time: 0 msec
Ferramenta dig Perguntando sobre o MX $ dig ibm.com MX ;; QUERY SECTION: ;; ibm.com, type = MX, class = IN ;; ANSWER SECTION: ibm.com. 10M IN MX 10 e1.ny.us.ibm.com. ibm.com. 10M IN MX 10 e2.ny.us.ibm.com. ibm.com. 10M IN MX 10 e3.ny.us.ibm.com. ibm.com. 10M IN MX 10 e4.ny.us.ibm.com. ibm.com. 10M IN MX 10 e5.ny.us.ibm.com. ibm.com. 10M IN MX 10 e6.ny.us.ibm.com. ibm.com. 10M IN MX 10 e33.co.us.ibm.com. ibm.com. 10M IN MX 10 e34.co.us.ibm.com. ibm.com. 10M IN MX 10 e35.co.us.ibm.com.
Ferramenta dig Perguntando sobre os servidores de nomes do dominio root $ dig. NS ;; ANSWER SECTION:. 6D IN NS J.ROOT-SERVERS.NET.. 6D IN NS K.ROOT-SERVERS.NET.. 6D IN NS L.ROOT-SERVERS.NET.. 6D IN NS M.ROOT-SERVERS.NET.. 6D IN NS A.ROOT-SERVERS.NET.. 6D IN NS B.ROOT-SERVERS.NET.. 6D IN NS C.ROOT-SERVERS.NET.. 6D IN NS D.ROOT-SERVERS.NET.. 6D IN NS E.ROOT-SERVERS.NET.. 6D IN NS F.ROOT-SERVERS.NET.. 6D IN NS G.ROOT-SERVERS.NET.. 6D IN NS H.ROOT-SERVERS.NET.. 6D IN NS I.ROOT-SERVERS.NET.
Ferramenta dig Perguntando o endereço IP de um servidor root $ dig j.root-servers.net. A ;; QUERY SECTION: ;; j.root-servers.net, type = A, class = IN ;; ANSWER SECTION: j.root-servers.net. 6d23h59m31s IN A 192.58.128.30 ;; Total query time: 0 msec ;; FROM: deniohome to SERVER: 200.241.199.4 ;; WHEN: Thu Jul 01 09:36:31 2004 ;; MSG SIZE sent: 36 rcvd: 52
Ferramenta dig Perguntando sobre o MX $ dig ibm.com MX ;; QUERY SECTION: ;; ibm.com, type = MX, class = IN ;; ANSWER SECTION: ibm.com. 10M IN MX 10 e1.ny.us.ibm.com. ibm.com. 10M IN MX 10 e2.ny.us.ibm.com. ibm.com. 10M IN MX 10 e3.ny.us.ibm.com. ibm.com. 10M IN MX 10 e4.ny.us.ibm.com. ibm.com. 10M IN MX 10 e5.ny.us.ibm.com. ibm.com. 10M IN MX 10 e6.ny.us.ibm.com. ibm.com. 10M IN MX 10 e33.co.us.ibm.com. ibm.com. 10M IN MX 10 e34.co.us.ibm.com. ibm.com. 10M IN MX 10 e35.co.us.ibm.com.
Prática Descubra quais são os NS da UFSM Descubra quais são os servidores de email do google.com Descubra quais são os servidores de email do dominio com Descubra o ip de todos os servidores DNS raíz Descubra o nome do seguinte endereço: 208.84.244.133