Crear una zona DNS usando dnscmd
El comando dnscmd permite gestionar el servicio DNS desde una interfaz de línea de comandos. Puede ser de gran utilidad para la administración remota de servidores DNS, para automatizar tareas mediante scripting o para configurar nuevos servidores DNS por medio de una instalación desatendida.
En este post veremos algunas otras opciones que nos ofrece el comando dnscmd de forma complementaria a las vistas en el vídeo.
/Info nos muestra información acerca del servidor DNS: nombre completo, bosque y dominio al que pertenece, etc.
Es en realidad la configuración de la sección DNS del registro del servidor ubicada en HKEY_LOCAL_MACHINE \system\currentcontrolset\services\dns\parameters
En un apartado podemos ver también los intervalos de refresco y no refresco del servidor.
El parámetro /Config sirve para modificar los valores del registro del servidor DNS. Algunas de las opciones que se pueden configurar son las siguientes:
Por ejemplo, el siguiente comando deshabilita la recursión de nuestro servidor DNS. Con esto, el servidor no preguntará a otros servidores en caso de no encontrar un registro.
La opción /Statistics nos permite ver (entre muchas otras cosas) en un output muy largo estadísticas del servidor DNS como por ejemplo las queries recibidas y enviadas, información de recursión, el número de timeouts…
El parámetro /ZoneReload vuelve a cargar una zona desde su origen o base de datos.
La opción /ZoneDelete nos permite borrar zonas DNS.
Si la zona está integrada en directorio activo, nos saldrá un error como este:
Para solventarlo, debemos añadir al comando la opción /DsDel para que borre la zona de la partición de Active Directory y la borrará sin problemas. Con /f podemos saltarnos la confirmación de yes or no.
Para borrar registros DNS, utilizamos la opción /RecordDelete . Respecto a la sintaxis, debemos poner, en este orden: zona DNS, nombre del registro y tipo de registro.
Otra utilidad muy interesante que se puede aprovechar con este comando es forzar el inicio de la tarea de Scavenging de los registros DNS del servidor la cual se encarga de borrar los registros que se han marcado como obsoletos o caducados (stale). Para esto se emplea la opción /StartScavenging.
Con la opción /ZoneRefresh podemos forzar la transferencia de zona desde una zona primaria a una secundaria.
También es posible exportar todos los registros de una zona a un archivo .txt con la opción /ZoneExport indicando el nombre de la zona y el nombre del archivo.
La opción /ClearCache nos permite vaciar la caché del servidor DNS.
Entre los problemas que puede dar el comando dnscmd es que debido a que se trata de un comando cmd clásico, la sintaxis es muy rigurosa y no es posible tabular para ver las opciones del comando ni emplear alias como permite actualmente PowerShell, sino que habría que consultar la ayuda y escribir los comandos y sus opciones enteras.
Por último, tal y como se anuncia en la ayuda, Microsoft avisa que dnscmd podría ser borrado en futuras versiones de Windows por lo cual recomienda hacer la transición a PowerShell para gestionar los servidores DNS.
Autor/a: Iván Bravo Muñoz
Fecha de creación: 03/02/2020
Curso: Microsoft MCSA Windows Server 2016 + Azure + AWS
Centro: Tajamar
Año académico: 2019-2020
Linkedin: www.linkedin.com/in/ivan-bravo-munoz