Yellow Pages

ArticleCategory:

System Administration

AuthorImage:

[Photo of the Author]

TranslationInfo:

Original in fr Fr�d�ric Raynal

fr to pt Patrick Carpalhoso

AboutTheAuthor:

Frederic Raynal prepara uma tese em inform�tica no INRIA. Ele gosta tamb�m ler (tanto Tolkien como Balzac) e ouvir musica (de Mozart a Philip Glass e de Led Zeppelin a Massive Attack passando por Bj�rk e Boris Vian, mas evitando cautelosamente o rap, a techno e outros ru�dos ;-)

Abstract:

O Network Information Service (NIS) gera uma base de dados num servidor. Cada computador da rede onde se executa um cliente NIS pode consultar o servidor para obter informa��es (nome do login, palavra-chave, informa��es sobre os grupos de utilizadores, ...). Isso permita uma gest�o centralizada e transparente de um grande numero de maquinas (sobretudo quando �, utilizado em associa��o com um sistema de ficheiros distribu�do como NFS) porque as modifica��es das informa��es s�o depois repercutidas via o servidor para todos os seus clientes.

ArticleIllustration:

[Illustration]

ArticleBody:

Introdu��o

O Network Information Service (NIS) foi inicialmente criado pela Sun e conhecido sobre o nome de Sun Yellow Pages (mais conhecido geralmente e simplesmente como as Yellow Pages ou YP). De qualquer modo, esse termo � uma marca registada da British Telecom e n�o pode, desse facto, ser utilizado sem os devidos direitos. Essas Yellow Pages fazem refer�ncia as mesmas que aquelas que n�s conhecemos aqui em Fran�a.

Os servidores NIS guardem as copias dos ficheiros de configura��o comuns as varias maquinas de uma rede numa base de dados. Os clientes NIS fazem pedidos aos servidores em vez de utilizar os seus pr�prios ficheiros de configura��o.

Vamos supor que somos um utilizador que deseja mudar a sua palavra-chave numa rede. Suponhamos em primeiro que nessa rede os YPs n�o est�o instalados. O utilizador ter� de ir a todos os postes da rede para alterar a sua palavra-chave. Em contrapartida, gra�as aos YPs, ele poder� contentar-se em mudar a sua palavra-chave numa maquina qualquer na qual um cliente NIS esteja a funcionar, a palavra-chave ser� depois transferida para o servidor que ir� actualizar a sua base de dados. Depois, quando esse utilizador desejar conectar-se numa maquina qualquer da rede (na qual existe um cliente NIS como � evidente ;-), a palavra-chave ser� comparada com aquela que est� na base de dados do servidor.

Notamos que existem diferentes variantes aos YPs mas visto este artigo ser uma introdu��o, veremos unicamente os grandes princ�pios de funcionamento sem entrar nos pormenores que trataremos mais tarde.

A glibc 2.x (libc6) suporta a utiliza��o de NSS (Name Switch Service) que determina a ordem a qual as informa��es devem de ser pesquisadas (ver o ficheiro /etc/nsswitch.conf). Ela gera os maps aliases, ethers, group, hosts, netgroups, networks, protocols, publickey, passwd, rpc, services e shadow.

Funcionamente

Estrutura

Uma rede vai ter uma maquina que desempenha o papel de servidor NIS para um dom�nio. Esse dom�nio corresponde, basicamente, ao nome da base de dados que o servidor vai gerir. Ele serve de chave para os clientes NIS para que estes possam encontrar, no servidor NIS, as informa��es desejadas. Esse nome de dom�nio n�o tem estritamente nada a ver com o nome do dom�nio DNS. V�rios servidores NIS podem ser instalados numa mesma rede. Eles poder�o cada um gerir um dom�nio (no ponto visto NIS) diferente, ou ent�o o mesmo dom�nio (nesse caso teremos um servidos mestre e servidores escravos).

