¿Cómo puedo identificar y solucionar los problemas de configuración de DNSSEC en Route 53?
La resolución de DNS para los solucionadores que admiten DNSSEC (por ejemplo, 8.8.8.8 o 1.1.1.1) devuelve las respuestas SERVFAIL en Amazon Route 53 debido a una configuración incorrecta de DNSSEC.
Resolución
Paso 1: Confirme que la configuración de DNSSEC está causando el error de resolución de DNS
1. Ejecute el comando dig para forzar la consulta a través del solucionador de DNS de Google, 8.8.8.8. El solucionador de DNS de Google admite DNSSEC y devuelve una respuesta SERVFAIL si DNSSEC está mal configurado. En el siguiente comando de ejemplo, reemplace dnssec.example.live por su dominio.
$ dig dnssec.example.live @8.8.8.8
El resultado de los comandos anteriores muestra una respuesta SERVFAIL:
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.5.2 <<>> dnssec.example.live @8.8.8.8 ;; global options: +cmd ;; Got answer: ;; -->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 30778 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;dnssec.example.live. IN A ;; Query time: 24 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Thu Apr 21 18:13:57 UTC 2022 ;; MSG SIZE rcvd: 52
2. Vuelva a ejecutar el comando dig y configure el indicador cd. El indicador cd resuelve la consulta sin comprobar si hay DNSSEC. En el siguiente comando de ejemplo, reemplace dnssec.example.live por su dominio.
$ dig dnssec.example.live @8.8.8.8 +cd
El siguiente ejemplo de salida confirma que la respuesta SERVFAIL se debió a una mala configuración de DNSSEC:
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.5.2 <<>> dnssec.example.live @8.8.8.8 +cd ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30235 ;; flags: qr rd ra cd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;dnssec.example.live. IN A ;; ANSWER SECTION: dnssec.example.live. 300 IN A 10.10.10.10 ;; Query time: 28 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Thu Apr 21 18:15:51 UTC 2022 ;; MSG SIZE rcvd: 68
Paso 2: Identifique el registro DS creado en la zona principal
Nota: El registrador añade el registro DS del TLD. Por lo tanto, la zona principal del dominio «example.com» es la zona «.com». En este ejemplo, la zona principal de «dnssec.example.live» es «example.live».
1. Ejecute el comando dig+trace para ver todos los servidores de delegación y nombres de la zona principal:
dig +trace dnssec.example.live >>truncated for convenience example.live. 3600 IN NS ns-xxx.awsdns-xx.net. example.live. 3600 IN NS ns-xxxx.awsdns-xx.org. example.live. 3600 IN NS ns-xxxx.awsdns-xx.co.uk. example.live. 3600 IN NS ns-xxx.awsdns-xx.com. example.live. 3600 IN DS 28927 13 2 133329D78FFCD003D39BAB9386FC18A49807584CD42042B3F53E1293 8F63C5A7 example.live. 3600 IN RRSIG DS 8 2 3600 20220508154435 20220417144435 32325 live. HzdzyWb8+8G1vbzMWR/7usqN5GihWpuToRKnWv3NSXPnzzYaAFrkuYlU pX8izzvnXk/uyiCOcMShQPKfybgviNkm+yfyTwm3rOso8amJDz0Jz8ml lz7jhgH0k04gLbbT7i8Ez8k8qPLB9MVb1jtVz7rjl6k4Y4m38aHUMy0D lxk= ;; Received 404 bytes from 65.22.22.1#53(v0n2.nic.live) in 1 ms dnssec.example.live. 10 IN NS ns-xxxx.awsdns-xx.org. dnssec.example.live. 10 IN NS ns-xxx.awsdns-xx.com. dnssec.example.live. 10 IN NS ns-xxxx.awsdns-xx.co.uk. dnssec.example.live. 10 IN NS ns-xxx.awsdns-xx.net. dnssec.example.live. 300 IN DS 41670 13 2 DE085966266F92FA81BBE2829AD9CD8C2C7FC8109D748F49B5A99D2F A1893581 dnssec.example.live. 300 IN RRSIG DS 13 3 300 20220421192820 20220421172320 53547 example.live. xdwGnGasWO2sbZQoAfYdZK2bAMcpYOjMR+mg2ilt00XDIwrPc/Qac1k2 Lc2NpAcFpgb3KbhzFxpd3Z7qXjPsvw== ;; Received 352 bytes from 205.251.197.102#53(ns-xxxx.awsdns-xx.org) in 6 ms dnssec.example.live. 300 IN A 1.1.1.1 dnssec.example.live. 300 IN RRSIG A 13 3 300 20220421192821 20220421172321 51615 dnssec.example.live. sMzXesnw+7pSHK2Mlkossyjml8sK7RhgKyu50J/P3/TEeChPzia8EfDb nbv3fFDxXQcbqPH+M+6KlQ7JrAmBig== ;; Received 187 bytes from 205.251.192.150#53(ns-xxx.awsdns-xx.com) in 14 ms
2. Para comprobar el registro DS en la zona principal, ejecute la siguiente consulta en los servidores de nombres de la zona principal (en este ejemplo, example.live):
`$ dig DS dnssec.example.live @ns-xxx.awsdns-xx.net. +short ` 41670 13 2 DE085966266F92FA81BBE2829AD9CD8C2C7FC8109D748F49B5A99D2F A1893581
Configure el registro DS en la zona principal. A continuación, compruebe el registro DS con el valor cifrado del KSK público de la zona secundaria para confirmar que el registro DS es correcto.
Paso 3: Confirme que la firma de DNSSEC esté activada en la zona alojada
Ejecute el siguiente comando para confirmar que la firma de DNSSEC está activada en la zona alojada:
$ dig DNSKEY dnssec.example.live @ns-xxxx.awsdns-xx.org +noall +answer +multiline
El siguiente resultado confirma que la firma de DNSSEC está activada y muestra las claves públicas presentes en la zona.
`; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.5.2 <<>> DNSKEY dnssec.example.live @ns-xxxx.awsdns-xx.org +noall +answer +multiline` `;; global options: +cmd` `dnssec.example.live. 3600 IN DNSKEY 256 3 13 (` ` 4xMqBH+v21Ria6T00Oq08fY8S3FxA9XFp34uDQm0dBpk` ` l6MwBNLZxpwpzS35yunxEYKwHkoPnMtu1bckRFauJg==` ` ) ; ZSK; alg = ECDSAP256SHA256 ; key id = 51615` `dnssec.example.live. 3600 IN DNSKEY 257 3 13 (` ` pvoQ+Q2TvJKRuxdv8yuJhLkJhdrYUf/ZA2REWUTAXsfS` ` laK0MFDzCurSXXjlQxQoVGauDe5CwGufXl40fVzt/w==` ` ) ; KSK; alg = ECDSAP256SHA256 ; key id = 41670`
Si el comando no produce ninguna respuesta, la firma de DNSSEC no está activada en la zona alojada. Si DNSSEC no está activado, elimine el registro DS del registrador.
Paso 4: Identifique cuál es el registro DS correcto creado en la zona principal
1. Ejecute el siguiente comando para instalar bind y bind-ultis:
$ sudo yum install bind bind-utils -y
2. Ejecute el siguiente comando para obtener el registro DS correcto que se creó en la zona principal:
$ dig DNSKEY dnssec.example.live @ns-xxxx.awsdns-xx.org. | dnssec-dsfromkey -2 -f - dnssec.example.live dnssec.example.live. IN DS 41670 13 2 DE085966266F92FA81BBE2829AD9CD8C2C7FC8109D748F49B5A99D2FA1893580
Paso 5: Haga coincidir el registro DS obtenido en el paso 4 con el registro DS obtenido en el paso 2
Asegúrese de que el registro DS creado en la zona principal coincida con el registro DS que obtuvo en el paso 4.
Desde el paso 2:
41670 13 2 DE085966266F92FA81BBE2829AD9CD8C2C7FC8109D748F49B5A99D2F A1893581 << Incorrect string
Desde el paso 4:
41670 13 2 DE085966266F92FA81BBE2829AD9CD8C2C7FC8109D748F49B5A99D2FA1893580
En el ejemplo anterior, el valor de hash del registro DS que está configurado en la zona principal (del paso 2) es incorrecto. Esta discrepancia provoca problemas de resolución de DNS.
Para resolver el problema, cree el valor de registro DS correcto en el extremo del registrador (zona principal). En el caso de los dominios registrados en Route 53, utilice el comando get-dnssec para obtener la información correcta a fin de añadir claves públicas para su dominio.
Nota: Si recibe errores al ejecutar los comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), asegúrese de utilizar la versión más reciente de AWS CLI.
$ aws --region us-east-1 route53 get-dnssec --hosted-zone-id $hostedzone_id
Contenido relevante
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace un año