Comandos de powershell para gestionar tu DNS Server

10 Comandos PowerShell para administrar tu servidor DNS

Compartir

Descubre los 10 comandos de PowerShell para administrar tu servidor DNS Server y tenerlo completamente bajo control de manera sencilla e invirtiendo el mínimo tiempo posible.

En un artículo anterior, describimos los Comandos de PowerShell para desplegar un DNS Server de manera guiada, y tener un servidor de DNS completamente funcional con a penas esfuerzo administrativo.

Además, este proceso se podía guionizar en un pequeño script para replicarlo de manera rápida en caso de necesidad para, por ejemplo, hacer despliegues en otros clientes o para desplegar un nuevo servidor de DNS de manera rápida en caso de caída.

En este nuevo artículo vamos a ver cómo realizar algunas tareas de mantenimiento del DNS Server mediante comandos de PowerShell, seleccionando para ello diez comandos que pueden ayudarnos a administrarlo de manera sencilla.

 

10 comandos de PowerShell para la administración de tu Servidor DNS:

A continuación, vamos a ver algunos cmdlets útiles para la gestión del servicio de DNS, que nos permitirán administrar este servicio dentro de sistemas de servidores de Microsoft minimizando el esfuerzo administrativo.

Hemos de decir, que todos estos comandos pueden ser realizados mediante operación de entorno gráfico, pero mediante el uso de PowerShell se puede ahorrar mucho tiempo.

 

1. Detener el servicio de DNS:

Una de las primeras tareas que necesitamos saber hacer cuando mantenemos un servicio es detener el servicio, por lo que para detener el servicio de DNS lazaremos el siguiente comando.

Este comando en realidad es el que se usa comúnmente para la parada de servicios, pero con el “DNS” que indica que queremos detener el servicio de resolución de nombres:

Stop-Service DNS

Este comando solo será operativo para servidores, en los clientes se podrá parar la cache, pero no el servicio de DNS ya que se refiere al servidor.

Comando 1. Paramos el servicio de DNS en el servidor mediante PowerShell
Comando 1. Paramos el servicio de DNS en el servidor mediante PowerShell

 

2. Arrancar el servicio de DNS:

De igual manera que pasa con la parada del servicio, a la hora de arrancar el servicio de resolución de nombres ejecutaremos un comando genérico para servicios, pero ajustándolo para el servicio que nos ocupa.

El comando es muy similar al anterior, y básicamente solo deberemos cambiar el “stop” por “start”:

Start-Service DNS

Normalmente, este comando no muestra ningún mensaje de estado ni similar, para saber si se está ejecutando se podrá lanzar el comando “Get-Service DNS” o acceder a la consola gráfica. Lanzar este comando

Comando 2. Arrancamos el servicio de DNS en el servidor mediante PowerShell
Comando 2. Arrancamos el servicio de DNS en el servidor mediante PowerShell

 

3. Reiniciar el servicio de DNS:

Ya hemos aprendido a arrancar y parar el servicio, pero en ocasiones necesitamos poder reiniciar, o sea hacer una parada y un arranque rápidos del servicio.

Para hacer esto, y que pase por el ciclo de parada y arranque en un solo comando, se podrá lanzar el comando de reinicio:

Restart-Service DNS

Esto, entre otras cosas, hará que se relean los ficheros de configuración y podremos cargar cambios o solventar algún error puntual.

Con estos comandos, tendríamos lo básico para poder operar el servicio de DNS.

 

Comando 3. Rearrancamos el servicio de DNS en el servidor mediante PowerShell
Comando 3. Rearrancamos el servicio de DNS en el servidor mediante PowerShell

 

4. Comprobar la resolución de nombres:

Otra de las tareas más típicas es la de comprobar la resolución de nombres para ver si el sistema es capaz de resolver un nombre en concreto.

El cmdlet “Resolve-DnsName” realiza una consulta de DNS para el nombre especificado.

Este cmdlet es funcionalmente similar a la herramienta nslookup que permite a los usuarios consultar nombres.

Para ejecutarlo, se puede hacer básicamente de dos maneras que se verán a continuación:

  • Lanzar el comando y que resuelva de la manera que quiera.
  • Lanzar el comando forzando que resuelva un servidor concreto.

A continuación, veremos como hacerlo de las dos maneras.