Os servidores escravos s� t�m uma copia da base de dados do servidor mestre. Esses servidores servem para compensar, a n�vel dos clientes, o servidor mestre quando este leva muito tempo a responder ou em caso de avaria.

Os servidores escravos s�o avisados de qualquer altera��o da base de dados pelo programa yppush e eles corrigem ent�o a sua pr�pria base de dados de modo a que ela coincida exactamente com a base de dados do servidor mestre.

Do lado dos clientes nenhuma manuten��o � necess�ria porque eles est�o em contacto permanente com o servidor NIS para encontrar as informa��es na sua base de dados.

Os maps

As bases de dados YP s�o do formato GDBM, vindo do formato ASCII. Elas s�o geradas no momento do servidor pelo programa makedbm.

Esses maps (cartas em Ingl�s - as bases de dados) estabelecem as correspond�ncias entre uma chave e seu valor. Todos os maps das YPs s�o constru�dos sobre esse modelo. Do ponto de vista do servidor, o conteudo n�o tem significado nenhum (alias, com algumas excep��es sobre o servidor principal ou as datas). Isso significa que, para o servidor, uma map de palavras-chave ou de grupos ou ... s� corresponde de facto unicamente a uma serie de pares (chaves, valores). S� o cliente YP sabe como percorrer esses maps em busca da informa��o desejada.

Essa representa��o dos dados cria um problema. Como o servidor n�o sabe "ler" o valor duma chave para pesquisar a segunda chave, somos obrigados a duplicar os dados. Por exemplo, no caso das palavras-chave, podemos querer pesquisar ou por login, ou por "numero de utilizador" (user ID ou UID, identificador proprio a cada utilizador da rede). Isso traduz-se por uma redundancia de informa��o, visivel pela presen�a dos ficheiros passwd.byname e passwd.byuid. Criamos ent�o uma nova map para cada chave. Isso significa que os dados devem de ser transmitidos duas vezes no momento de uma mudan�a.

Tres informa��es s�o necessarias para que um cliente encontra o que ele procura numa base de dados:

  1. o nome do dominio: � o nome da base de dados no servidor das YPs
  2. o nome da map
  3. a chave desejada
Dessa forma, para que um cliente encontra a palavra-chave de um utilizador Toto no dominio Titi, ele ira ler o ficheiro /var/yp/titi/passwd.byname no servidor YP a procura do utilizador Toto.

Isto ofere�a uma grande flexibilidade de utiliza��o porque a instala��o de um novo dominio resume-se a criar o directorio /var/yp/novo_dominio, copiar la dentro o Makefile e executa-lo com as op��es desejadas.

As Remote Procedure Calls (RPC)

O funcionamento das YPs recaie essencialmente sobre as Remote Procedure Calls (RPCs) que permitem pedidos entre o servidor e os clientes.

O RPC portmapper (portmap) � um programa que converte os numeros de programas RPC em numero de portas. Quando um servidor RPC arranqua, ele vai indicar ao portmap qual a porta ele ira utilizar e os numeros de programas RPC que ele gera. Quando um cliente deseja enviar um pedido RPC para um determinado numero de programa, ele contacta em primeiro o servidor portmap para obter o numero da porta sobre a qual funciona o programa desejado. A seguir, ele envia o pacotes RPC a porta correspondente O modelo cliente/servidor das YPs � simplesmente um caso particular de cliente/servidor RPC.

O ficheiro yp_prot.h contem as estruturas e prototipos das 11 fun��es que definem o protocole RPC entre os clientes e o servidor das YPs.

Conclus�o

Agora que o principio geral � conhecido, o proximo artigo desvendera o aspecto cliente das yellow pages : como ele funciona, como configura-lo, as ferramentes que ele utiliza, etc... Veremos igualmente as ferramentas necessarias para assegurar-se da boa configura��o do nosso cliente, tanto para as RPCs que para as YPs.