Windows Server 2012 R2: Resolución de Nombres de Máquina (Incluye Capturas de Red Explicadas)

Se conoce con “Resolución de Nombres de Máquina” al procedimiento por el cual cuando una máquina quiere contactar a otra, usando el nombre de destino, debe resolver cuál es la dirección IP de la máquina de destino

La posible complicación, es que en realidad, y por omisión, cada máquina perteneciente a un Dominio Active Directory tiene dos nombres que pueden ser diferentes: el nombre NetBIOS, y el “Hostname” que forma parte del FQDN (“Fully Qualified Domain Name”)
Para aclarar y por las dudas, si el “Hostname” es servidor, el FQDN es servidor.dominio.sufijo

Además hay que tener en cuenta que hay métodos para resolución de nombres NetBIOS, y otros diferentes para resolver “Hostnames/FQDNs”; y cada uno tiene un orden en particular que ha cambiado en diferentes versiones del sistema operativo. Y como si fuera poca la complicación, independientemente del nombre que use la aplicación, el sistema si no puede resolver de una forma, intentará por la otra

Vamos a ver el tema, con explicación, de cómo se resuelven los nombres, inclusive con capturas del tráfico de red donde podemos ver realmente cómo trabaja

La infraestructura que utilizaré para esta demostración es muy sencilla:

  • DC1.ad.guillermod.com.ar
    Windows Server 2012 R2
    Controlador de Dominio
    Servicio DNS
    Servicio WINS (para resolución NetBIOS)
    IPv4: 192.168.2.201/24
    IPv6: por omisión (Link-local)
  • CL1.ad.guillermod.com.ar
    Windows 8.1
    Cliente del Dominio
    Configurado DNS a DC1
    Configurado WINS a DC1
    IPv4: 192.168.2.1/24
    IPv6: por omisión (Link-local)

Agrego una captura de IPCONFIG /ALL de CL1 para mostrar además la dirección física (“MAC Address”) de la placa de red

En CL1 he instalado el analizador de protocolo (“Sniffer”) Microsoft Network Monitor 3.4 que es de descarga gratuita para hacer las capturas de red

Para forzar a que el sistema utilice todos los métodos de resolución posibles, ejecutaré un comando que acepta tanto nombre NetBIOS, como “Hostname” o FQDN, como es “PING” usando un nombre no-especificando de qué tipo es

Por lo tanto el comando será “PING NoExiste” y veremos qué formas de resolución utiliza sobre la red

Como la parte que hace en memoria no podremos verla en la red, vamos a aclararla:

  • Cuando tiene que resolver un nombre de tipo “Hostname/FQDN” siempre lo primero que se revisa es si la información no está ya presente en memoria. Puede estar en memoria porque fue resuelta anteriormente y aún resta tiempo para tenerla “cacheada”, o porque está incluida en el archivo HOSTS ya que la implementación de Microsoft es mantener en este “cache” el contenido del archivo
    Si de esta forma no consigue resolver el nombre, procederá como se muestra en las siguientes capturas
  • Cuando tiene que resolver un nombre de tipo NetBIOS, también lo primero que hace es ver si la información no está “cacheada” en memoria.
    Puede estar en memoria por haber sido resuelta anteriormente, este tiempo es fijo de 10 minutos

Además, y para hacer la demostración llimpia y prolija el PING lo ejecutaré desde un archivo BAT que se encarga de borrar la información “cacheada” de “MAC Address”, cache NetBIOS y cache Hostnames/FQDNs

El contenido del BAT es:

arp -d *
nbtstat -R
ipconfig /flushdns
ping NoExiste

Bueno comencemos, y a no asustarse el que no esté familiarizado con las capturas de red :-)
Recordemos que los “caches” no podremos verlos en las capturas

Utilizaré el término en inglés, que es habitual, para cada transmisión (“Frame”)

Los dos primeros “Frames” en realidad no son parte de la captura de red, sino que es información propia del Network Monitor, así que no las veremos

Como tiene que contactar a DC1 que es servidor tanto de DNS como de WINS, lo primero que debe hacer el cliente es resolver la “MAC Address” de DC1, que hace a través del protocolo ARP

