Original in fr Fr�d�ric Raynal
fr to pt Patrick Carpalhoso
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.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.
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:
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.
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.