Cómo resolver nombre de máquinas Linux (Ubuntu) en una red local

En casa tengo una red local con varios PCs y algunas máquinas virtuales, principalmente con Windows y Linux. En el CPE tengo configurado DHCP para asignación de IPs. Pura comodidad.

Para poder conectarme de una máquina a otra conociendo sólo el hostname es necesario que haya una resolución del hostname. En mi caso, me encontré con el siguiente escenario:

  • Máquina Windows resuelve hostname de otra máquina Windows.
  • Máquina Windows no resuelve hostname de una máquina Linux.
  • Máquina Linux no resuelve hostname de una máquina Windows.
  • Máquina Linux no resuelve hostname de una máquina Linux.

Para poder dar resolución de hostnames en la red, tuve que hacer lo siguiente:

1. Cómo hacer que máquina Windows resuelva hostname de máquina Linux (Ubuntu)

En este caso la solución es instalar el paquete winbind en la máquina Linux (destino), para que utilice el protocolo NetBIOS de Windows y publique su resolución de nombres.

sudo apt-get install winbind

Una vez instalado, el fichero /etc/nsswitch.conf habrá añadido la palabra wins en la entrada de hosts. El fichero tendrá una pinta así:

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat

hosts:          files wins dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Con esto, ya deberías de poder hacer ping a la máquina Linux desde una máquina Windows y resolver correctamente su hostname.

2. Cómo hacer que máquina Linux (Ubuntu) resuelva hostname de máquina Linux (Ubuntu)

Para este tema tuve que instalar en ambas máquinas Linux el paquete avahi-daemon . Con este paquete, ya se resuelven los hostnames añadiendo el sufijo “.local”.

Esto probablemente te modificará el fichero /etc/nsswitch.conf de ambas máquinas y dejará la línea de hosts así:

hosts: files wins mdns4_minimal [NOTFOUND=return] dns mdns4

Con esto, ya debes de poder resolver nombres entre máquinas Linux con el hostname estilo “.local”:

[23:04:02] yvoictra|trinity:~$ ping tesla.local
PING tesla.local (192.168.1.111) 56(84) bytes of data.
64 bytes from tesla.local (192.168.1.111): icmp_seq=1 ttl=64 time=0.455 ms
64 bytes from tesla.local (192.168.1.111): icmp_seq=2 ttl=64 time=0.524 ms
64 bytes from tesla.local (192.168.1.111): icmp_seq=3 ttl=64 time=0.489 ms
64 bytes from tesla.local (192.168.1.111): icmp_seq=4 ttl=64 time=0.499 ms

Y ahora queda poder resolver máquinas Windows desde máquinas Linux. De momento no he encontrado la manera de hacerlo… pero seguiré investigando. Cuando lo consiga actualizaré el post (Si alguien me echa un cable os lo agradeceré…).

En resumen, el tema en mi red local ha quedado:

  • Máquina Windows resuelve hostname de otra máquina Windows.
  • Máquina Windows resuelve hostname de una máquina Linux.
  • Máquina Linux no resuelve hostname de una máquina Windows.
  • Máquina Linux resuelve hostname de una máquina Linux.

¡Y esto es todo amigos!

También te puede interesar

2 comentarios

Dejar un comentario