Taller de Redes de Computadores
Network Information Service(NIS)
Marco A. Nuñez Q.
Rodrigo E. Nanjari P.
[email protected]
[email protected]
Valparaíso, 26 de Agosto de 2005
Resumen
En este documento encontrará una descripción detallada acerca de Network Information Ser-
vice(NIS) y como configurar clientes y servidores NIS.
1. Prefacio
Hace mucho tiempo las salas de computadoras eran pequeñas, con pocos usuarios y recursos que
manejar. El entorno de computación era sencillo y su era una tarea relativamente sencilla; Todos
trabajaban en el mismo sitio y no importaba mucho el desperdiciar espacio con información duplicada.
Pero la situación cambió rápidamente. Con la llegada de las redes de computadoras la cantidad de
usuarios aumento de manera exponencial y los sitios de trabajo se hicieron más alejados. También la
cantidad de información almacenada hizo que el aprovechar los recursos se convirtiera en un factor
vital.
Se hizo necesario la aparición de mecanismos que permitieran sincronizar esos recursos de manera
eficiente. Se buscaban las siguientes cosas:
Los usuarios podrían trabajar en cualquier máquina con su cuenta, teniendo a la mano sus
archivos. El proceso debería ser transparente.
La administración de cuentas y recursos sería centralizada, lo cual evitaría inconsistencias.
El uso de estas herramientas debería ser consistente entre las diferentes máquinas para facilitar
la administración.
El sistema de archivos de red (Network File System, NFS) y el sistema de información de redes
(Network Information Service, NIS) provee mecanismos para resolver estos problemas. Los protocolos
NFS y NIS [1] fueron desarrollados por Sun Microsystems, y son prácticamente un estándar a la hora
de resolver este tipo de problemas.
Network Information Service,NIS
Pág. 2
NIS se encarga de resolver los siguientes problemas:
Centraliza archivos de configuración replicados como el /etc/passwd en una sola máquina.
Elimina las copias duplicadas de usuarios e información del sistema, permitiéndole al adminis-
trador hacer cambios en un solo sitio.
NFS resuelve los siguientes problemas:
Hace aparecer los sistemas de archivos remotos como si fueran locales porque oculta su verdadera
ubicación física.
Un usuario puede ver sus archivos, independientemente de donde estén localizados, ya sea que
estén en el disco local, en un disco compartido en un servidor o en una máquina que está al otro
lado de una red de área ancha.
NIS y NFS se complementan, ya que el exportar un sistema de archivos a una máquina en donde estos
no existen violaría las reglas de integridad y seguridad impuestas por Unix.
También permiten la creación de servicios sofisticados como buzones de correo únicos en toda la red
para un grupo de usuarios.
Finalmente NIS y NFS facilitan la labor de administración de redes, con lo cual se puede prestar un
mejor servicio.
Este documento tendrá por objetivo explicar que es NIS, como funciona, sus ventajas y desventajas
y como configurar este servicio, tanto en la parte cliente como servidor.
2. Network Information Service, NIS
2.1.
¿Qué es NIS?
NIS es una base de datos distribuida que reemplaza copias de archivos de configuración comúnmente
replicados por un archivo central. En vez de manejar varias copias de archivos como /etc/hosts,
/etc/passwd, /etc/group se utiliza una sola copia que es modificada y almacenada en el servidor y
es distribuida entre los clientes. No todos los archivos son candidatos a ser almacenados en un servidor
central, como es el caso del /etc/fstab1 ya que su contenido varia mucho de equipo en equipo.
2.2. Arquitectura de NIS
NIS trabaja bajo el modelo de cliente - servidor. Bajo NIS un servidor es una máquina que contiene
archivos de datos para NIS, llamados mapas. Los clientes son máquinas que piden información de esos
mapas. Los servidores puede subdividirse aún más en maestros y esclavos.
Los servidores maestros son los verdaderos poseedores de los mapas y se encargan de su mantenimiento
y distribución. Los esclavos toman los mapas del servidor y responden preguntas de los clientes (los
maestros también lo hacen).
1Este archivo se encarga de indicar cuales son los sistemas de archivos que son cargados cuando se arranca la máquina.
Agosto - 2005
Network Information Service,NIS
Pág. 3
Una vez que se configura a un cliente para que utilice NIS y el servidor está corriendo, algunos archivos
dejan de ser utilizados en su totalidad (como él /etc/hosts) o soncomplementados por NIS (como él
/etc/passwd).
Los mapas NIS no son guardados como archivos ASCII. Los mapas son convertidos a un formato
binario llamado DBM, por razones de eficiencia en las búsquedas. NIS puede ser utilizado para algo
más que administrar el archivo de password, por ejemplo se puede crear una base de datos de los
teléfonos de los empleados de una compañía.
En este esquema, RPC juega un papel importante ya que NIS se basa en sus servicios. En vez de
ejecutar el procedimiento en una máquina local, RPC pasa una serie de argumentos al procedimiento
en un datagrama de red. El cliente RPC crea la sesión al localizar al servidor apropiado y se envía el
datagrama a un proceso en el servidor que pueda ejecutar la llamada del procedimiento remoto. En el
servidor el argumento es desempaquetado, el servidor ejecuta el comando y retorna las respuestas, si
hay alguna, al cliente. De vuelta en el cliente, el valor del RPC es convertido a un valor esperado por
la función que lo llamo y la aplicación continua como si un procedimiento local hubiera sido llamado.
La ubicación de puertos para una sesión es manejada por un demonio llamado portmap.
Figura 1: Arquitectura de NIS
2.3. Configuración de NIS
Para el servidor, esclavos y clientes se deben instalar el paquete NIS, y portmap, sin embargo Debian
se encarga de solucionar dependencias agregando los paquetes necesarios y extras.
#apt-get install nis portmap
Luego de la instalación el la maquina quedará equipada con los siguientes comandos y demonios,
utilizaremos la siguiente terminología para referirnos al tipo de configuracion de la máquina:
Agosto - 2005
Network Information Service,NIS
Pág. 4
M: Servidor NIS maestro.
S: Servidor NIS esclavo.
C: Cliente NIS
Programa
ypserv
ypbind
Conf Descripción
MS
Demonio servidor NIS se encarga de recibir y contestar consultas de clientes.
MSC Demonio cliente NIS, realiza una consulta a la biblioteca libc para localizar
un servidor NIS en el dominio.
domainname MSC Fija el nombre de dominio NIS en que se encuentra la máquina.
Baja mapa desde el servidor maestro; sólo si está desactualizado.
ypxfr
Demonio en el Servidor maestro que atiende ypxfr
ypxfrd
Avisa a los servidores esclavos que deben actualizarse ejecutando ypxfr.
yppush
Crea mapa ndbm desde el archivo /var/yp/.
makedbm
Reconstruye mapas ndbm de los archivos modificados; en otras versiones,
ypmake
se debe invocar make en el directorio NIS.
Configura una máquina para ser servidor maestro o esclavo.
S
M
M
M
M
ypinit
ypset
ypwich
yppoll
ypcat
ypmatch
yppasswd
ypchfn
ypchsh
Determina la versión de un mapa que está usando un servidor.
MS
MSC Invoca a ypbind para que se conecte a un servidor NIS específico.
MSC Determina qué servidor NIS está usando la máquina local.
MS
MSC Muestra valores contenidos en un mapa NIS.
MSC Muestra entradas para una clave indicada en un mapa NIS.
MSC Cambia la contraseña de usuario en el servidor maestro NIS.
MSC Cambia información de usuario en el servidor maestro NIS.
MSC Cambia shell de login de usuario en el servidor maestro NIS
El servicio NIS, primero debe iniciarse en el servidor, luego hay que inicializarlo en cada servidor
esclavo, por lo tanto hay que fijar el dominio NIS en cada una de las máquinas, de la misma manera
se debe ajustar el archivo nsswitch.conf para la consulta de mapas.
2.3.1. Configuración de un Servidor NIS
Supongamos que deseamos configurar un servidor NIS en el laboratorio ADA-Lovelace, el nombre del
dominio será labada, entonces nos movemos al direcotrio yp, haciendo #cd /var/yp, una vez en el
directorio, ejecutamos:
:~# domainname labada
con lo que hemos fijado el nombre del dominio NIS.
El segundo paso es inicializar la maquina como un servidor maestro de NIS, para ello nos movemos
al directorio /usr/lib/ypejecutamos:
root:/usr/lib/yp# ./ypinit -m
Finalmente arrancamos el servidor NIS:
:~# ypserv
Podemos verificar el correcto funcionamiento del servidor interrogando al portmapper:
:~# rpcinfo -u fw-labada ypserv
Agosto - 2005
Network Information Service,NIS
Pág. 5
la salida debería ser algo como:
fw-labada:~# rpcinfo -u fw-labada ypserv
program 100004 version 1 ready and waiting
fw-labada:~#
En un dominio NIS, solo los cambios efectuados sobre un servidor maestro pueden ser tomados en
cuenta. Lo normal es tener que reconstruir las bases de datos despues de cada cambio. Por suerte
algunas herramientas nos dejaran realizar estos cambios desde el cliente. Se trata respectivamente de:
yppasswd, ypchsh y ypchfn.
Estas ordenes estan concebidas para interactuar con otro servicio RPC el yppasswdd. Este recibe
las llamadas de modificación generadas por estas aplicaciones, actualiza el /etc/passwd del servidor
y actualiza las bases de datos automaticamente. Para usar estas funcionalidades es necesairo tener
lanzado el servicio con el comando:
:~# rpc.yppasswdd -e <pass_actual> -e <nueva_pass>
Sin la opcion -e, unicamente se autoriza el cambio de contraseña.
Si realizamos cambios en el fichero de cotraseñas, como por ejemplo agregar usuarios en el servidor,
es necesario regenerar las bases de datos. Para ello basta con hacer make all en el directorio /var/yp
2.3.1.1. Configuración del servidor esclavo NIS
Un servidor esclavo es ante todo un cliente del servidor maestro. El servidor esclavo no hace otra cosa
que conservar una copia conforme de las bases de datos maestras. Es necesario que el
Comentarios de: NIS Conceptos y Configuración (0)
No hay comentarios