¿Cómo funciona el DNS y cómo puedo solucionar los errores de DNS parciales o intermitentes?

8 minutos de lectura
0

¿Cómo funciona el DNS y cómo puedo solucionar los errores de DNS parciales o intermitentes?

Solución

Introducción al DNS

El DNS dirige a los usuarios a las aplicaciones de Internet mediante la conversión de nombres fáciles de recordar (por ejemplo, www.example.com) en direcciones IP numéricas, como 192.0.2.1. Este proceso se denomina «resolución de DNS». Un servidor de nombres autorizado resuelve un nombre de dominio en una o varias direcciones IP, y transmite la dirección IP al cliente a través de la cadena de solucionadores de DNS (por ejemplo, al equipo de alguien que solicita ver un sitio web). Luego, el cliente usa esa dirección IP para conectarse al servidor donde está alojado el sitio web. Si el DNS no funciona correctamente, los servidores DNS no pueden resolver los nombres de dominio. Por lo tanto, los servidores DNS no pueden proporcionar a los clientes la dirección IP del servidor en el que está alojado el sitio web. Eso significa que no se puede acceder a esos sitios web desde Internet.

Para obtener más información, consulte ¿Qué es DNS?

Escenarios de errores de DNS parciales, temporales o intermitentes

En algunos casos, los errores de DNS se producen en un cliente durante un breve período de tiempo o de forma intermitente. A continuación se presentan algunos escenarios habituales en los que se pueden producir errores de DNS parciales:

Escenario 1: Configuración incorrecta de servidores de nombres en el registrador

A veces, la configuración de uno o varios servidores de nombres en el registrador es incorrecta. La búsqueda «whois» proporciona los servidores de nombres configurados en el registrador del dominio. En este caso, si los servidores de nombres registrados no responden o responden con información inesperada durante la resolución de DNS, el solucionador local devuelve un mensaje SERVFAIL. Sin embargo, a veces los solucionadores locales pueden probar la solicitud con un servidor de nombres diferente y devolver el resultado.

Además, los solucionadores locales pueden almacenar en caché los servidores de nombres incorrectos durante el periodo TTL y enviar la consulta siguiente al servidor de nombres mal configurado.

Escenario 2: Modificación de servidores de nombres en la zona alojada

Otra posible causa por la que se puede producir un error de DNS parcial es la configuración incorrecta del registro de NS de un dominio en la zona alojada. En este caso, o bien se han actualizado los servidores de nombres existentes, o bien se han agregado algunos servidores de nombres adicionales al valor del registro de NS.

Cuando esto ocurre, algunos clientes pueden experimentar errores de DNS parciales si el solucionador intenta resolver el dominio con el servidor de nombres incorrecto.

Escenario 3: El solucionador de DNS del cliente no puede resolver el dominio

A veces, los clientes configuran solucionadores personalizados o incorrectos en el archivo de configuración del solucionador, por ejemplo, resolv.conf en Linux. Si es el caso y está resolviendo el dominio desde una instancia de Amazon Elastic Compute Cloud (Amazon EC2) en una Amazon Virtual Private Cloud (Amazon VPC), la instancia de EC2 utilizará los servidores de nombres definidos en resolv.conf.

Escenario 4: Un servidor DNS proporcionado por Amazon limita las consultas de DNS

Los servidores DNS proporcionados por Amazon imponen un límite de 1024 paquetes por segundo por interfaz de red elástica. Los servidores DNS proporcionados por Amazon rechazan cualquier tráfico que supere este límite. Debido a la limitación del DNS, los tiempos de espera del DNS se agotan de forma intermitente. Para solucionar este problema, puede activar el almacenamiento en caché en la instancia o aumentar el temporizador de reintentos de DNS en la aplicación.

Escenario 5: La URL del dominio se resuelve desde Internet, pero no desde la instancia de EC2

Las consultas de DNS para su dominio siempre se resuelven desde la zona alojada privada si:

Si el registro consultado para su dominio no está presente en la zona alojada privada, se producirá un error en la consulta de DNS, que no se reenviará al dominio público. Dado que el registro DNS está presente en la zona de dominio público, se resuelve desde Internet.

Solución de errores de DNS en sistemas operativos basados en Linux

Utilice el comando dig para realizar una búsqueda en el servidor DNS del cliente configurado en el archivo /etc/resolv.conf del host.

$ dig www.amazon.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.49.amzn1 <<>> www.amazon.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13150
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.amazon.com.    IN    A

;; ANSWER SECTION:
www.amazon.com.        41    IN    A    54.239.17.6

;; Query time: 1 msec
;; SERVER: 10.108.0.2#53(10.108.0.2)
;; WHEN: Fri Oct 21 21:43:11 2016
;; MSG SIZE rcvd: 48

En el ejemplo anterior, en la sección de la respuesta se indica que 54.239.17.6 es la dirección IP del servidor HTTP para www.amazon.com.

Si agrega la variable +trace, el comando dig también puede realizar una búsqueda recursiva de un registro DNS, como se muestra en el siguiente ejemplo:

$ dig +trace www.amazon.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.49.amzn1 <<>> +trace www.amazon.com
;; global options: +cmd
.        518400    IN    NS    J.ROOT-SERVERS.NET.
.        518400    IN    NS    K.ROOT-SERVERS.NET.
.        518400    IN    NS    L.ROOT-SERVERS.NET.
…
;; Received 508 bytes from 10.108.0.2#53(10.108.0.2) in 31 ms

com.        172800    IN    NS    a.gtld-servers.net.
com.        172800    IN    NS    b.gtld-servers.net.
com.        172800    IN    NS    c.gtld-servers.net.
…
;; Received 492 bytes from 193.0.14.129#53(193.0.14.129) in 93 ms
amazon.com.        172800    IN    NS    pdns1.ultradns.net.
amazon.com.        172800    IN    NS    pdns6.ultradns.co.uk.
…
;; Received 289 bytes from 192.33.14.30#53(192.33.14.30) in 201 ms
www.amazon.com.    900    IN    NS    ns-1019.awsdns-63.net.
www.amazon.com.    900    IN    NS    ns-1568.awsdns-04.co.uk.
www.amazon.com.    900    IN    NS    ns-277.awsdns-34.com.
…
;; Received 170 bytes from 204.74.108.1#53(204.74.108.1) in 87 ms

www.amazon.com.    60     IN    A    54.239.26.128
www.amazon.com.    1800   IN    NS   ns-1019.awsdns-63.net.
www.amazon.com.    1800   IN    NS   ns-1178.awsdns-19.org.
…
;; Received 186 bytes from 205.251.195.251#53(205.251.195.251) in 7 ms

Además, puede realizar una consulta que devuelva solo los servidores de nombres, como se muestra en el siguiente ejemplo:

$ dig -t NS www.amazon.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.49.amzn1 <<>> -t NS www.amazon.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48631
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.amazon.com.        IN    NS

;; ANSWER SECTION:
www.amazon.com.        490    IN    NS    ns-1019.awsdns-63.net.
www.amazon.com.        490    IN    NS    ns-1178.awsdns-19.org.
www.amazon.com.        490    IN    NS    ns-1568.awsdns-04.co.uk.
www.amazon.com.        490    IN    NS    ns-277.awsdns-34.com.

;; Query time: 0 msec
;; SERVER: 10.108.0.2#53(10.108.0.2)
;; WHEN: Fri Oct 21 21:48:20 2016
;; MSG SIZE rcvd: 170

En el ejemplo anterior, www.amazon.com tiene los siguientes cuatro servidores de nombres autorizados:

  • ns-1019.awsdns-63.net.
  • ns-1178.awsdns-19.org.
  • ns-1568.awsdns-04.co.uk.
  • ns-277.awsdns-34.com.

Cualquiera de estos cuatro servidores tiene autorización para responder a las preguntas sobre el nombre de host de www.amazon.com. Utilice el comando dig para dirigirse directamente a un servidor de nombres concreto. Compruebe si todos los servidores de nombres autorizados de un dominio determinado responden correctamente.

A continuación se muestra un ejemplo del resultado de una consulta de www.amazon.com a uno de sus servidores de nombres autorizados (ns-1019.awsdns-63.net). La respuesta del servidor indica que www.amazon.com está disponible en 54.239.25.192:

$ dig www.amazon.com @ns-1019.awsdns-63.net.
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.49.amzn1 <<>> www.amazon.com @ns-1019.awsdns-63.net.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31712
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;www.amazon.com.    IN    A

;; ANSWER SECTION:
www.amazon.com.        60    IN    A    54.239.25.192

;; AUTHORITY SECTION:
www.amazon.com.        1800    IN    NS    ns-1019.awsdns-63.net.
www.amazon.com.        1800    IN    NS    ns-1178.awsdns-19.org.
www.amazon.com.        1800    IN    NS    ns-1568.awsdns-04.co.uk.
…

;; Query time: 7 msec
;; SERVER: 205.251.195.251#53(205.251.195.251)
;; WHEN: Fri Oct 21 21:50:00 2016
;; MSG SIZE rcvd: 186

La siguiente línea muestra que ns-576.awsdns-08.net es un servidor de nombres autorizado para amazon.com:

;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 0

La presencia de la marca aa significa que el servidor de nombres ns-1019.awsdns-63.net ha proporcionado una respuesta autorizada para el registro de recursos www.amazon.com.

Solución de errores de DNS en sistemas operativos basados en Windows

Utilice la utilidad nslookup para devolver la dirección IP asociada a un nombre de host, como se muestra en el siguiente ejemplo:

C:\>nslookup www.amazon.com
Server:     ip-10-20-0-2.ec2.internal
Address:    10.20.0.2

Non-authoritative answer:
Name:       www.amazon.com
Address:    54.239.25.192

Para determinar los servidores de nombres autorizados para un nombre de host mediante la utilidad nslookup, utilice la marca**-type=NS**:

C:\>nslookup -type=NS www.amazon.com
Server:     ip-10-20-0-2.ec2.internal
Address:    10.20.0.2

Non-authoritative answer:
www.amazon.com    nameserver = ns-277.awsdns-34.com
www.amazon.com    nameserver = ns-1019.awsdns-63.net
www.amazon.com    nameserver = ns-1178.awsdns-19.org
…

Para comprobar si ns-277.awsdns-34.com responde correctamente a una solicitud para www.amazon.com, utilice la siguiente sintaxis:

C:\>nslookup www.amazon.com ns-277.awsdns-34.com
Server:     UnKnown
Address:    205.251.193.21

Name:       www.amazon.com
Address:    54.239.25.200

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años