unesp UNIVERSIDADE ESTADUAL PAULISTA Tópicos em Sistemas de Computação Administração de Redes TCP/IP DNS - Domain Name Service (Parte 1 - Características e Conceitos) Prof. Dr. Adriano Mauro Cansian adriano@ieee.org UNESP - IBILCE - São José do Rio Preto 2002
DNS - Domain Name Service 1 (Parte 1 - Características e Conceitos) Prof. Dr. Adriano Mauro Cansian adriano@ieee.org UNESP - IBILCE - São José do Rio Preto Orientação para estudo: O tratamento utilizado nesta seção, conforme mencionado na nota de rodapé, é o mesmo do livro texto adotado neste curso (Craig Hunt - TCP/IP Network Administration). Este tratamento é excelente e suficiente para o administrador de redes e UNIX. Entretanto, por algumas vezes, este texto é pouco 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, recomendo uma leitura atenta do capítulo 14 (DNS: The Domain Name System) de TCP/IP Illustrated - Volume 1 - The Protocols, de Richard Stevens 2. Trata-se de um texto muito bom, de fácil compreensão e com excelentes ilustrações que auxiliam no entendimento. 1. Introdução: conceitos de Name Service 1.1. Nomes e Endereços Toda interface de rede ligada a uma rede TCP/IP é identificada por um endereço IP formado por 32 bits. Este endereço é representado na forma numérica como xxx. yyy. zzz. kkk Entretanto, os projetistas consideraram que lembrar de endereços de um computador pelo número (ou seja, pelo seu endereço IP) era muito desconfortável e pouco prático. Além disso, o endereço de um computador poderia ter de ser alterado, devido a, por exemplo, uma mudança de rede física 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 dispositivo que possua um endereço IP. A atribuição de nomes aos endereços se deve ao fato de que é muito mais fácil uma pessoa se lembrar de nomes do que de números, além do fato do nome poder ser mantido numa eventual mudança de endereço IP. 1 Créditos - este material foi produzido a partir do livro texto adotado no curso: Hunt, Craig - TCP/IP Network Administration - O Reilly & Associates, Inc. - 1.a Edição - Capítulo 3, pag. 51 e Capítulo 8, pag 167. 2 Editora Addison-Wesley Publishing Company, Inc. Prof. Adriano Mauro Cansian Administração de Redes TCP/IP DNS, Parte 1-1
Entretanto O software de rede e a pilha TCP/IP trabalham apenas com os endereços numéricos. Na maior parte dos casos, os nomes e números podem ser usados indistintamente, mas os nomes são sempre lembrados com mais facilidade. Por exemplo: telnet wolverine.dcce.ibilce.unesp.br ou telnet 200.145.202.11 conduzem ao mesmo computador. Existe um processo de conversão Quando se utilizam 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. Figura 1 Tradução de nomes em números Prof. Adriano Mauro Cansian Administração de Redes TCP/IP DNS, Parte 1-2
1.2. Tradução de Nome em Número 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 existia uma tabela, chamada hosts.txt, mantida pelo DDN-NIC, e que era distribuída para todos os computadores da Internet usada no /etc/hosts.txt (análoga à atual tabela /etc/hosts ou ao mapa NIS hosts.byname) 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. hosts.txt foi substituída por um banco de dados distribuído denominado Domain Name Service, conhecido simplesmente como DNS, que foi concebido por Paul Mockapetris. As especificações do DNS encontram-se descritas na RFC-1034. O DNS foi desenvolvido para oferecer uma alternativa à resolução de nomes através do arquivo hosts.txt, e que pudesse garantir seu funcionamento eficiente mesmo em face do crescimento explosivo por que vem passando a Internet, permitindo ao mesmo tempo que informações sobre computadores novos sejam rapidamente disseminadas conforme a necessidade. O 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. 2. Como o DNS funciona Servidor de DNS local recebe um request de informações sobre um host para o qual ele (servidor) não possui informação. O servidor passa a requisição para um authoritative server server responsável por manter informação correta e atualizada sobre o domínio que está sendo consultado. Quando o authoritative server responde o server local armazena (faz um cache) a resposta para uso futuro. Prof. Adriano Mauro Cansian Administração de Redes TCP/IP DNS, Parte 1-3
Na próxima vez que o server local receber um request sobre aquele domínio, ele responde por si próprio. Request host.algum.lugar.br 1 3 Cliente de DNS Servidor de DNS 2 2.1 2.2 S N Autoritativo? Servidor de DNS Figura 2 Esquema básico de funcionamento de uma requisição de resolução de DNS Atenção: O serviço de DNS é associado à porta 53 UDP, e é chamado de domain. Não confundir com um antigo serviço de nomes associado à porta 42, chamado nameservice. Consulte /etc/services, e a documentação do seu sistema. 2.1. A hierarquia do domínio O DNS NÃO possui uma base de dados central com todos os IPs da Internet. Informação é distribuída ao longo de milhares de nameservers organizados numa hierarquia similar à estrutura de diretórios de um filesystem UNIX. Figura 3 Hierarquia de domínios comparada com um filesystem Unix Prof. Adriano Mauro Cansian Administração de Redes TCP/IP DNS, Parte 1-4
O DNS tem um root domain (domínio raiz) no topo da hierarquia de domínio. Este root domain é servido por root servers. Figura 4 Hierarquia geral de domínios. root domain.br top level domains.unesp.br Figura 5 Hierarquia de domínios, em detalhe para o top level.br Diretamente sob o root domain estão os top level domains. Prof. Adriano Mauro Cansian Administração de Redes TCP/IP DNS, Parte 1-5
Existem dois tipos básicos de top level domains geográfico e organizacional. Organizacional.com.org.net.mil.edu.gov Geográfico.br.jp.ar.uk.nz.au Geográfico-organizacional.com.br.org.br.gov.br Os root servers somente possuem informações completas sobre os domínios de top level. São os root servers que possuem os apontadores para os top level. 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 domínios de segundo nível. Assim ainda que os root servers não possuam a resposta para um request, eles sabem para quem perguntar. No Brasil o REGISTRO.BR é o servidor do domínio.br 1. Por exemplo: O root server de.br nada sabe sobre o domínio unesp.br mas sabe que deve perguntar, ou transferir, as requisições que recebe para o servidor de domínio de segundo nível, que cuida do domínio.unesp.br o qual fica localizado em ns.unesp.br Em resumo O servidor de.br conhece quem toma conta de.unesp.br Anotações: 1 Consulte http://www.registro.br Prof. Adriano Mauro Cansian Administração de Redes TCP/IP DNS, Parte 1-6
2.2. Como ocorre a resolução de nomes Figura 6 Esquema da resolução de um endereço e sua relação com os nameservers 3. Criando domínios e sub-domínios O NIC (Network Information Center) nos Estados Unidos tem a autoridade para alocar domínios. Para informações sobre o Internic, consulte http://www.internic.net/ Para obter um domínio, o interessado precisa submeter um pedido ao NIC para criar um domínio sob um dos domínios de alto nível (.net,.gov,.mil,.org,.com,.edu) ou domínio geográfico. O NIC americano inicialmente delegou inicialmente à FAPESP - Fundação de Amparo à Pesquisa do Estado de São Paulo - a autoridade para alocar domínios dentro do domínio.br (net.br, gov.br, mil.br, org.br, com.br, edu.br e outros 1 ). Posteriormente esta delegação passou ao Comitê Gestor da Internet Brasileira 2. Empresas, instituições, órgãos registrados de qualquer espécie ou mesmo pessoas físicas podem se candidatar ao registro de domínios. Existem taxas anuais para se manter um nome de domínio. 1 Para a lista de domínios disponíveis no Brasil, consulte http://registro.br 2 Vide http://www.cg.org.br/ Prof. Adriano Mauro Cansian Administração de Redes TCP/IP DNS, Parte 1-7
Os documentos mais importantes sobre registros de nomes, e também sobre solicitação de números IP, estão em http://registro.br/. Obviamente, um domínio somente será registrado caso não exista um registro anterior feito por outra entidade. Para determinar se já existe registro de um domínio consulte o endereço acima. 4. Bind, resolver e named Algumas definições: BIND (Berkeley Internet Name Domain) No Unix o serviço DNS é implementado através do software BIND. O BIND é um sistema cliente servidor. O lado cliente do BIND resolver resolver envia perguntas relativas a informações contidas no DNS a servidores de nomes (nameservers). O servidor DNS responde à estas perguntas. O lado servidor do DNS named. Zonas O termo zona (zone) refere-se a informações contidas em um arquivo do banco de dados do DNS. As configurações de zona estão associadas às definições do domínio. Alguns dos arquivos de configuração de nomes são chamados de arquivos de zona (zone files). Domínio Parte da hierarquia de domínios identificada por um nome de domínio. Os nomes de domínio são escritos a partir 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 é identificado por um único ponto. Prof. Adriano Mauro Cansian Administração de Redes TCP/IP DNS, Parte 1-8
FQDN Fully Qualified Domain Name Começa com um nome de host específico, e termina com um top-level domain Por exemplo cindy.corp.berkeley.edu é o FQDN de uma estação cindy dentro do subdomínio corp, do domínio berkeley.edu. Figura 7 Relação entre domínios, sub-domínios e zonas Anotações: Prof. Adriano Mauro Cansian Administração de Redes TCP/IP DNS, Parte 1-9
4.1. Relação de nomes, domínios e números IP "." mail. corp. acme. org. br 152. 192. 17. 10.br www. acme. org. br 152. 192. 16. 15.org.acme!! Observe que os níveis hierárquicos dos nomes de domínios NÃO têm relação com os octetos IP.corp www mail Nó mail.corp.acme.org.br 152. 192. 17. 10 Nó www.acme.org.br 152. 192. 16. 15 Domínio corp.acme.org.br Domínio acme.org.br Figura 8 Relação entre domínios, sub-domínios e nós 5. Características do sistema O software BIND pode ser configurado de diversas maneiras. As configurações mais comuns são apresentadas a seguir. É muito importante estar familiarizado com a nomenclatura e os termos utilizados. Servidores Primários (primary servers) O servidor primário ou servidor MASTER é a fonte oficial de todas as informações a respeito de um domínio específico. É o que (supostamente) mantém todas as informações atualizadas sobre o domínio. Ele carrega as informações a respeito do domínio a partir de arquivos locais (arquivos de zona e outros) mantidos pelo administrador do domínio. Prof. Adriano Mauro Cansian Administração de Redes TCP/IP DNS, Parte 1-10
O servidor primário é o servidor mestre (também conhecido como master) devido ao fato de que pode responder a qualquer pergunta sobre seu domínio com total autoridade por isso é chamado de authoritative server. Importante Deve existir um único servidor primário (master) para cada domínio! Servidores Secundários (slave servers) Servidores secundários (ou escravos slave ) são aqueles que transferem (copiam) um conjunto completo de informações a partir 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. Os servidores secundários também são freqüentemente conhecidos como backup servers pois 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 responde a perguntas com autoridade. Consequentemente, um servidor secundário também é considerado um servidor mestre. Server secundário deve responder sempre. É 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. 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 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. Pode existir mais de um servidor secundário para cada domínio. Prof. Adriano Mauro Cansian Administração de Redes TCP/IP DNS, Parte 1-11
Outros tipos de servidores menos utilizados: Caching-only 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. 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. Client-only Client only são apenas clientes de DNS, e não manté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. Obviamente, estas máquinas não rodam o bind (processo named). Anotações: Arquivo: 2002net-dns1.pdf Prof. Adriano Mauro Cansian Administração de Redes TCP/IP DNS, Parte 1-12