En este primer caso vamos a ver como hacer la resolución del sitio web “www.jotelulu.com”.

Resolve-DnsName -Name www.jotelulu.com

En este segundo caso vamos a ver como resolver la web “www.jotelulu.com” usando para ello un servidor en concreto.

Resolve-DnsName -Name www.jotelulu.com -Server 10.0.0.1

Comando 4. Comprobar la resolución de nombres mediante comando de PowerShell
Comando 4. Comprobar la resolución de nombres mediante comando de PowerShell

 

5. Mostrar el contenido de la caché de DNS:

En ocasiones, puede ser interesante poder ver en qué estado se encuentra la caché de resolución de nombres de nuestro servidor, o de un cliente. En caso de necesitar hacerlo, se puede hacer mediante el método tradicional de CMD o mediante nuestro potente amigo PowerShell.

Para mostrar el contenido de la caché de DNS server mediante PowerShell podemos lanzar el siguiente comando:

Show-DnsServerCache

Este nos mostrará páginas y páginas de entradas por lo que puede ser interesante volcar la salida a un documento de texto para revisarlo cuidadosamente.

Comando 5- Mostramos el contenido de la caché de DNS mediante PowerShell
Comando 5- Mostramos el contenido de la caché de DNS mediante PowerShell

 

6. Limpiar la caché del servicio de DNS:

 

También es posible que necesitemos limpiar la caché del DNS server de nuestro servidor o nuestro cliente, y en caso de necesitar hacerlo, al margen de las opciones de CMD que tenemos disponibles, podremos usar nuestro propio comando de PowerShell:

Clear-DnsServerCache

Este comando puede lanzarse entre dos consultas para ver el cambio y la bajada de volumen de entradas.

Comando 6. Limpiamos la caché del servicio de DNS mediante PowerShell
Comando 6. Limpiamos la caché del servicio de DNS mediante PowerShell

 

7. Revisar las estadísticas del servicio de DNS:

Una tarea que puede ser interesante para poder hacer revisiones del DNS es el de mostrar las estadísticas del servidor DNS para ver entradas, consultas, etc.

En caso de querer ejecutar esta consulta, se podrá lanzar o desde la consola gráfica o desde un cmdlet de PowerShell.

El cmdlet de PoserShell es el siguiente:

Get-DnsServerStatistics

Una vez más, puede ser interesante volcar la salida a un documento de texto para revisarlo con tranquilidad o para hacer seguimiento y auditoría.

Comando 7. Revisamos las estadísticas del servicio de DNS mediante PowerShell
Comando 7. Revisamos las estadísticas del servicio de DNS mediante PowerShell

 

8. Revisar los detalles de la configuración del servicio de DNS:

Si necesitamos mostrar la configuración de nuestro servidor de DNS para revisarla o auditarla tendremos también un comando de PowerShell disponible. Esto hará que no sea necesario acceder a la consola gráfica para mostrarla.

Para mostrar los detalles de configuración del DNS server:

Get-DnsServer

En este caso también podremos volcar la salida de esta consulta a un archivo de texto (.txt) para revisarlo con tranquilidad o para hacer seguimiento y auditoría de posibles cambios, creando por ejemplo una baseline (línea base).

Comando 8. Revisar los detalles de la configuración del servicio de DNS mediante PowerShell
Comando 8. Revisar los detalles de la configuración del servicio de DNS mediante PowerShell

 

9. Añadir nuevos registros de servicios y equipos

Otra de las tareas típicas de toda infraestructura de resolución de nombres es el alta y la baja de los registros de servicios, equipos y servidores.

Para ello, lo primero que debemos tener en cuenta es que disponemos de distintos tipos de registros dentro del DNS.

 

Add-DnsServerResourceRecordCName -ZoneName <NOMBRE_ZONA> -Name  <ENTRADA>  -HostNameAlias <ALIAS_COMPLETO>

Donde:

  • Add-DnsServerResourceRecordCName: Es el comando para dar de alta el registro de tipo CNAME.
  • ZoneName <NOMBRE_ZONA>: Identifica la zona sobre la que se va a trabajar.
  • Name <ENTRADA>: Es la entrada de registro que se debe dar de alta.
  • HostNameAlias <ALIAS_COMPLETO>: Es el alias de la entrada que se está dando de alta

Un ejemplo de ello puede ser:

