Teoría de Sistemas Operativos
Network Information Service
(NIS)
2
Sistemas DistribuidosNIS: Introducción
•Uno de los mayores problemas en un sistema distribuido es el mantener copias separadas de archivos de configuración en cada host, tales como passwd, group, etc. sin perder la consistencia de los archivos.
•Sistema con pocos hosts, no hay problemas.
•Pero si hay muchos ... vienen los problemas
3
Sistemas DistribuidosNIS: Introducción
por ejemplo: máquina pcsecre es añadida a una red de cincuenta máquinas.
nueva entrada en archivo /etc/hosts de cada una de las 50 máquinas
4
Sistemas DistribuidosNIS: Introducción
•El Network Information System (NIS) resuelve este problema:
•Es una base de datos distribuida.•“emite” copias o réplicas de archivos de configuración•Es centralizado evita tener copias de los archivos de configuración en cada host.•Fue desarrollado por SUN Microsystems.
5
Sistemas DistribuidosNIS: Introducción
•Se mantiene una base de datos para cada archivo de configuración en un servidor central o maestro.
•Si se necesita realizar algún cambiose realiza en el servidor maestro .este servidor reparte esa información a los servidores
esclavos.
•Los hosts clientes del sistema toman dicha información de los servidores cuando la necesitan.
6
Sistemas DistribuidosNIS: Información distribuida.
•Qué información se distribuye (entre otras):
• Login names passwords, directorios home (/etc/passwd)
• Información de grupos (etc/groups).• Información de hosts (etc/hosts).• Definición de grupos de red (etc/netgroups).• Definición de la máscara de red (etc/netmask).• . . .
•Qué información debe distribuirse:• /etc/fstab, por ejemplo.
7
Sistemas DistribuidosNIS: Esquema general de un sistema NIS
NIS Master Server
NIS Slave Server
NIS Slave Server
Cliente1 Cliente2 ClienteN
8
Sistemas DistribuidosNIS: Composición
•El NIS está compuesto, principalmente, de los siguientes elementos:
•Dominio•Mapas•Clientes•Demonios
9
Sistemas DistribuidosNIS: Composición Dominio
•Grupo de máquinas que comparten información de configuración común,
•Están bajo un control de administración común (NIS server).
•Propiedades de un Dominio:• Posee un nombre (p.e. elo.utfsm.cl)• No corresponden necesariamente a una red física en
particular, o a un rango de direcciones IP.• Tiene sólo un servidor mantiene actualizados los
archivos como /etc/hosts, etc.
10
Sistemas DistribuidosNIS: Composición Servidores
•Por definición un servidor NIS es un host que contiene los archivos de datos, llamados mapas.
•Existen dos tipos de servidores, los servidores maestros y los servidores esclavo.
11
Sistemas DistribuidosNIS: Composición Servidores Maestro
•Es el que contiene los mapas y es dueño de los mismos.
•Es responsable de mantenerlos y distribuirlos a los servidores esclavos.
•Solamente en él se pueden hacer las actualizaciones.
12
Sistemas DistribuidosNIS: Composición Servidores Esclavo
•Opcionalmente pueden definirse servidores esclavos en el dominio.
•Reducen la carga de trabajo del maestro.
•Proporcionan continuidad servicio si el maestro cae.
•Se recomienda al menos un servidor esclavo, aunque la red sea pequeña, ya que si sólo hay un servidor, éste no se puede deshabilitar sin afectar a todo el dominio
•El servidor maestro envía copias de los mapas a los servidores esclavos.
13
Sistemas DistribuidosNIS: Composición Mapas
•Los archivos mantenidos en los servidores se compaginan en estructuras denominas MAPAS.
•Un mapa es un archivo que mantiene cierta información en forma indexada.
ValorkeyEstructura genérica de unmapa.
14
Sistemas DistribuidosNIS: Composición Mapas
Pequeño problema:
•Mapa está diseñado para ser accedido sólo por un valor de llave:
Ejemplo de Solución:•/etc/hosts es usado para mapear tanto nombres como direcciones IP•Uno puede ser accesado por nombre, y el otro por dirección
dos mapas: hosts.byname y hosts.byaddr•lo mismo ocurre para otros mapas
15
Sistemas DistribuidosNIS: Composición Mapas
Dicho de otro modo:
hosts
Hosts.byname Hosts.byaddr
fulano 192.168.0.100 192.168.0.100 fulano
fulano 192.168.0.100
16
Sistemas DistribuidosNIS: Composición Mapas
Lugar de almacenamiento:
•Depende de la configuración del server, distribución de linux que se utilice, pero en general:
•/etc/yp•/var/yp
17
Sistemas DistribuidosNIS: Composición Demonios
•El servicio de NIS es suministrado por los demonios ypserv y ypbind y es actualizadopor el demonio rpc.ypupdated.
•Clientes seleccionan dinámicamente un servidor para su dominio NIS (proceso conocido como binding) y realizado por deamon ypbind.
•ypxfrd - Transfiere entradas de mapas NIS .
Más demonios en las páginas de manual ...
18
Sistemas DistribuidosNIS: Composición Esquema general de un sistema NIS
Mapa YP Archivoconfiguración
traditional e.g.
/etc/hosts
Mapa YP
Cliente
Mapa YP
ClienteCliente
Servidoresclavo Servidor
esclavo
Servidormaestro
Mapa YP Archivoconfiguración
traditional e.g.
/etc/hosts
Mapa YP
Cliente
Mapa YP
ClienteCliente
Servidoresclavo
Servidoresclavo Servidor
esclavo Servidoresclavo
Servidormaestro
Servidormaestro
19
Sistemas DistribuidosNIS: El lado del servidor
•Mapas NIS son construídos a partir del comando makedbm:$makedbm infile outfile
•Cada línea en el archivo texto infile genera un registro en el mapa.
•La salida de makedbm es un par de archivos oufile.bykey y oufile.byvalue
20
Sistemas DistribuidosNIS: El lado del cliente
El soporte de cliente en NIS es realizado a tres niveles:
1. Utilerías de líneas de comando para interrogar los mapas.
2. Funciones librerías llamadas resolvers, cada una diseñada para interrogar un mapa en específico.
3. Funciones de bajo nivel de propósito general para interrogación de mapas.
21
Sistemas DistribuidosNIS: El lado del cliente: ejemplo
Programas ypcat y ypmatch disponibles para interrogar a los mapas
ypmatchrealiza una búsqueda por una o más llaves en un mapa específico
$ypmatch pcsecre hosts.byname
buscará el hosts pcsecre en el mapa hosts.byname,
22
Sistemas DistribuidosNIS: El lado del cliente: ejemplo
Programas ypcat y ypmatch disponibles para interrogar a los mapas
ypcatusado para leer el mapa entero
$ ypcat passwd.byname
desplegará el mapa completo passwd.byname y es equivalentea teclear: cat /etc/passwd
23
Sistemas Distribuidos201.1.17.4 mateo201.1.17.3 vega201.1.17.120 matrix
Archivo original/etc/hosts
mapa hosts. byaddr
makedbm
Aplicación cliente
ypserv
ypcat yppasswd llamada RPC
a ypserv
NISmáquina servidor
NIS máquina cliente
mapa hosts. byname
mateo 201.1.17.4 vega 201.1.17.3
matrix 201.1.17.120
Esquema general de un sistema NIS
201.1.17.4 mateo 201.1.17.3 vega
201.1.17.120 matrix
24
Sistemas DistribuidosNIS: Limitantes
1. NIS es altamente asimétrico con respecto a la lectura y escritura de los mapas
- lectura es muy eficiente- escritura no es soportada en el protocolo NIS e involucra
muchas tareas
2. No existe un control de accesocualquier mapa NIS es accesible por cualquier cliente
25
Sistemas DistribuidosNIS: Limitantes
3. No hay un seguimiento faq, (peticiones más frecuentemente hechas), del cliente- ayuda a que todos los clientes vean copias consistentes de los datos, pero-ineficiente cada vez que un resolver es llamada: tráfico red
4. Mapas NIS están centralizados Datos no están distribuido, se encuentran reunidos en un sólo sistema
26
Sistemas DistribuidosNIS+:
Un nuevo servicio de información de red, que fue introducido por SunBastante complejo, sus principales ventajas son:
1. Definición de jerarquías. - En NIS un dominio representa un conjunto de máquinas
- No se puede delegar autoridad para administrar partes del dominio - NIS+ usa nombres de dominio jerárquico, similares a los de intenet
p.e. tienda puede tener dominios tienda.com y subdominiosventas.tienda.com, compras.tienda.com
27
Sistemas DistribuidosNIS+:
2. Concepto de tablas- Mapas son substituidos por tablas
- Tablas cuentan con varias columnas que pueden ser usadas como llave para una búsqueda: p.e. tabla hosts puede ser accedida por nombre y por dirección
- Tablas tienen nombres dentro del espacio jerárquico de nombres, p.e. personal.ventas.cuervo.com
- Cada tabla cuenta con un esquema que describe la tabla, (#colums, llaves, etc)
28
Sistemas DistribuidosNIS+:
widget.com
eng.widget.com
Dominio
Tabla Tabla Tabla Tabla
Subdominio sales .widget .com
Esquemabase datos
Tabla
Número de columnas :4Columnas a buscar :0,3 Máyusculas / Minúsculas : 0
Nombre Sitio
Linux linux.org i386 1446MacOS mac.com mac 1070Solaris sun.com sparc 0616
Plataf ID
29
Sistemas DistribuidosNIS+:
3. Múltiples criterios de búsqueda - Operaciones de búsqueda pueden hacerse a partir de varias columnas
p.e. [ name=toto, pais = francia ] de personal.ventas.com
4. Seguridad
- NIS+ usa autentificación como parte del RPC para identificar al que hace la llamada
- Usando esta identificación usuario establece derechos de acceso
- Derechos accesos están a tres niveles: toda la tabla, por renglón o por columna
- Cuatro derechos de acceso: lectura, creación, modificación y destrucción
- Cuatros clases usuarios: propietario objeto, propietario grupo, el resto, y los no permitidos
30
Sistemas Distribuidos