Los registros DNS suelen ser gestionados de manera dinámica por su servidor DNS. Sin embargo, en ocasiones, puede que necesite crear, editar o eliminar manualmente varios tipos de registros DNS. O incluso agregar diversas tareas DNS a scripts de automatización. Es en momentos como estos cuando el uso de los cmdlets DNS de PowerShell es la mejor opción.
Esta publicación de blog tiene un video complementario creado por David Lamb, colaborador de TechSnips. ¡Siéntase libre de verlo o, si prefiere texto, continúe leyendo!
Visualización de registros DNS con cmdlets DNS de PowerShell
Puede ver todos los registros de recursos de una zona DNS dada simplemente utilizando el cmdlet DNS de PowerShell Get-DnsServerResourceRecord
. Utilizando este cmdlet, puede especificar el parámetro ZoneName
que listará todos los registros DNS en esa zona.
Como puede ver a continuación, esto genera una lista bastante extensa de registros.

Este comportamiento resalta una de las ventajas de este cmdlet en particular sobre la consola DNS gráfica. La vista le proporciona todos los registros de esta zona, independientemente de en qué carpeta se encuentren. En la consola gráfica, llevaría bastante tiempo reunir esta información.
Ahora, reduce un poco esta lista. Usando el mismo cmdlet, pero agregando el parámetro RRType
para buscar registros A (hosts IPv4) y filtrando los registros donde el Tiempo de vida (TTL) es mayor que 15 minutos nos da una lista más manejable. Puedes usar el cmdlet Where-Object
para filtrar en muchas propiedades diferentes de registros DNS.

Llevando esto un paso más allá, también puedes buscar registros en una zona DNS diferente e incluso en diferentes servidores DNS.
En el ejemplo a continuación, buscaremos registros A en la zona canada.corp.ad en el servidor DNS DC03

Agregando y Eliminando Registros de Host A
Para agregar un registro de host, necesitarás usar el cmdlet DNS de PowerShell Add-DnsServerResourceRecordA
. En el ejemplo a continuación, necesitas agregar un registro de host para una nueva impresora que estás agregando a la red. Se agregará a la zona corp.ad con el nombre reddeerprint01, y su dirección IP es 192.168.2.56.

Si resulta que necesitas eliminar un registro, quizás la impresora haya sido desmantelada, puedes usar el siguiente código para eliminar el registro de host que acabamos de crear:
Agregando y Eliminando Registros de Host AAAA
También es igual de fácil agregar un registro de host IPv6. Por supuesto, estos registros difieren ligeramente, ya que se enumeran como registros AAAA. Puede notar que ahora estamos utilizando el cmdlet de DNS de PowerShell Add-DnsServerResourceRecordAAAA
. Es un cambio sutil, pero importante.
Agregue un registro a la zona corp.ad para el nuevo servidor de Intranet de TI en fc00:0128 y luego verifique rápidamente que se haya creado con el siguiente comando.

Agregar registros de búsqueda inversa (PTR)
Usando los cmdlets de DNS de PowerShell, también puede agregar registros PTR. Un registro de búsqueda inversa permite al cliente consultar a un servidor DNS para solicitar el nombre de host para una dirección IP proporcionada.
Crear un registro PTR es un proceso relativamente fácil, pero hay un detalle importante que deberá conocer antes de comenzar a agregar registros PTR. Las zonas de búsqueda inversa no se crean de forma predeterminada. Deberá configurar su zona de búsqueda inversa antes de agregar registros. Afortunadamente, es relativamente fácil de hacer.
Creación de una zona DNS
Use el cmdlet de DNS de PowerShell Add-DnsServerPrimaryZone
para crear una nueva zona DNS. En este caso, dado que está creando una zona de búsqueda inversa, proporciónele la ID de red.
En este ejemplo, también he elegido establecer el alcance de replicación en todo el bosque de AD, y he dirigido específicamente DC03 como el servidor DNS preferido:

Ahora que la zona de búsqueda inversa está en su lugar, puedes agregar un registro PTR para una nueva impresora llamada CYQF-Printer-01.canada.corp.ad que tiene una dirección IP de 192.168.2.56. Dado que este registro es para la zona canada.corp.ad, apuntarás al servidor DNS DC03.
Ahora que la zona está creada, creemos un registro PTR usando el comando Add-DnsServerResourceRecordPtr
. Al usar este cmdlet, es importante tener en cuenta algunas cosas.
- Debes especificar el nombre de la zona usando la ID de red en orden inverso, luego agregar .in-addr.arpa. Entonces, para nuestra ID de red 192.168.2.0/24, el nombre de la zona es 2.168.192.in-addr.arpa.
- El parámetro
Name
es la parte del host de la dirección IP. Para nuestra impresora en 192.168.2.56, elName
es 56.
Una vez que tengas esa información, el código necesario para crear el registro PTR es relativamente simple, aunque un poco largo:

Agregar Registros de Alias (CNAME)
Para terminar este tutorial, crea un registro de alias de host o un registro CNAME usando el cmdlet Add-DnsServerResourceRecordCName
.
Estos registros te permiten especificar un alias para un registro de host existente en la zona. Esto se vuelve especialmente útil, por ejemplo, si deseas proporcionar a tus usuarios financieros una dirección para su aplicación financiera habilitada para la web.
Puedes crear un alias llamado finanzas y apuntarlo al servidor web webapp25.corp.ad. Una vez que la aplicación se haya migrado al nuevo servidor web con un nuevo nombre de host, deberías cambiar el registro CNAME para que apunte a finanzas, que ahora señala al nuevo host. De esta manera, los usuarios no tendrán que actualizar sus marcadores. Podrán seguir accediendo a su aplicación utilizando la dirección finanzas.corp.ad.

Si deseas profundizar en DNS y conocer algunas capacidades más avanzadas, asegúrate de revisar todos los otros mensajes DNS aquí.
Resumen
Con esto concluye nuestro tutorial sobre el uso de PowerShell con registros DNS. Con el conocimiento que has adquirido aquí, ahora deberías poder gestionar de manera interactiva o incluso automatizar grandes cantidades de registros DNS si te lo propones.