Podemos observar en el “frame 3” que es un “Broadcast” a nivel Ethernet preguntando por la “MAC Address” de 192.168.2.201, y adjuntando su propia “MAC Address” para que la guarde DC1

Como DC1 ya conoce la “MAC Address” de CL1, le responde por ARP, pero esta vez con tráfico dirigido a nivel Ethernet en el “frame 4”

Ya pudiendo comunicarse en forma dirigida a nivel IP CL1 y DC1, el cliente pregunta al DNS por la resolución de “NoExiste.ad.guillermod.com.ar” (“frame 5”)

Y en el “frame 6” el servidor DNS le responde que ese nombre no existe (“Name error”)

El paso siguiente es tratar de resolver por WINS, como si se tratara de un nombre NetBIOS, para lo cual en el “frame 7” le envía a WINS un “Query request”

Y por supuesto también WINS le responderá que no tiene registrado a nadie con ese nombre. Pero observen que aún antes que WINS responda, va a intentar resolver por LLMNR. De todas formas podemos verificar en el “frame 9” la no resolución

No habiendo resolución por DNS ni WINS, CL1 trata de resolver a través del protocolo LLMNR (“Link-Local Multicast Name Resolution” – RFC 4795). Para ello utiliza utiliza tanto IPv6 como IPv4, y las direcciones de “Multicast” utilizadas por este protocolo (IPv6: FF02::1:3 – IPv4: 224.0.0.252)

Hace cuatro intentos por IPv6 como muestran los “frames 8, 11, 14 y 16”

Y simultánemanete hace el mismo intento por IPv4 como se observa en los “frames 10, 12, 15 y 17”

Finalmente, al no poder resolver el nombre ni por DNS, ni WINS, ni LLMNR tanto por IPv4 como por IPV6, prueba la última opción que es “Broadcast” por IPv4, aunque como se puede observar antes de finalizar con LLMNR
Acá hay una diferencia con anteriores versiones del sistema operativo pues antes utilizaba “Subnet Broadcast = 255.255.255.255”, y actualmente utiliza “Net Broadcast 192.168.2.255”
Esto se puede ver en los “frames 13, 18 y 19”

 

Resumiendo, al indicarle un nombre no calificado, siendo parte de un Dominio y teniendo configurado tanto DNS como WINS, el sistema utiliza varios métodos, tanto de resolución NetBIOS como de Hostname/FQDN

La resolución de nombres de red es algo que hay que prestarle mucha antención. Es habitual que cuando se experimenta un largo tiempo hasta poder conectarse a una máquina, pero luego todo funciona normalmente, se deba a un problema de resolución de nombres. Por ejemplo si no lo puede resolver por DNS y termine resolviendo por “Net Broadcasts”

Información adicional:

Anuncios
Post a comment or leave a trackback: Trackback URL.

