Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Ambos lados da revisão anterior Revisão anterior | |||
| espec:resolucao_de_nomes [2011/08/26 18:11] – maziero | espec:resolucao_de_nomes [2011/08/26 18:28] (atual) – maziero | ||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| + | ====== Resolução de Nomes ====== | ||
| + | |||
| + | Nomes e endereços têm finalidades distintas: nomes servem para identificar recursos, enquanto endereços servem para localizar recursos. Na Internet, existe uma infraestrutura relativamente complexa para a tradução de nomes em endereços, e vice-versa. Essa infra-estrutura é fundamental para o funcionamento correto da maioria dos serviços Internet. | ||
| + | |||
| + | ===== Nomes de hosts ===== | ||
| + | |||
| + | As interfaces de um host em uma rede TCP/IP são identificadas basicamente por seus endereços de rede (endereços IP), que permitem localizá-las. No entanto, para facilitar a memorização dos endereços por seres humanos e para prover um nível de transparência sobre o endereçamento de rede, é possível associar nomes simbólicos (strings) a esses endereços IP, facilitando sua identificação. | ||
| + | |||
| + | No início da Internet, todos os nomes de hosts conhecidos eram catalogados com seus respectivos endereços em um arquivo '' | ||
| + | |||
| + | O DNS usa uma estrutura hierárquica de domínios para a definição de nomes. Os nomes que seguem essa estrutura são chamados **FQDN** - //Fully Qualified Domain Names//. Um FQDN é estruturado da seguinte forma: | ||
| + | |||
| + | host.3rd-level-domain.2nd-level-domain.top-level-domain | ||
| + | |||
| + | Exemplos de FQDN: | ||
| + | |||
| + | espec.ppgia.pucpr.br | ||
| + | www.uol.com.br | ||
| + | www.mit.edu | ||
| + | edas.info | ||
| + | |||
| + | O número de níveis em um FQDN não é fixo. Caso nenhum domínio seja definido, o domínio default "'' | ||
| + | |||
| + | O espaço de nomes de domínio é definido como uma árvore de domínios, iniciando no domínio " | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Cada parte da árvore de domínios pode ser gerenciada por uma organização diferente, de forma hierárquica. A responsabilidade pelos domínios brasileiros (nomes terminando em " | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Cada domínio ou sub-domínio de nomes (indicado pelos retângulos coloridos na figura acima) está a cargo de um servidor DNS. Um servidor pode ser responsável por um ou mais domínios de nomes, e pode delegar sub-domínios a outros servidores. | ||
| + | |||
| + | ===== Resolução de nomes ===== | ||
| + | |||
| + | A resolução de nomes consiste em encontrar o endereço IP associado a um nome de domínio (resolução direta), ou vice-versa (resolução reversa): | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | No UNIX (e na maioria dos sistemas operacionais com suporte a TCP/IP), a resolução de nomes está a cargo de uma biblioteca de sistema chamada [[http:// | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Essa biblioteca consulta a biblioteca NSS (//Name Service Switch//, que também parte da biblioteca LibC) para determinar o mecanismo a ser utilizado para a resolução de um nome. A resolução de nomes pode fazer uso de diversos mecanismos, entre os quais os mais importantes são: | ||
| + | |||
| + | * ''/ | ||
| + | * DNS: //Domain Name System//, é o sistema de resolução de nomes da Internet. | ||
| + | * NIS: //Network Information System//, um sistema criado pela Sun para difundir informações administrativas pela rede, como nomes de hosts, informações de usuários, etc. | ||
| + | |||
| + | A figura a seguir ilustra o funcionamento básico da biblioteca // | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | ===== Name Service Switch ===== | ||
| + | |||
| + | O sistema //Name Service Switch//, criado inicialmente para o Solaris, permite definir a ordem de procura de serviços para a resolução de diversos tipos de nomes em um ambiente Unix: hosts, usuários/ | ||
| + | |||
| + | < | ||
| + | # exemplo de arquivo / | ||
| + | |||
| + | passwd: files nis+ nis | ||
| + | shadow: files nis+ nis | ||
| + | group: | ||
| + | hosts: | ||
| + | ethers: files | ||
| + | services: files | ||
| + | </ | ||
| + | |||
| + | A linha "'' | ||
| + | |||
| + | ===== Arquivo /etc/hosts ===== | ||
| + | |||
| + | Esta forma de resolução de nome geralmente é usada para que a máquina resolva seu próprio nome e o nome da interface de // | ||
| + | |||
| + | Eis um exemplo típico desse arquivo ([[man-hosts|manpage]]): | ||
| + | |||
| + | < | ||
| + | # exemplo de arquivo /etc/hosts | ||
| + | # formato: IP nome alias alias alias ... | ||
| + | |||
| + | 127.0.0.1 | ||
| + | 10.26.128.139 | ||
| + | 200.192.112.139 | ||
| + | </ | ||
| + | |||
| + | Na plataformas Windows esse arquivo está localizado em '' | ||
| + | |||
| + | 200.192.112.139 | ||
| + | |||
| + | Por essa razão, o acesso a esse arquivo deve ser restrito ao administrador do sistema. | ||
| + | |||
| + | ===== Network Information System ===== | ||
| + | |||
| + | O NIS - //Network Information System// - é um sistema de difusão de informações similar ao sistema de domínios do Windows. Ele foi concebido pela Sun nos anos 80, com o nome de //Yellow Pages// (YP) e tornou-se um padrão no mundo UNIX, sendo suportado pela maioria dos sistemas. O NIS pode ser usado para difundir as seguintes informações: | ||
| + | |||
| + | * Descrição de usuários e grupos, extendendo o uso dos arquivos ''/ | ||
| + | * Nomes de computadores, | ||
| + | * Serviços e protocolos suportados pelo sistema, como os descritos em ''/ | ||
| + | * Informações de aliases globais de e-mail e outros, como os definidos em ''/ | ||
| + | * Parâmetros de rede, como os definidos em ''/ | ||
| + | * Mapas de serviço de automontagem de diretórios remotos, como usados pelos serviços //autofs// e AMD. | ||
| + | |||
| + | Os //daemons// responsáveis pelo NIS são: | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ===== DNS ===== | ||
| + | |||
| + | O DNS (//Domain Name System//) implementa um serviço distribuído para a resolução de nomes de domínio e outras informações correlatas. Ele é estruturado na forma de um banco de dados hierárquico distribuído, | ||
| + | |||
| + | O serviço DNS é acessado pelos processos clientes através da biblioteca resolver. As definições contidas no arquivo ''/ | ||
| + | |||
| + | < | ||
| + | # exemplo de arquivo / | ||
| + | |||
| + | domain ppgia.pucpr.br | ||
| + | nameserver 200.192.112.2 | ||
| + | nameserver 200.192.112.3 | ||
| + | </ | ||
| + | |||
| + | A definição desse arquivo normalmente é suficiente para a operação de um cliente DNS. | ||
| + | |||