¿Cómo soluciono los problemas con el enrutamiento basado en IP en Route 53?

4 minutos de lectura
0

Obtengo resultados inesperados al probar la resolución de DNS en mi política de enrutamiento basado en IP de Amazon Route 53.

Resolución

Escenario de ejemplo

Tiene registros de enrutamiento basado en IP para clientes con los CIDR 172.32.0.0/16 y 172.33.0.0/16 que apuntan a dos equilibradores de carga de Elastic Load Balancing (ELB). Un equilibrador de carga de ELB se encuentra en Virginia (us-east-1) y el otro en Irlanda (eu-west-1). Los clientes con CIDR 172.32.0.0/16 resuelven el dominio en el equilibrador de carga en us-east-1. Los clientes con CIDR 172.33.0.0/16 resuelven el dominio en el equilibrador de carga en eu-west-1. Sin embargo, los clientes no reciben el resultado esperado.

Nota: El enrutamiento basado en IP no se admite en las zonas alojadas privadas.

Para solucionar problemas de enrutamiento basado en IP, siga estos pasos:

1.    Confirme que ha configurado correctamente los registros de recursos basados en IP de su zona alojada de Route 53 para su caso de uso. Abra la consola de Route 53 y compruebe la ubicación predeterminada especificada en la configuración de la zona alojada de Route 53.

Nota: 

  • Si los bloques de CIDR no se especifican en la recopilación de CIDR que coincide con la dirección IP de origen, Route 53 responde con la ubicación «*» predeterminada.
  • Route 53 responde con NODATA si se cumple lo siguiente:
    No se ha especificado una ubicación «*» predeterminada.
    La consulta se origina en un bloque de CIDR que no coincide con ningún bloque de CIDR especificado de la recopilación de CIDR.
  • Route 53 relaciona las consultas de DNS que tienen un CIDR más largo que el CIDR especificado con el CIDR más corto especificado en la recopilación de CIDR. Por ejemplo, si especifica 2001:db8::/32 como el CIDR de su recopilación de CIDR y recibe una consulta de 2001:0db8:1234::/48, el CIDR coincide. Si especifica 2001:db8:1234::/48 en su recopilación de CIDR y recibe una consulta de 2001:db8::/32, entonces no coincide. Route 53 responde con el registro de la ubicación «*».

Para conocer las cuotas de límite de bloques de CIDR y recopilación de CIDR, consulte Quotas on records.

2.    Compruebe si el cliente se resuelve correctamente.

Si el cliente se resuelve dentro de la nube virtual privada (VPC) y utiliza el solucionador de DNS .2 de VPC, el enrutamiento basado en IP no funciona. Esto se debe a que el solucionador .2 no admite la subred del cliente de EDNS (ECS).

Si el cliente se resuelve fuera de la VPC, ejecute el siguiente comando para comprobar que el solucionador de DNS admite EDNS0:

Linux o macOS

dig TXT o-o.myaddr.google.com -4

Windows

nslookup -type=txt o-o.myaddr.google.com

El siguiente resultado de ejemplo muestra los solucionadores de DNS que no admiten EDNS0:

$ dig TXT o-o.myaddr.google.com -4

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.5.2 <<>> TXT o-o.myaddr.google.com -4
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38328
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;o-o.myaddr.google.com. IN TXT

;; ANSWER SECTION:
o-o.myaddr.google.com. 60 IN TXT "3.209.83.70"

El siguiente resultado de ejemplo muestra los solucionadores de DNS que sí admiten EDNS0:

$ dig TXT o-o.myaddr.google.com -4 @8.8.8.8

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.5.2 <<>> TXT o-o.myaddr.google.com -4 @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30624
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;o-o.myaddr.google.com. IN TXT

;; ANSWER SECTION:
o-o.myaddr.google.com. 60 IN TXT "172.253.8.137"
o-o.myaddr.google.com. 60 IN TXT "edns0-client-subnet 54.82.0.0/24"

3.    Para comprobar la resolución de DNS, utilice el servidor de nombres autorizado de la zona alojada para resolver el registro. Ejecute el siguiente comando. En el siguiente comando de ejemplo, reemplace example.com por su dominio.

dig A example.com +subnet=172.3.0.0/16 @ns-1875.awsdns-42.co.uk

O bien, use dig o nslookup para comprobar que la resolución de DNS funciona según lo esperado. En los siguientes comandos de ejemplo, reemplace example.com por su dominio.

dig example.com @8.8.8.8
nslookup example.com 8.8.8.8

4.    Si configura los registros de comprobación de estado para los registros de recursos basados en IP, utilice estos registros para verificar el estado. Si se produce un error en la comprobación de estado de un registro con una ubicación predeterminada (*), Route 53 devuelve la ubicación predeterminada como respuesta a una consulta de DNS.

Información relacionada

IP-based routing

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año