Antes de que entraran en juego los Servidores de Nombres NetBIOS, o NetBIOS Name Servers (NBNS) , la resolución de nombres trabajaba enteramente mediante difusión (broadcast). Si necesitabas la dirección de una máquina, simplemente hacías multidifusión de su nombre sobre toda la red y, en teoría, la máquina en cuestión debería responder a la llamada. Esta aproximación es todavía posible: cualquiera que esté buscando a una máquina llamada fred puede todavía hacer un broadcast con la petición, y encontrarla si existe y averigurar cuál es su dirección IP (nosotros usaremos esta capacidad para resolver los problemas del servicio de nombres de Samba con em comando nmblookup en el Capítulo 9, Resolución de Problemas en Samba).
Como ya vimos en el primer capítulo, sin embargo, el broadcasting o multidifusión no pasa fácilmente de unas subredes a otras, a través de múltiples subredes. En adición, muchos broadcasts tienden a tirar las redes. Para resolver este problema, Microsoft ahora proporciona el Windows Internet Naming Service (WINS), un NBNS a nivel de red, el cual Samba soporta. Con él, un administrador puede designar una única máquina para que actúe como servidor WINS, y puede entonces proporcionar a cada cliente que requiera resolución de nombres la dirección del servidor WINS. Consecuentemente, las peticiones de registro y de resolución de nombres pueden ser dirigidas a una misma máquina desde cualquier punto de la red, en lugar de hacer broadcast.
WINS y el broadcasting no son los únicos mecanismos para la resolución de nombres. Hay actualmente cuatro mecanismos que pueden ser usados con Samba:
- WINS
- Broadcasting
- Unix /etc/hosts or NIS/NIS+ matches
- LMHOSTS file
Samba can use any or all of these name resolution methods in the order that you specify in the Samba configuration file using the name resolve order parameter. However, before delving into configuration options, let's discuss the one that you've probably not encountered before: the LMHOSTS file.
LMHOSTS es el fichero de gestión de máquinas de red standard, usado para resolver nombres a direcciones IP en el sistema. Este es el equivalente NBT del fichero /etc/hosts que es un estandard en todos los sistemas Unix. Por defecto, el fichero es normalmente almacenado como /usr/local/samba/lib/LMHOSTS y comparte un formato similar al de /etc/hosts. Por ejemplo:
192.168.220.100 hydra
192.168.220.101 phoenix
La única diferencia es que los nombres de la columna derecha son nombres NetBIOS en vez de nombres DNS. Debido a que son nombres NetBIOS, también les puedes asignar tipos de recursos, como sigue:
192.168.220.100 hydra#20
192.168.220.100 simple#1b
192.168.220.101 phoenix#20
Aquí, hemos asignado a la máquina hydra el ser el controlador de dominio primario para el dominio SIMPLE, lo indicamos con el tipo de recurso <1B> asignado tras el nombre de máquina en la segunda de las tres líneas. Las otras dos son para definir estaciones de trabajo standard.
Si deseas ubicar el fichero LMHOSTS en algúuna otra ubicación, necesitarás notificarlo al proceso nmbd en el arranque, como sigue:
nmbd -H /etc/samba/lmhosts -D
Puedes configurar Samba para usar otro server WINS que se encuentre en la red, simplemente apuntando a la dirección IP de dicho servidor WINS. Esto se hace con la opción de configuración global wins server, como se muestra aquí:
[global]
wins server = 192.168.200.122
Con esta opción activada, Samba redirigirá todas las peticiones WINS al servidor que se encuentra en 192.168.200.122. Advierte que debido a que la petición es redirigida a una única máquina, no tenemos que preocuparnos sobre los problemas inherentes a una multidifusión. Sin embargo, aunque hayas especificado una dirección IP de un servidor WINS en el fichero de configuración, Samba no usará necesariamente ese server WINS antes que otras formas de resolución de nombres. El orden en que Samba usa las diferentes técnicas para resolución de nombres es definido por la opción de configuración name resolve order, la cual discutiremos dentro de poco.
Si tienes un server Samba sobre una subred que todavía usa broadcasting, y el servidor Samba conoce la correcta localización de un servidor WINS en otra subred, puedes configurar el servidor Samba para que reenvíe cualquier petición de resolución, con la opción wins proxy:
[global]
wins server = 192.168.200.12
wins proxy = yes
Usa esto sólo en aquellas situaciones en las que el servidor WINS resida en otra subred. De lo contrario, el broadcast enlazará con el servidor WINS a través de cualquier proxy.
Puedes configurar Samba como sever WINS configurando dos opciones globales del fichero de configuración:
[global]
wins support = yes
name resolve order = wins lmhosts hosts bcast
La opción wins support convierte a Sambaen un servidor WINS. Lo creas o no, ¡Es todo lo que necesitas hacer! Samba maneja el resto de detalles detrás del escenario, convirtiéndote en un relajado administrador. Las opciones wins support=yes y wins server son mutuamente excluyentes; no puedes al mismo tiempo ofrecer a Samba Samba como server WINS y además apuntar a otro sistema para que actúe como servidor.
Si Samba está actuando como server WINS, deberías familiarizarte con la opción name resolve order mencionada anteriormente. Esta opción le dice a Samba el orden a seguir en cuanto a la utilización de métodos para la resolución de un nombre NetBIOS. Puede tomar hasta cuatro valores:
lmhosts Usa el fichero de control de red LMHOSTS.
hosts Usa los métodos de resolución de nombres standard de un sistema Unix system, /etc/hosts, DNS, NIS, o una combinación (según esté configurado en dicho sistema).
wins Usa el servidor WINS.
bcast Usa un método de multidifusión o broadcast.
El orden en que los especificas es el orden en que Samba intentará la resolución de nombres cuando actúe como servidor WINS. Por ejemplo, echemos un vistazo al valor expuesto arriba:
name resolve order = wins lmhosts hosts bcast
Esto significa que Samba intentará usar primero sus entradas WINS par la resolución de nombres, y a continuación el fichero LMHOSTS de su sistema. Después, el valor hosts provoca que use los métodos Unix para la resolución de nombres. La palabra hosts puede llegar a engaño; no sólo cubre el fichero /etc/hosts, sino también el uso de DNS o NIS (según esté configurado en el sistema Unix). Finalmente, si ninguno de los tres funcionó, usará broadcast para intentar localizar la máquina correcta.
Por último, puedes instruir al server Samba para que actúe como WINS que chequee co el servidor DNS del sistema si una petición no pudo ser encontrada en su base de datos WINS. Con un típico sistema Linux, por ejemplo, puedes encontrar la dirección IP del servidor DNS buscando el fichero /etc/resolv.conf. En su interior, deberías ver una entrada parecida a esta:
nameserver 127.0.0.1
nameserver 192.168.200.192
Esto nos indica que un servidor DNS se encuentra en 192.168.220.192 (La IP 127.0.0.1 es la dirección de la máquina local, y nunca es una dirección DNS válida).
Usa la opción global dns proxy para indicar a Samba que use el servidor DNS:
[global]
wins support = yes
name resolve order = wins lmhosts hosts bcast
dns proxy = yes
Las opciones se muestran en la Tabla 7.5.
Table: Opciones WINS||
Table: Opciones WINS|| Opción || Parámetros || Función || Defecto || Ambito || || wins support || booleano || Si se estabelce a yes, Samba actuará como server WINS. || no || Global || || wins server || string (dirección IP o nombre DNS) || Identifica un server WINS para ser usado por Samba para registro y resolución de nombres. || ninguno || Global || || wins proxy || booleano || Permite a Samba actuar como proxy de un server WINS en otra subred. || no || Global || || dns proxy || booleano || Si vale yes, un server Samba buscará DNS si no puede encontrar un nombre en WINS. || no || Global || || name resolve order || lmhosts, hosts, wins, o bcast || Especifrica un orden para los métodos usados para resolver nombres NetBIOS. || lmhosts hosts wins bcast || Global || || max ttl || numérico || Especifica el tiempo de vida máximo en segundos para una petición de nombres NetBIOS. || 259200 ( 3 días) || Global || || max wins ttl || numérico || Especifica el tiempo máximo de vida en segundos para nombres NetBIOS distribuidos por Samba como server WINS. || 518400 (6 días) || Global || || min wins ttl || numérico || Especifica el mínimo tiempo de vida en segundos para nombres NetBIOS distribuidos por Samba como server WINS. || 21600 (6 horas) || Global || ||
wins support
Samba proporcionará servicio de nombres WINS a todas las máquinas de la red si estableces lo siguiente en la sección [global] del fichero smb.conf:
[global]
wins support = yes
El valor por defecto es no, lo cual es usado normalmente para permitir a un servidor Windows NT convertirse en server WINS. Si activas esta opción, recuerda que un servidor WINS Samba actualmente no puede intercambiar datos con ningún servidor de seguridad (o respaldo) WINS NT. Si lo activas, esta opción es mutuamente excluyente con el parámetro wins server; no puedes activar ambas opciones a yes al mismo tiempo, o Samba dará error.
wins server
Samba usará un server WINS existente en la red si especificas esta opción en tu fihero de configuración. El valor para esta opción es la dirección IP o el nombre DNS (no el nombre NetBIOS) del servidor WINS. Por ejemplo:
[global]
wins server = 192.168.220.110
o:
[global]
wins server = wins.example.com
Para que esto funcione, la opción wins support debe estar a no (por defecto). De lo contrario, Samba reportará un error. Puedes especificar sólo un servidor WINS usando esta opción.
wins proxy
Esta opción permite que Samba actúe como proxy para otro servidor WINS, y que además haga 'relay' o reenvío de las peticiones de registro y resolución de nombres que le lleguen a él hacia el verdadero servidor WINS, normalmente fuera de la actual subred. El server WINS puede ser indicado a través de la opción wins server. El proxy retornará la respuesta WINS al cliente. Puedes activar esta opción especificando lo siguiente en la sección [global]:
[global]
wins proxy = yes
dns proxy
Si queires que el Servidor de Nombres de Dominio (DNS) sea usado si un nombre no es encontrado en WINS, puedes establecer la siguiente opción:
[global]
dns proxy = yes
Esto provocará que nmbd haga peticiones para nombres de máquinas usando el servicio de nombres de dominio estandar. Puede que desees desactivar esta opción si no tienes una conexión permanente con tu servidor DNS. Recomendamos usar un servidor WINS. Si no tienes ningún server WINS en tu red, convierte a la máquina Samba en server WINS. No conviertas, sin embargo, a dos máquinas Samba en servidores WINS (uno primario y el otro de respaldo) ya que actualmente no pueden intercambiar sus bases de datos WINS.
name resolve order
La opción global name resolve order especifica el orden de los servicios que Samba usará cuando intente resolución de nombres. El orden por defecto es usar el fichero LMHOSTS, seguido de los métodos de resolución Unix estandares (una combinación de /etc/hosts, DNS, y NIS), después interroga a una server WINS, y finalmente usa broadcasting para determinar la dirección de un nombre NetBIOS. Puedes modificar esto especificando el cambio como sigue:
[global]
name resolve order = lmhosts wins hosts bcast
Esto causa que la resolución use primero el fichero LMHOSTS, luego interroge a un server WINS, el fichero de máquinas del sistema, y finalmente haga broadcasting. No necesitas usar las cuatro opciones si no quieres. Esta opción se cubre con más detalle en la sección 7.3.3, Configurando Samba como Servidor WINS.
max ttl
Esta opción le da el tiempo máximo de vida (TTL) durante el cual un nombre NetBIOS registrado en el servidor Samba permanecerá activo. No deberías alterar nunca este valor.
max wins ttl
Esta opción da el máximo tiempo de vida (TTL) durante el cual un nombre NetBIOS resuelto por un server WINS permanecerá activo. No deberías alterar nunca este valor.
min wins ttl
Esta opción da el tiempo mínimo de vida (TTL) durante el cual un nombre NetBIOS resuelto por un server WINS permanecerá activo. No deberías alterar nunca este valor.