Clonar registros DNS externos en Microsoft DNS Server

Ya explicamos en otro post como resolvimos el problema de conectar la oficina de Sevilla, que sólo podía tener IP dinámica. Para mantener el direccionamiento actualizado, en el gateway de la oficina de Sevilla tenemos un pequeño script programado que comprueba si la IP asignada por nuestro ISP ha cambiado y en caso afirmativo lo modifica en nuestro proveedor DNS.

Sin embargo, y dado que en Plain Concepts usamos split-brain DNS, necesitamos alguna forma de propagar ese cambio a nuestros DNS internos. Aunque esto podemos conseguirlo de muchas formas, dado que asumimos que esta situación en la que una de nuestras oficinas sólo tiene IP dinámica será temporal, queríamos solucionar el problema de la forma más sencilla posible, pero sin que por ello dejase de ser elegante.

Como era de esperar, todo lo que necesitábaos era una estupenda combinación de PowerShell y el programador de tareas. Una de las grandes novedades del servidor DNS de Windows Server 2008 R2 fue que este podía administrarse desde PowerShell, dejando -desde mi punto de vista- de lado al ya clásico dnscmd.exe. Así pues construí rápidamente un pequeño script que realiza las siguientes tareas:

  1. Consulta a un DNS externo (como Google u openDNS) la resolución del dominio pertinente, ej: oficina-sevilla.plainconcepts.com. Recordad que este dominio lo mantenemos siempre actualizado en nuestro proveedor DNS.
  2. Obtenemos de nuestro DNS interno el registro pertinente al dominio oficina-sevilla.plainconcepts.com. Como de costumbre, se nos devuelve un objeto de PowerShell.
  3. Clonamos el objeto y aplicamos la IP obtenida en el paso 1.
  4. Actualizamos el registro de nuestro DNS interno con el nuevo objeto clonado

El resultado sería el siguiente:

Todo lo que nos quedaría ahora es incluir este escript en el programador de tareas para que se ejecute automáticamente de forma periódica y tendríamos la IP siempre sincronizada con el DNS externo.

Happy resolution!

0 pensamientos en “Clonar registros DNS externos en Microsoft DNS Server”

Deja un comentario

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