Comentarios

  • aulloacAndres  On 07/08/2014 at 10:51

    Hola Guillermo:

    Primero que todo agradecer tus aportes a la comunidad, ya queson muy interesantes, ayudan a profundizar los conocimientos y en muchas ocasiones nos han servido en el trabajo diario. Quisiera consultarte, debido a que he tenido algunos problemas y tengo la impresión de que podría deberse a resolución de nombres. Te cuento que en mi red tenemos una sede central y varias sedes conectadas mediante MPLS y cada una posee su propio Controlador de Dominio. La sede central posee un AD en Windows server 2012 Stardar y el resto son Windows 2008 R2. Desde hace un tiempo a esta parte, si ves la red de maquinas, solamente se ven los equipos que se encuentran en cada sede y no todas las máquinas de dominio. Sin embargo si los buscas por la red (\\NOMBREDEMAQUINA), o por IP, no existe ningún problema. No tenemos problemas a nivel de conectividad y la replicación según entiendo está funcionando ok. Si me pudieras indicar por donde podríamos comenzar a revisar te lo agradecería enormemente.

    Un gran abrazo

    • Guillermo Delprato  On 07/08/2014 at 13:02

      Hola Andrés, el entorno de red como era desde un principio puede llegar a ser un “dolor de cabeza”, no sólo porque “no veo”, sino además por temas de seguridad, excesivo tráfico de red, lentitud, y que depende totalmente de NetBIOS
      Ya hace tiempo hice un artículo sobre eso: Por Qué Hay Que Evitar el Entorno de Red | WindowServer:
      https://windowserver.wordpress.com/2011/02/26/por-qu-hay-que-evitar-el-entorno-de-red/

      Además “ver” a las máquinas por la red, como te haz dado cuenta no significa para nada que no se pueda, o aún que se pueda, acceder. Si apagas una máquina la verás por un tiempo como si estuviera aún en la red

      Históricamente el entorno de red lo hace un servicio llamado “Computer Browser” que por omisión, ya en W2008R2 viene deshabilitado. Así que si en esas máquinas estás viendo la red en la forma clásica, es que alguien lo puso como arranque automático.
      En W2012R2, también queda por omisión deshabilitado

      La “nueva” forma de visualizar la red es a través de LLMNR, pero para eso los Routers deben permitir tráfico de Multicast, lo cual normalmente no hacen

      Mi opinión personal, no te hagas problemas, ni lo toques :-)
      El servicio “Computer Browser” hace muchísimo tráfico de red, del cual más del 80% es Broadcast (pasa por todos los puertos de los Switchs), en un ambiente WAN es sumamente lento, y además puede generar problemas de seguridad

      ¡Y gracias por el comentario! Me alegro te sirva

  • aulloacAndres  On 07/08/2014 at 13:35

    Muchas gracias Guillermo. Un abrazo.

  • Eduardo  On 07/07/2015 at 13:59

    Hola, muy interesante el aporte que haces, a ver si me das una idea para resolver este problema que me da dolor de cabeza, tengo un server windows 2008 es servidor de dominio y dns, me esta pasando que algunas terminales de repente no pueden ver el host del servidoro sea el nombre, pero si lo busco por ip se ve, no entiendo porque no pueden ver el nombre del server, hago ping al server y responde, hago pin al dns y responde, la verdad no se que hacer, probe de todo.
    Gracias por tu atencion

    • Guillermo Delprato  On 07/07/2015 at 14:38

      Hola Eduardo, esto no es un foro de soporte, estos son sólo comentarios sobre la nota, sólo oriento si puedo
      Si acceden por IP, pero no por nombre el problema está en la resolución de nombres, eso lo pruebas desde el cliente con NSLOOKUP NombreSrv
      Otro tema a tener en cuenta es que ninguna máquina que forma parte de un Dominio debe tener configurados DNS de Internet, ni siquiera como alternativos
      Te recomiendo hagas la pregunta en un foro de soporte, por ejemplo los de Technet en https://social.technet.microsoft.com/Forums/es-ES/home

  • Felipe  On 24/07/2015 at 17:59

    Guillermo excelente aporte a la comunidad de TI

    Pero tengo un problema , teng montado un windws server 2012 en una maquina virtual wmware, de igual manera un windows 8.1 pro en la misma maquina virtual, en el servidor ya cree el controlador de dominio y ya uni el equipo cliente al dominio, el problema es que desde el seevidor no me lo deja administrar y me genera un mensaje de error “No se puede administrar un sistema operativo basado en cliente”.. la pregunta es a que se debe este tipo de mensajes de error , que tendre mal

    • Guillermo Delprato  On 24/07/2015 at 18:32

      Hola Felipe, estos son comentarios sobre la nota, no es un foro de soporte donde preguntar de cualquier tema
      Deberías dirigirte a un foro de soporte para lo que preguntas. Gracias
      Revisa el cortafuegos

  • Camilo Chaparro  On 20/04/2017 at 11:12

    Gracias por el articulo, es muy bueno para los que estamos iniciando en este mundo de redes y servidores.
    tengo un problemilla con la resolución de nombre de mi server 2012 r2 y con esto voy a verificar mas a fondo el tema.

    • Guillermo Delprato  On 20/04/2017 at 11:24

      Hola Camilo, en ambiente de Dominio hay que tener muy bien el tema de resolución de nombres DNS. Si esto no está correcto el Dominio “no funciona”
      Hay tres notas sobre cómo funciona DNS, busca en el blog con “Cómo funciona DNS”
      Y hay cinco notas con demostración y prácticas, busca en el blog con “El servicio DNS”

Trackbacks

Este espacio es para comentarios sobre la nota. No es un sitio de soporte

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: