Sistemas Distribuídos Aula 9 Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação - UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação - UFJF
Implementação de um espaço de nomes Serviço que permite que usuários e processos adicionem, removam e consultem nomes Serviço de nomeação é implementado por servidores de nomes Servidores de nomes devem prover: Escalabilidade Manutenção descentralizada Tolerância a falhas, robustez Escopo global: Nomes possuem o mesmo significado em todos lugares
Implementação de um Espaço de Nomes Costumam ser organizados em hierarquia Segundo Cheriton e Mann (1989) é conveniente dividir os espaço de nomes em três camadas Camada global Raiz e seus filhos; Principal característica: Estabilidade; Podem representar organizações Camada Administrativa Nós de diretórios; Representam entidades em uma mesma organização (departamentos); Gerenciados por uma única organização; Relativamente estáveis Camada Gerencial Nós cujo comportamento típico é a mudança periódica; Mantidos por administradores de sistemas e usuários finais Sistemas Distribuídos: Msc. Daniele C. Oliveira 3
Root:<nl, vu, cs, ftp, pub, globe, index.html> ftp://ftp.cs.vu.nl/pub/globe/index.html Sistemas Distribuídos: Msc. Daniele C. Oliveira 4
Como resolver nomes? Resolução Iterativa Servidor responde somente o que sabe: o nome do próximo servidor que deve ser buscado Cliente procura iterativamente os outros servidores Sistemas Distribuídos: Msc. Daniele C. Oliveira 5
Como resolver nomes? Resolução Recursiva Servidor passa o resultado para o próximo servidor que encontrar Para o cliente, somente existe uma mensagem de retorno: o endereço do nome ou 'não encontrado' Sistemas Distribuídos: Msc. Daniele C. Oliveira 6
Iterativa versus Recursiva Sistemas Distribuídos: Msc. Daniele C. Oliveira 7
Iterativa versus Recursiva Sistemas Distribuídos: Msc. Daniele C. Oliveira 8
DNS: Domain Name System Roteadores e hosts: Endereço IP address (32 bits) usado para endereçar datagramas nome, e.g., ww.yahoo.com usado por humanos Q: como mapear um endereço IP e o nome? Domain Name System: Banco de dados distribuído: implementado em hierarquia com muitos servidores de nome Protocolo da camada de aplicação: hosts, roteadores, servidores de nomes se comunicam para resolver nomes (tradução endereço/nome) Sistemas Distribuídos: Msc. Daniele C. Oliveira 9
DNS Serviços DNS Tradução do nome para o endereço IP Apelidos de hospedeiro Apelidos do servidor de email Distribuição de carga Vários servidores Web: conjunto de endereços IP para um único nome Por quê não centralizar o DNS? Único ponto de falha Volume de tráfego Banco de dado centralizado distante Manutenção Não é escalável! Sistemas Distribuídos: Msc. Daniele C. Oliveira 10
Banco de Dados Distribuído e Hierárquico Cliente procura o IP para www.amazon.com: Cliente consulta um servidor raiz para encontrar o servidor DNS.com Cliente consulta o servidor DNS.com para encontrar o servidor amazon.com Cliente consulta o servidor amazon.com para encontrar o endereço www.amazon.com Sistemas Distribuídos: Msc. Daniele C. Oliveira 11
DNS: Servidores Raiz Contatado pelo servidor de nome local que não pode traduzir o nome Servidor raiz Sistemas Distribuídos: Msc. Daniele C. Oliveira 12
Servidores TLD e com autoridade Servidores Top-level domain (TLD) : responsáveis por for com, org, net, edu, etc, e todos os domínios de países br, uk, fr, ca, jp. Network Solutions mantém servidores para.com TLD Educause para.edu TLD Servidores DNS com autoridade: Servidores DNS de uma organização, que fornecem um host para mapear os nomes dos servidores da organização em endereços Ips (e.g., Web, mail). Podem ser mantidos pela organização ou por um provedor de serviços Sistemas Distribuídos: Msc. Daniele C. Oliveira 13
Servidor de Nome Local Não pertence a hierarquia Cada ISP (ISP residencial, empresa, universidade) tem um. Também chamado de default name server Quando um host faz uma consulta DNS, a consulta é enviada ao servidor DNS local Atua como um proxy, enviando a consulta aos servidores da hierarquia Sistemas Distribuídos: Msc. Daniele C. Oliveira 14
Registros DNS DNS: banco de dados distribuído para armazenar os registros dos recursos (resource records - RR) Tipo=A Nome é hostname Valor é endereço IP (relay1.bar.foo.com, 145.37.93.126,A) Tipo=CNAME Nome é um apelido para algum nome real www.ibm.com é, na realidade servereast.backup2.ibm.com Valor é o nome real (foo.com,relay1.bar.foo.com, CNAME) Tipo=NS Nome é domínio (e.g. foo.com) Valor é hostname de um servidor de nomes com autoridade para o este domínio (foo.com,dns.foo.com,ns) Tipo=MX Valor é nome do servidor de email associado ao apelido que está no campo nome (foo.com,mail.bar.foo.com,mx)
Inserindo registros no DNS Exemplo: novo domínio Network Utopia Registrar o nome networkuptopia.com em uma entidade registradora (e.g., Network Solutions) Deve-se informar os nomes e endereços IPs dos servidores DNS com autoridade (primários e secundários) A entidade registradora insere duas RRs em um servidor TLD.com: (networkutopia.com, dns1.networkutopia.com, NS) (dns1.networkutopia.com, 212.212.212.1, A) Cria-se um registro de servidor de autoridade do tipo A para www.networkuptopia.com; Registro do tipo MX para networkutopia.com Sistemas Distribuídos: Msc. Daniele C. Oliveira 16
Nomeação Baseada em Atributo Fornecer uma descrição da entidade que está sendo procurada Descrever uma entidade em termos de pares <atributo, valor> Serviços de diretório retornam uma ou mais entidades que atendam a descrição do usuário Sistemas Distribuídos: Msc. Daniele C. Oliveira 17
Fim da Aula 8. Sistemas Distribuídos: Msc. Daniele C. Oliveira 18