5.1.3 Elecciones de Visualizadores.

Como ya mencionamos en el Capítulo 1, Aprendiendo Samba, una máquina en cada subred siempre mantiene una lista de las actuales máuinas activas en la red. Esta lista es denominada lista de visualización o lista de navegación, y el servidor que la mantiene es llamado visualizador maestro local. Como las máquinas se encienden y apagan contínuamente en una red, el visualizador maestro local contínuamente actualiza la información en la lista de visualización y se la proporciona a cualquier máquina que la solicite.

Una computadora se convierte en visualizador maestro local manteniendo una elección de visualización en la subred local. Las elecciones de visualizadores pueden ser llamadas en cualquier momento. Samba puede usar una elección de visualizador para una variedad de resultados, incluyendo el ser siempre el visualizador maestro local de la subred o no serlo nunca. Por ejemplo, las siguientes opciones, que hemos añadido al fichero de configuración del Capítulo 4, Recursos de Disco, asegurará que Samba siempre gane la elección de visualizador maestro local, sin importar qué otras máquinas estén presentes en la red:

[global]
  netbios name = HYDRA server
  string = Samba %v on (%L)
  workgroup = SIMPLE

  # Browsing election options
  os level = 34
  local master = yes

  # Networking configuration options
  hosts allow = 192.168.220. 134.213.233. localhost
  hosts deny = 192.168.220.102
  interfaces = 192.168.220.100/255.255.255.0 \ 
               134.213.233.110/255.255.255.0

  # Debug logging information
  log level = 2
  log file = /var/log/samba.log.%m
  max log size = 50
  debug timestamp = yes

[data]
  path = /home/samba/data
  browseable = yes
  guest ok = yes
  comment = Data Drive
  volume = Sample-Data-Drive
  writable = yes

Sin embargo, ¿Qué pasa si quiero que nunca gane esa elección? ¿Qué pasa si quiero que el ganador siempre sea un servidor Windows NT que tengo en esa red? Para hacer esto, necesitamos aprender cómo trabajan las elecciones de visualizador. Como ya sabes, cada máquina que toma lugar en la elección debe mandar información de sí misma por el método de difusión (broadcast). Esta información incluye lo siguiente:

Aquí es donde se decide la elección. Los sistemas operativos tienen asignado un valor binario en función de su versión, como puedes ver en la Tabla 5.1.


Table: Valores de los S.O. en una Elección.
S.O. Valor
Windows NT Server 4.0 33
Windows NT Server 3.51 32
Windows NT Workstation 4.0 17
Windows NT Workstation 3.51 16
Windows 98 2
Windows 95 1
Windows 3.1 for Workgroups 1


A continuación, a cada computadora en la red se le asigna un valor distinto de acuerdo a su papel o rol en la red, como en la Tabla 5.2.


Table: Valores de Roles de Computadoras en una Elección.
Rol Valor
Controlador Primario de Dominio 128
Cliente WINS 32
Visualizador Maestro Preferido 8
Visualizador Maestro Activo 4
Visualizador en Espera 2
Visualizador de Seguridad Activo 1


Las elecciones se realizan de la siguiente forma:

  1. La máquina con la mayor versión de protocolo de elección ganará (todos los clientes Windows tienen la versión 1 del protocolo de elección).
  2. La máquina con el mayor valor de sistema operativo ganará la elección.
  3. Si hay conflicto, la máquina con el valor 'Visualizador Maestro Preferido' (rol 8) ganará la elección.
  4. Si todavía hay empate o conflicto, el cliente que haya estado más tiempo en línea ganará la elección.
  5. Y, finalmente, si todavía existe conflicto, el nombre de cliente que por orden alfabético vaya primero ganará.
  6. La máquina que ocupó el segundo lugar en la elección, puede convertirse en visualizador de seguridad.
Como resultado, si quieres que Samba tome el rol de visualizador maestro local, pero sólo en el caso de que no haya un servidor Windows NT Server (4.0 o3.51) en la red, podrías cambiar el parámetro os level en el ejemplo anterior por:

os level = 31

Esto provocará que Samba inmediatamente pierda la elección contra un servidor Windows NT 4.0 o Windows NT 3.5 Server, los cuales tienen un nivel de s.o. superior. Por otro lado, si quieres decidir al visualizador maestro local en base al rol de red, tal como qué máquina es el controlador primario de dominio, podrías establecer el valor de os level para que coincidiese con el tipo más alto de sistema operativo en la red, y permitir así que la elección de protocolo pasara al siguiente nivel.

¿Cómo puedes saber si una máquina es el visualizador maestro local? Pues usando el comando nbtstat. Coloca el nombre NetBIOS de la máquina que quieras interrogar tras la opción -a:

C:\>

nbtstat -a hydra

  NetBIOS Remote Machine Name Table

Name                 Type            Status
----------------------------------------------------------
HYDRA                <00> UNIQUE     Registered
HYDRA                <03> UNIQUE     Registered
HYDRA                <20> UNIQUE     Registered
.._ _MSBROWSE_ _.    <01> GROUP      Registered
SIMPLE               <00> GROUP      Registered
SIMPLE               <1D> UNIQUE     Registered
SIMPLE               <1E> GROUP      Registered

MAC Address = 00-00-00-00-00-00

La línea que estás buscando es .._ _MSBROWSE_ _.<01>. Esto indica que el servidor está actualmente actuando como el visualizador maestro local para la subred actual. En adición, si la máquina es un servidor Samba, puedes chequear el fichero de registro de Samba nmbd para buscar una entrada como ésta:

nmbd/nmbd_become_lmb.c:become_local_master_stage2(406)
*****
Samba name server HYDRA is now a local master browser for
workgroup SIMPLE on subnet 192.168.220.100
****

Finalmente, los servidores Windows NT que están sirviendo como controladores primarios de dominio contienen un chivato que les permite asumir el rol de visualizador maestro local en ciertas condiciones; esto es llamado el bit de visualizador maestro preferido. Antes, mencionamos que Samba podía asignarse este bit para sí. Puedes activarlo con la opción preferred master:

# Browsing election options
os level = 33
local master = yes
preferred master = yes

Si se configura el bit de maestro preferido, la máquina forzará una elección de visualizador al arrancar. Por supuesto, esto sólo es necesario si estableces la opción os level para que coincida con la máquina Windows NT. Te recomendamos que no uses ésta opción si otra máquina tiene también el rol de maestro preferido, tal como un NT server.

TLDP-ES 03/11/2002