Guías técnicas

FSSO – Cuando el colector no detecta el cambio de red/IP

En una red donde tenés varios rangos de red con su DHCP, ¿te pasó que cuando un equipo cambia de red no es detectado por el colector? ¿y viste que el registro DNS no se actualizó? Si ya tengo tu atención, seguí leyendo.

Me decidí a escribir sobre esto porque es un problema bastante común, que hace doler bastante la cabeza, y de solución sencilla.

El problema consiste en que cuando cambiamos de red, usualmente se da en notebooks -y probablemente la del presidente de la empresa- al cambiar de una red WiFi a una cableada -o viceversa-. Se da en consecuencia un cambio en el direccionamiento IP de la PC/Notebook en cuestión. El síntoma que observamos es que el cambio de red no se detecta y el usuario pierde privilegios de acceso a Internet –u otros recursos-. Al indagar la causa nos encontramos con que el cambio de direccionamiento no fue actualizado en el DNS Server, ergo ni el FSSO ni el FortiGate han registrado el evento.

Armé un pequeño laboratorio para explicar el problema, consiste en:

  • Dos rangos de red: LAN (192.168.1.0/24) y WiFi (192.168.2.0/24).
  • PC Windows 10 (mkolus-pc).
  • Servidor (fortiXpert-DC) con servicios de Active Directory (fortiXpert.local), DHCP, DNS y Collector Agent.
  • FortiGate-VM.

Y antes de ir a la causa, recordemos un par de cosas respecto a Active Directory:

  • Los equipos unidos a un dominio tienen cuentas parecidas a las de los usuarios que podemos reconocer porque terminan con $. Nuestros equipos de laboratorio tienen las cuentas mkolus-pc$ y fortiXpert-DC$.
  • Las zonas DNS integradas en Active Directory tienen ACLs (Access control Lists) -ACLs- en sus registros, tal como si se tratara de un filesystem.
  • Cuando un equipo se conecta a la red, se envía un pedido de actualización dinámica del registro DNS. Quien lo hace depende de la configuración del scope de DHCP.

Deliberadamente configuré los scopes DHCP de esta forma:

¿Ya están sacando conclusiones como si estuvieran viendo un capítulo de Sherlock Holmes?

Reproduzcamos el problema:

  • Conecto mi PC ficticia al rango WiFi
  • Segundos luego veo que hay un registro DNS para mkolus-pc en el dominio fortixpert.local:

  • Ahora me conecto al rango LAN, luego de un par de minutos… sigue la misma IP. Ejecuto ipconfig /registerdns… la misma. Reinicio… la misma.

¿Qué pasó? ¿Recuerdan lo que les dije respecto a que los registros DNS tienen ACL y dueño, como los archivos? Ahora miren la configuración de los scopes DHCP, específicamente las opciones que están bajo “Enable DNS Dynamic updates according to the settings below”. ¿Qué significan?

  • Dynamically update DNS records only if requested by the DHCP clients: el DHCP Server hace la registración y actualización DNS solo si el host (la notebook, por ejemplo) lo solicita.
  • Always dynamically update DNS records: el DHCP server siempre se encarga de la registración y actualización del DNS.

Y ahora miremos la seguridad del registro DNS para mkolus-pc:

El dueño del registro DNS de mkolus-pc es fortixpert-dc$. Entonces, cuando ingresamos a WiFi el DHCP server hizo nuestro registro DNS, nos movemos a LAN y nuestra notebook trata de hacer la actualización, a lo que el DNS server responde: “Ahhhh, no, este registro no es tuyo”, o en realidad algo como esto:

Un simple caso de “acceso denegado”. Ahora que lo sabemos, ¿cómo lo arreglamos?

La configuración de actualización DNS de los scopes DHCP de toda la empresa, o al menos las sucursales o secciones donde los usuarios se cambian de red, debe estar igual. Elijan que los hosts (clientes) las hagan, o que el DHCP la haga, pero no mezclado porque ocurre este problema. ¿Qué prefiero? En lo personal, que sean siempre los hosts, de otra forma van a complicar la configuración si hay múltiples servidores DHCP -por ejemplo-.

Una vez que ya saben que ese es el problema que están teniendo, es cuestión de arreglar la configuración de los DHCPs y buscar registros DNS cuyo propietario no coincida con lo que elegimos (si el DHCP hace el registro, o los hosts).

El último obsequio que les dejo es un script en PowerShell que vuelca los propietarios de los registros DNS. Es rudimentario, pero hace el trabajo. Solo cambien la asignación de la variable “Zona” por la zona DNS que les interesa, y ejecútenlo en el DNS Server usando el “Active Directory Module for Windows PowerShell”:

En este caso, que quiero que los hosts hagan la registración DNS, observamos que el dueño del registro es fortixpert-dc$.

Espero ahorrarles tiempo y dolores de cabeza con esto, y hablo desde la experiencia.

Como siempre, la sección comentarios está abierta para preguntas, sugerencias y agregados.

 

Maximiliano Kolus
mkolus@druidics.com.ar
Druidics

Contenidos relacionados

2 comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *