DNSTrustManager 04-18-2023

Comandos de DNS para Windows

DNS Commands for Windows

A veces, es necesario comprobar cómo se está comportando el DNS en sus configuraciones, ya sean simples o complejas. Por suerte, los ordenadores traen una utilidad integrada que ayuda a hacerlo. Este recurso explica una serie de comandos útiles en PowerShell y el símbolo del sistema de Windows y expone las diferencias entre los dos shells. Entremos, pues, en materia. (Aunque, siendo realistas, seguramente ni esté leyendo esto porque, con toda probabilidad, se ha saltado esta parte y ha ido directamente a los comandos. ¡Típico!) .

Nota: Todos los ejemplos se refieren a un sistema que ejecute Windows10.

Diferencias entre el símbolo del sistema de Windows y Windows PowerShell

Windows introdujo su símbolo del sistema (CMD) original para los sistemas operativos de Microsoft en 1981. Este programa funciona «por debajo» de Windows y proporciona un mayor control sobre el sistema. Se ejecuta en una simple ventana negra que muestra un prompt. Dependiendo del equipo, el prompt sería algo parecido a esto: C:\> o C:\Users\example. Esta herramienta permite ejecutar comandos de una sola línea.

PowerShell en Windows en 2006. Este shell se ejecuta en una ventana azul y utiliza unos comandos llamados cmdlets, en lugar de comandos CMD o MS-DOS. Incluye un sistema de secuencias de comandos y funciones de administración integradas, y puede ejecutar comandos Batch. Esto significa que se puede completar una serie de cmdlets, en lugar de un solo comando cada vez. A diferencia del símbolo del sistema de Windows, PowerShell no está limitado a programas de consola. La versión actual , que es compatible con . PowerShell también puede acceder a diferentes bibliotecas de varios sistemas.

Cómo acceder al símbolo del sistema de Windows

Hay varias formas de arrancar el símbolo del sistema de Windows. Una de ellas es hacer clic en el icono de búsqueda de la barra de tareas y escribir «símbolo del sistema» o «cmd». La aplicación debería aparecer, entonces, en la parte superior de la ventana de búsqueda, bajo «Mejor coincidencia».

Si le gustan los atajos de teclado tanto como a mí, también puede presionar Win + R y se abrirá el comando «Ejecutar». Escriba «cmd» y haga clic en «Aceptar». Así de sencillo.

Cómo acceder a Windows PowerShell

Se puede acceder a PowerShell de la misma forma en que se accede al símbolo del sistema de Windows, pero, en lugar de escribir «cmd» en la ventana de búsqueda o del comando «Ejecutar», escribimos «PowerShell». Eso sí, si utiliza la opción de búsqueda, verá que hay una pequeña diferencia, ya que al introducir «PowerShell», aparecen dos opciones: Windows PowerShell y Windows PowerShellISE. Aquí voy a utilizar el Windows PowerShell básico.

Otra opción es presionar Win + X. Esto abrirá un menú nuevo que le dará la posibilidad de acceder a PowerShell como administrador. En este menú aparecen también otras herramientas de Windows, como el comando «Ejecutar».

¿Sabía que…? PowerShellISE es una aplicación host para PowerShell. «ISE» son las siglas de «Integrated Scripting Environment» (entorno de secuencias de comandos integrado). Esta opción ofrece una interfaz, mientras que el PowerShell estándar se parece más al símbolo del sistema.

Comandos del símbolo del sistema de Windows para DNS

Y por fin llegamos a la parte que, sin duda, más le interesa. A continuación, expongo varios comandos CMD de Windows que le ayudarán a diagnosticar o verificar su DNS. (No se preocupe, que como tengo mucha imaginación, voy a fingir que mi trabajo no ha sido en vano y que no se ha saltado las secciones anteriores para venir a esta directamente).

nslookup

El comando «nslookup» ayuda a diagnosticar problemas con la resolución de nombres DNS y es comparable al comando «dig» en Mac y Linux. Puede encontrar la dirección IP de un host o realizar una búsqueda de DNS inversa (para encontrar el nombre de dominio de una IP). «nslookup» también puede ofrecer información sobre los registros DNS para su dominio.

Un comando «nslookup» sería algo así: C:\Users\username>nslookup dnsmadeeasy.com

En este ejemplo, hice una consulta simple para obtener la dirección IP de «DNS Made Easy». Como respuesta, recibí la dirección IPv6 e IPv4 para el dominio. La razón por la que dice «non-authoritative answer» (respuesta no autoritativa) es que estoy utilizando un servidor recursivo para la consulta.

Búsqueda de DNS inversa

Si tiene una dirección IP y necesita el nombre del dominio, puede realizar una búsqueda de DNS inversa. La consulta se hace de la misma manera que en el ejemplo anterior, pero (como habrá deducido) se busca lo contrario:

C:\Users\username>nslookup 162.243.68.201

Comando «set»

Pongamos que quiere encontrar el servidor de nombres para un dominio concreto o configurar un parámetro específico en la línea de comandos. En este caso, utilizaría el comando «set» de Windows. Por ejemplo:

C:\Users\username>nslookup

>set q=ns

>dnsmadeeasy.com

(Hay que pulsar «Intro» después de escribir cada comando)

El resultado debería ser algo así:

Búsqueda de registros DNS

También puede utilizar los comandos «nslookup» y «set» para verificar o diagnosticar los registros DNS para su dominio. El proceso es el mismo que en el ejemplo anterior, con la diferencia de que, en este caso, se especifica el registro para el cual se desea realizar la consulta. Con esta información, se puede abordar rápidamente cualquier error o problema que detecte. En la captura de pantalla de aquí abajo, realicé una búsqueda para los registros MX, PTR, y SOA, pero, por supuesto, no son los únicos que se pueden consultar.

C:\Users\username>nslookup

>set q=mx

>dnsmadeeasy.com

(Hay que pulsar «Intro» después de escribir cada comando)

Consejo: Para consultar varios tipos de registros, no es necesario escribir «nslookup» para cada uno de ellos. En lugar de eso, introduzca el comando «nslookup» inicial y, a continuación, ejecute comandos «set» para cada registro. Esto puede hacerlo incluso si después empieza a verificar registros para un dominio diferente.

Resultados de los comandos para registros DNS: definiciones

  • Responsible mail addr (Servidor de correo responsable): representa el correo electrónico del administrador del dominio.
  • Serial (Serie): el número de serie del archivo de zona.
  • Refresh (Actualización): el tiempo que tardará un servidor DNS secundario en solicitar información nueva si cambia el número de serie del servidor principal.
  • Retry (Reintento): si el servidor principal no responde a una solicitud, volverá a conectar en el período de tiempo indicado.
  • Expire (Expiración): período de tiempo en el que expirará la caché del DNS secundario.
  • Default TTL (TTL predeterminado): hace referencia al tiempo máximo durante el que se almacenará un registro en caché antes de que se actualice.

Consejo: Nunca está de más limpiar la caché del DNS antes de ejecutar comandos. Para ello, escriba «ipconfig/flushdns» y pulse «Intro». Esto debería borrar la caché.

Comando «debug» para DNS

Para obtener información adicional sobre el DNS de su dominio, puede utilizar el comando «debug», que proporcionará la información del encabezado de las solicitudes al servidor DNS (ver la siguiente captura de pantalla).

C:\Users\username>nslookup

>set debug

>example.com

Comando «ping»

Para diagnosticar la red, puede ejecutar un comando «ping» en CMD, que sirve para medir la latencia de una conexión en una ubicación de destino. A efectos de demostración, voy a realizar una prueba de ping con 8.8.8.8, la dirección de DNS pública de Google.

C:\Users\username>Ping 8.8.8.8

Así, se sabe el tiempo total que se tarda en obtener una respuesta del servidor al que se le hace el ping.

Comando «traceroute»

Otro comando útil para el diagnóstico de redes es el comando «traceroute», que traza la ruta de un paquete desde el punto de origen hasta el destino. Resulta muy útil sobre todo para solucionar problemas de conectividad. En la siguiente captura de pantalla, hago un traceroute al nombre de dominio www.example.com y su dirección IP.

C:\Users\username>tracert 127.0.0.1

C:\Users\username>tracert www.example.com

Lo que hace el comando es comprobar la ruta que siguen los paquetes para llegar a su destino. Las diferentes paradas enumeradas en esta lista se conocen como «saltos» o «hops». Además del número de saltos, se ve también el tiempo que se ha tardado en responder a la consulta. Esta información puede ayudarle a mejorar la velocidad de su DNS o a identificar routers problemáticos.

Consejo: El símbolo del sistema guarda un historial de los comandos recientes. Si necesita ver un comando que se haya introducido anteriormente durante la sesión, presione la tecla de la flecha hacia arriba para ir pasando de comando en comando, tal y como se muestra en el GIF de aquí arriba.

Comandos de DNS para Windows PowerShell

Si prefiere la utilidad Windows PowerShell, esta es su sección. Estos son los equivalentes de los comandos de Windows que acabamos de ver en PowerShell:

nslookup: Resolve-DnsName en PowerShell

En PowerShell, el comando «nslookup» es «Resolve-DnsName».

PS C:\Users\username>Resolve-DnsName dnsmadeeasy.com (o C:\Users\username>Resolve-DnsName 162.243.68.201)

Consejo: Para ahorrar tiempo en PowerShell, empiece a escribir las primeras letras de un cmdlet y pulse el tabulador para completar el resto automáticamente. Por ejemplo, al escribir «reso» y pulsar el tabulador (reso + Tabulador), PowerShell autocompletará «Resolve-DnsName». Lo mismo para cualquier otro cmdlet, como «Test-Connection» (empiece a escribir «test-con» y pulse el tabulador, y así con todos).

Búsqueda de registros DNS en Windows PowerShell

PowerShell utiliza el cmdlet «Resolve-DnsName» para las búsquedas de registros. Para especificar el registro en cuestión, deberá completar el cmdlet añadiendo «-type».

PS C:\Users\username>Resolve-DnsName dnsmadeeasy.com -Type MX (o el registro que elija).

Fíjese en que no importa si escribo «-Type» o «-type»; el cmdlet se ejecuta igual porque, en este caso, PowerShell no distingue entre mayúsculas y minúsculas.

Comando «ping» en PowerShell

En PowerShell, «Test-Connection» es el equivalente del comando «ping».

PS C:\Users\username>Test-Connection dnsmadeeasy.com

Los resultados se presentan de manera distinta, pero seguimos viendo el origen (nombre del ordenador), los saltos y el tiempo que se ha tardado en recibir una respuesta.

Traceroute en PowerShell

Tracert en PowerShell es «tracert». En esta ocasión, el cmdlet sí que se llama igual que el comando de CMD.

PS C:\Users\username>tracert example.com

Herramienta de búsqueda de DNS

Los recursos en línea también son de gran ayuda para solucionar problemas con el DNS. Estas herramientas son especialmente útiles, ya que se puede acceder a ellas desde cualquier lugar y con cualquier dispositivo. Por ejemplo, la de Constellix (nuestra empresa asociada) puede recuperar registros DNS y realizar comprobaciones en función de la ubicación geográfica. También realizará búsquedas en cualquier servidor de nombres que se especifique. Los registros compatibles son A, AAAA, CNAME, MX, TXT, NS, SOA y SRV.

Otras de las ventajas de utilizar la herramienta de búsqueda de DNS de Constellix son que se pueden realizar comprobaciones en diferentes dominios o servidores de nombres en una misma sesión y que los resultados se pueden filtrar por dominio, tipo de registro, solucionador o ubicación, además de poder maximizar o minimizar cada comprobación. Además, también puede copiar la URL de los resultados y enviársela a su equipo por correo electrónico, algo que, además de resultar muy cómodo, ahorra muchísimo tiempo.

En resumen

Las opciones que acabamos de ver permiten verificar el DNS y solucionar problemas. Puntos clave: el símbolo del sistema, PowerShell y las herramientas de DNS en línea proporcionan el servidor de nombres, las instrucciones de registro y otra información relativa al DNS, pero su funcionamiento varía. CMD utiliza comandos de una sola línea, mientras que PowerShell utiliza cmdlets y puede ejecutar comandos Batch. Hay recursos, como la herramienta en línea de búsqueda de DNS de Constellix, que realizan comprobaciones en función de la información que escriba.

Evidentemente, esta no es, ni mucho menos, una guía completa del símbolo del sistema o de PowerShell. Ambos shells sirven para mucho más. A continuación, le dejo algunos enlaces que le ayudarán a conocer mejor estas dos utilidades.

Si le ha parecido interesante este artículo, estos otros recursos podrían resultarle útiles: