Salta al contenuto

Come posso correggere i problemi di risoluzione DNS nella mia zona ospitata privata di Route 53?

8 minuti di lettura
0

Desidero correggere i problemi di risoluzione DNS nella mia zona ospitata privata di Amazon Route 53.

Breve descrizione

Per risolvere i problemi relativi al DNS delle zone ospitate private, verifica le impostazioni di Amazon Virtual Private Cloud (Amazon VPC), le associazioni di zona e la configurazione del server DNS.

Risoluzione

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Verificare che DNS sia supportato nel VPC

Per consentire la risoluzione dei record delle zone ospitate private, completa i seguenti passaggi:

  1. Attiva il supporto DNS in Amazon VPC.
  2. Verifica che DNSSupport e DNSHostnames siano impostati su True nel VPC. Per ulteriori informazioni, consulta Visualizzazione e aggiornamento degli attributi DNS per il VPC.

Verifica l'associazione corretta dell'ID del VPC

Verifica di aver associato l'ID del VPC corretto alla zona ospitata privata. Inoltre, assicurati di interrogare i record delle risorse del dominio all'interno dello stesso VPC.

Quando associ una zona ospitata privata al VPC:

  • Route 53 Resolver crea una regola definita automaticamente e la associa al VPC.
  • Le risorse del VPC possono interrogare il risolutore per risolvere i record DNS nella zona ospitata privata.

Per elencare i VPC associati a una zona ospitata, esegui questo comando in AWS CLI:

aws route53 get-hosted-zone --id VPC_ID

Nota: sostituisci VPC_ID con i valori pertinenti.

Per elencare le zone ospitate private associate a VPC specifici, esegui questo comando in AWS CLI:

aws route53 list-hosted-zones-by-vpc --vpc-id VPC_ID --vpc-region REGION_ID

Nota: sostituisci HOSTED_ZONE_ID, VPC_ID e REGION_ID con i valori pertinenti.

Verifica le configurazioni personalizzate del server DNS

Se hai configurato server DNS personalizzati o server Active Directory nelle opzioni DHCP per DNS nel VPC, verifica i seguenti elementi:

  1. Regola di inoltro: i server inoltrano le query DNS del dominio privato all'indirizzo IP del server DNS del VPC.
  2. Configurazione del dominio: il dominio nei server personalizzati è diverso dalla tua zona ospitata privata.

Ad esempio, se l'intervallo CIDR primario del VPC è 172.31.0.0/16, l'indirizzo IP del server DNS del VPC è 172.31.0.2. Questo è l'intervallo di rete VPC più due.

Rivedi le impostazioni di configurazione del risolutore

Se riscontri una risoluzione o risposte DNS intermittenti, rivedi le impostazioni di configurazione del risolutore dell'istanza di origine:

  • Per le istanze Linux, utilizza i file cat /etc/resolv.conf e cat/etc/hosts.
  • Per macOS, consulta Modifica le impostazioni DNS su Mac nella guida per l'utente di macOS.
  • Per Windows, completa i seguenti passaggi:
    Scegli Impostazioni, quindi seleziona Rete e Internet.
    In Impostazioni di rete avanzate, seleziona Modifica impostazioni adattatore.
    Fai clic con il pulsante destro del mouse sulla connessione di rete, quindi scegli Proprietà.
    Scegli Proprietà IPv4, quindi inserisci l'indirizzo IP DNS preferito in Indirizzi server DNS.

Ad esempio, se hai configurato resolv.conf, puoi utilizzare l'opzione rotate per le query di bilanciamento del carico tra Amazon DNS e Google DNS (8.8.8.8). Il file resolv.conf sarà simile al seguente:

options rotate; generated by /usr/sbin/dhclient-script
nameserver 8.8.8.8
nameserver 172.31.0.2

Nella prima query al DNS pubblico di Google (8.8.8.8), ricevi la risposta prevista da NxDomain. Il risolutore cerca di trovare la risposta nella zona ospitata pubblica anziché nella zona ospitata privata:

Private hosted Zone Record - resolvconf.local
[ec2-user@ip-172-31-253-89 etc]$ curl -vks http://resolvconf.local* Rebuilt URL to: http://resolvconf.local/
* Could not resolve host: resolvconf.local

15:24:58.553320 IP ip-172-31-253-89.ap-southeast-2.compute.internal.40043 > dns.google.domain: 65053+ A? resolvconf.local. (34)
15:24:58.554814 IP dns.google.domain > ip-172-31-253-89.ap-southeast-2.compute.internal.40043: 65053 NXDomain 0/1/0 (109)

La seconda query viene invece risolta correttamente. La seconda query raggiunge il risolutore DNS VPC associato alla zona ospitata privata:

[ec2-user@ip-172-31-253-89 etc]$ curl -vks http://resolvconf.local* Rebuilt URL to: http://resolvconf.local/*   Trying 1.1.1.1...
* TCP_NODELAY set
* Connected to resolvconf.local (1.1.1.1) port 80 (#0)

15:25:00.224761 IP ip-172-31-253-89.ap-southeast-2.compute.internal.51578 > 172.31.0.2.domain: 7806+ A? resolvconf.local. (34)
15:25:00.226527 IP 172.31.0.2.domain > ip-172-31-253-89.ap-southeast-2.compute.internal.51578: 7806 1/0/0 A 1.1.1.1 (50)

Verifica che le zone ospitate private non abbiano namespace sovrapposti

Quando più zone hanno namespace sovrapposti:

  • Il risolutore indirizza il traffico in base alla corrispondenza più specifica
  • Se esiste una zona corrispondente ma nessun record corrispondente, il risolutore restituisce NXDOMAIN

Verifica di aver configurato il record corretto nella zona ospitata privata più specifica per una risoluzione DNS corretta.

Ad esempio, supponiamo che tu abbia due zone ospitate private con i seguenti record:

Zona ospitata privataNome del recordValore
localeoverlap.privatevpc.local60.1.1.1
privatevpc.localoverlap.privatevpc.local50.1.1.1

In tal caso, ricevi il seguente risultato della query dalla zona ospitata privata abbinata più specifica:

[ec2-user@IAD-BAS-INSTANCE ~]$ dig overlap.privatevpc.local +short
50.1.1.1

Verifica la delega di zona/sottodominio nelle zone ospitate private

Le zone ospitate private non supportano la delega di zona/sottodominio. Verifica di non avere un record del server dei nomi (NS) configurato per il sottodominio nella zona ospitata privata del dominio principale. Se hai configurato la delega, il client riceve il codice di risposta "SERVFAIL" dal risolutore del VPC.

Di seguito è riportato un esempio di configurazione della delega che causa SERVFAIL:

  • Zona ospitata privata: abc.com
  • Record NS della delega: kc.abc.com
  • Record della risorsa: test.kc.abc.com
[ec2-user@ip-172-31-0-8 ~]$ dig test.kc.abc.com
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 63414
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;test.kc.abc.com        IN      A
;; Query time: 15 msec
;; SERVER: 172.31.0.2#53(172.31.0.2)
;; WHEN: Fri Apr 16 15:57:37 2021
;; MSG SIZE  rcvd: 48

Verifica che le policy di routing siano supportate

Verifica di aver configurato una policy di routing nel record della risorsa che sia supportata da una zona ospitata privata. Per ulteriori informazioni, consulta Policy di routing supportate per i record in una zona ospitata privata.

Controlla la regola del risolutore e l'utilizzo degli endpoint del risolutore in uscita

Assicurati di utilizzare il risolutore con un endpoint in uscita. La regola del risolutore ha la precedenza se:

  1. Hai una regola del risolutore per indirizzare il traffico verso la rete per il dominio della zona ospitata privata.
  2. Hai una regola del risolutore associata allo stesso VPC associato anche alla zona ospitata privata.

Per ulteriori informazioni, consulta Risoluzione di query DNS tra i VPC e la rete.

Evita i loop di query

Per evitare di creare un loop, completa i seguenti passaggi:

  1. Crea indirizzi IP di destinazione in una regola di inoltro del risolutore verso gli endpoint in entrata di un VPC.
  2. Non associare gli endpoint alla zona ospitata privata.
  3. Non associare la stessa regola del risolutore al VPC.

Esempio di loop di query:

ubuntu@ip-172-32-254-37:~$ dig overlap.privatevpc.local
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 9007
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;overlap.privatevpc.local. IN A
;; Query time: 2941 msec
;; SERVER: 172.32.0.2#53(172.32.0.2)

Per risolvere il problema e interrompere il loop, rimuovi l'associazione del VPC dell'hub con la regola. Esempio di risposta riuscita:

ubuntu@ip-172-32-254-37:~$ dig overlap.privatevpc.local
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58606
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;overlap.privatevpc.local. IN A
;; ANSWER SECTION:
overlap.privatevpc.local. 0 IN A 50.1.1.1
;; Query time: 5 msec
;; SERVER: 172.32.0.2#53(172.32.0.2)

Verifica che il risolutore on-premise invii richieste ricorsive

Per query dall'ambiente on-premises al risolutore Route 53:

  • Utilizza l'endpoint in entrata del risolutore per inoltrare le query DNS.
  • Assicurati che il risolutore on-premises invii query ricorsive (non iterative).

Per verificare il tipo di risoluzione, completa questi passaggi:

  1. Utilizza l'acquisizione dei pacchetti sul risolutore DNS on-premises.
  2. Rivedi i flag DNS (ricorsione desiderata = 0).
  3. Prova con il comando dig +norecurse o imposta norecurse con nslookup.

Esempio di query iterativa non riuscita:

[ec2-user@IAD-BAS-INSTANCE ~]$ dig @172.31.253.150 overlap.privatevpc.local +norecurse
;; <<>> DiG 9.11.0rc1 <<>> @172.31.253.150 overlap.privatevpc.local +norecurse; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached

Esempio di query ricorsiva riuscita:

[ec2-user@IAD-BAS-INSTANCE ~]$ dig @172.31.253.150 overlap.privatevpc.local
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19051
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;overlap.privatevpc.local.      IN      A
;; ANSWER SECTION:
overlap.privatevpc.local. 0     IN      A       50.1.1.1
;; Query time: 200 msec
;; SERVER: 172.31.253.150#53(172.31.253.150)

Verifica le priorità delle regole corrette per il DNS fornito da Amazon

Quando l'istanza client invia una query al risolutore, questo verifica le regole dell'istanza sull'indirizzamento della richiesta.

La regola più specifica ha la priorità. Ad esempio, se sono presenti una regola del risolutore test.example.com e una zona ospitata privata test.example.com, la regola del risolutore ha la priorità. La query viene inoltrata ai server o agli indirizzi IP di destinazione configurati nella regola.

Se le regole si trovano allo stesso livello di dominio, hanno la seguente priorità:

  1. Regola del risolutore
  2. Regola della zona ospitata privata
  3. Regola interna

Informazioni correlate

Utilizzo di zone ospitate private

Quali opzioni Amazon VPC devo attivare per utilizzare la mia zona ospitata privata?

Evita le configurazioni di loop con gli endpoint Resolver