05 enero 2012

Ping usando NetBios y mDNS

Cuando usaba Ubuntu, o Mint basado en Ubuntu, podía administrar mi red local sin tener que preocuparme por si los PCs tenían asignadas direcciones IP estáticas o dinámicas asignadas por DHCP por el router, ya que podía acceder mediante las direcciones nombre.local; este formato es el Fully Qualified Domain Name o FQDN.

Cuando me cambié a Debian, por algún motivo el mismo sistema no funcionaba. Pero hoy, tras leer este enlace que habla sobre Samba (el sistema que implementa en Unix el protocolo utilizado para los grupos de trabajo de Windows), mencionaban una pista que me ha sido de ayuda.

La solución no estaba en utilizar el sistema NetBios (el utilizado por Samba), sino el sistema mDNS, que precisamente es el que utilizaba anteriormente. Sin embargo, he configurado ambos sistemas.

Para usar NetBios y mDNS es necesario instalar los siguientes paquetes:

aptitude install libpam-winbind libnss-winbind libnss-mdns

Actualización 1/06/2012: Parece que ahora, en Debian wheezy, la libnss_wins se encuentra en el paquete libnss-winbind, por tanto, ya no es necesario instalar el paquete libpam-winbind. En caso de que no estéis seguros de en qué paquete pueda estar la biblioteca, podéis instalar el paquete apt-file, que te permite buscar archivos incluso en aquellos paquetes que no tienes instalados.

Una vez instalados estos paquetes, que instalarán las bibliotecas libnss_wins y libnss_mdns, necesarias para poder configurar correctamente el sistema, editaremos el archivo /etc/nsswitch.conf y añadiremos, en orden de preferencia, a la línea hosts: los sistemas wins y mdns que queremos utilizar para resolver los nombres, quedando así:

hosts: files wins mdns dns

De esta forma, el sistema primero buscará en el archivo /etc/hosts, si no lo encuentra utilizará el sistema NetBios, el mDNS y, finalmente, si no lo encuentra recurrirá al servidor DNS configurado.

Con todo ello, podemos hacer ping utilizando el nombre de red del PC:

ping nombre

O bien nombre.local:

ping nombre.local

Un saludo,
Morpheus

3 comentarios:

Mu dijo...

Creo que una manera más fácil y automática sería instalar el demonio avahi.

https://help.ubuntu.com/community/HowToZeroconf

A mí en Debian Testing me funciona desde la instalación del sistema.

Mu dijo...

En cualquier caso, has hecho un buen artículo que puede servir para hilar más fino, especialmente creo que lo de netbios, por si quieres entenderte con máquinas windows.

Morpheus dijo...

@Mu

Precisamente se trata de hacer uso de avahi, que tienen todos mis pc instalado; por alguna extraña razón, no estaba configurado en /etc/nsswitch.conf, cosa que sí lo está si hecho un vistazo al mismo archivo en ubuntu.

En cuanto al soporte de NetBios, es lo que yo creía que me proporcionaba esa manera de obtener los nombres de red, así que es lo que busqué; sin embargo, gracias a ese enlace y a analizar las bibliotecas libnss_* instaladas es lo que me ha hecho ver que realmente se trataba de zeroconf y avahi.

De todos modos, gracias por tu comentario.

Nos leemos en /. :P