Add-DnsServerResourceRecordCName -ZoneName jotelulu.com -Name prueba-nacho -HostNameAlias prueba-nacho-jotelulu.com

Esto sería para el caso de CNAME, pero varía para otros registros, presentando una forma como la siguiente para cada caso.

A continuación, ponemos algunos ejemplos.

Para Registro PTR (puntero):

Add-DNSServerResourceRecordPTR -ZoneName 1.168.192.in-jotelulu.com -Name 12 -PTRDomainName nacho1-jotelulu.com

Para Registro A:

Add-DnsServerResourceRecordA -Name puntero -IPv4Address 192.168.1.122 -ZoneName server1.jotelulu.com -TimeToLive 01:00:00

Para Registro AAA:

Add-DnsServerResourceRecordAAAA -Name «nachopc» -ZoneName «jotelulu.com» -AllowUpdateAny -IPv6Address «fff4::1» -TimeToLive 01:00:00

Para registro MX:

Add-DnsServerResourceRecordMX -Preference 10  -Name «.» -TimeToLive 01:00:00 -MailExchange «mail.jotelulu.com» -ZoneName «jotelulu.com»

Entre otros ejemplos, para ver más ejemplos puede visitar la documentación de PowerShell para DNS.

Comando 9. Añadimos nuevos registros de servicios y equipos al DNS con PowerShell
Comando 9. Añadimos nuevos registros de servicios y equipos al DNS con PowerShell

 

10. Dar de baja registros de servicios y equipos

En caso de tener que retirar una de las entradas de registro de una de las zonas de resolución de nombres se deberá realizar el borrado del registro de DNS mediante el uso del comando “Remove-DnsServerResourceRecord”, que tal como vemos es bastante similar al usado para dar de alta la entrada, cambiando únicamente el verbo inicial.

Remove-DnsServerResourceRecord -ZoneName <NOMBRE_ZONA> -RRType <TIPO_REGISTRO> -Name <ENTRADA> –Force

Donde:

  • Remove-DnsServerResourceRecord: Es el comando para el borrado del registro.
  • ZoneName <NOMBRE_ZONA>: Identifica la zona sobre la que se va a trabajar.
  • RRType <TIPO_REGISTRO>: Es el tipo de registro disponible entre las opciones A, AAA, MX, CNAME, etc.
  • Name <ENTRADA>: Es la entrada de registro que se debe borrar.
  • Force: Fuerza el borrado.

Como en el apartado previo, se debería distinguir en el caso de cada tipo de registro, siendo A, AAA, MX, etc.

Un ejemplo de ello podría ser:

Remove-DnsServerResourceRecord -ZoneName jotelulu.com -RRType A -Name pc-jioller –Force

Comando 10. Damos de baja registros de servicios y equipos del DNS mediante PowerShell
Comando 10. Damos de baja registros de servicios y equipos del DNS mediante PowerShell

 

Conclusiones

Como puedes ver, conocer algunos comandos de PowerShell puede ayudar a optimizar el servidor de DNS de manera realmente sencilla.

Las tareas de administración básicas se pueden realizar usando los cmdlets que se han mostrado, realizando casi la totalidad de las tareas necesarias de esta manera.

Si quieres leer más sobre este tema puedes echarle un ojo al artículo Comandos de PowerShell para desplegar un DNS Server en este mismo blog.

Y si quieres leer un poco más sobre DNS Server, puedes consultar el artículo Qué hacer cuando el Servidor DNS no responde que podrás encontrar dentro de este mismo blog.

¡Gracias por acompañarnos!

Categorías:Cloud y sistemas

Otros posts que te pueden interesar

20 de febrero de 2024
Acompáñanos en este artículo en el que trataremos uno de esos “pains” a los que se enfrenta toda pyme,
15 de febrero de 2024
Acompáñanos y descubre qué es y por qué necesitamos Disaster Recovery. La creciente dependencia de todas las organizaciones de
14 de febrero de 2024
Hablemos de Disaster Recovery: ¿qué son RPO, RTO, MTD o WRT y por qué es importante comprender estos conceptos

Rellena el formulario y nuestro equipo de Sales contactará contigo lo antes posible.

growth@jotelulu.com  |  +34 911 333 712  |  jotelulu.com 

Puedes darte de baja de estas comunicaciones en cualquier momento.  Consulta nuestra Política de privacidad.