Quando crei istanze Compute Engine, il DNS interno crea automaticamente un nome DNS per l'istanza. Questo nome DNS facilita la comunicazione interna tra istanze risolvendo gli indirizzi IP interni. Le reti Virtual Private Cloud su Trusted Cloud by S3NS utilizzano il servizio DNS interno per consentire alle istanze di computing nella stessa rete l'accesso reciproco tramite nomi DNS interni.
Trusted Cloud crea, aggiorna e rimuove in automatico i seguenti tipi di record DNS mentre gestisci le istanze:
- I record di indirizzi DNS, o record A, vengono creati per le istanze
in una zona DNS per
.internal
. - I record PTR per le istanze, utilizzati per la ricerca DNS inversa, vengono creati nelle zone inverse corrispondenti.
Ad esempio, quando elimini un'istanza, Trusted Cloud rimuove automaticamente i record A e PTR associati per il nome DNS interno. Se poi crei un'istanza con lo stesso nome, Trusted Cloud crea nuovi record per l'istanza sostitutiva.
Limitazioni
Compute Engine crea record DNS A e PTR interni solo per l'indirizzo IPv4 interno principale dell'interfaccia di rete
nic0
di un'istanza. Di conseguenza, il tipo di stack dell'interfaccia di retenic0
deve essere solo IPv4 o a doppio stack. Il DNS interno non supporta le interfacce di rete solo IPv6 (Anteprima).Compute Engine non crea record DNS interni per:
- L'indirizzo IPv4 interno principale di un'interfaccia di rete diversa da
nic0
. - Un indirizzo IPv4 esterno di qualsiasi interfaccia di rete.
- Un indirizzo IPv4 interno di un intervallo di IP alias di qualsiasi interfaccia di rete.
- Un intervallo di indirizzi IPv6 interni o esterni di qualsiasi interfaccia di rete.
- L'indirizzo IPv4 interno principale di un'interfaccia di rete diversa da
La risoluzione dei nomi DNS interni richiede che la VM client e la VM associata al record DNS interno siano entrambe:
- nella stessa rete VPC;
- nello stesso progetto (ad eccezione di alcuni scenari di VPC condiviso).
Per ulteriori informazioni sugli scenari di VPC condiviso, consulta Nomi DNS interni e VPC condiviso.
Nomi DNS interni di zona e globali
Trusted Cloud ha due tipi di nomi DNS interni:
- DNS di zona: i nomi delle istanze devono essere univoci all'interno di ogni zona, ma puoi
riutilizzarli in altre zone. Ad esempio, puoi avere più
istanze denominate
instance-1
, purché si trovino in zone diverse. - DNS globale: i nomi delle istanze devono essere univoci all'interno di ogni progetto. Con il DNS globale, non puoi riutilizzare i nomi delle istanze all'interno del progetto.
Google consiglia vivamente di utilizzare il DNS di zona perché offre un'affidabilità superiore, in quanto isola gli errori di registrazione del DNS all'interno delle singole zone. In caso di interruzione del servizio, il DNS globale presenta i seguenti problemi:
- Il nome dell'istanza deve essere univoco nell'intero progetto. Di conseguenza, non puoi creare nuove istanze in nessuna regione dove si verificano errori nel control plane in cui hai o avevi precedentemente risorse di progetto. Trusted Cloud by S3NS non può verificare i nomi DNS delle risorse esistenti nelle regioni non disponibili.
- Alcune funzionalità di Compute Engine non sono disponibili, ad esempio la scalabilità automatica dei gruppi di istanze gestite (MIG). Di conseguenza, le applicazioni che utilizzano la scalabilità automatica per gestire agevolmente gli aumenti del workload non sono in grado di fare lo scale up.
Il tipo di DNS interno predefinito viene impostato quando abiliti l'API Compute Engine.
- Il tipo di DNS interno predefinito è il DNS di zona.
- Se la tua organizzazione o il tuo progetto autonomo ha abilitato l'API Compute Engine prima del 6 settembre 2018, il tipo di DNS interno predefinito è impostato su DNS globale.
I nomi di dominio completi per i nomi DNS interni sono descritti nella tabella seguente.
Tipo di DNS interno | Nome di dominio completo (FQDN) |
---|---|
DNS di zona | INSTANCE_NAME.ZONE.c.PROJECT_ID.internal |
DNS globale (a livello di progetto) | INSTANCE_NAME.c.PROJECT_ID.internal |
Sostituisci quanto segue:
INSTANCE_NAME
: il nome dell'istanza. Per il DNS di zona, questo valore deve essere univoco all'interno della stessa zona, ma può essere ripetuto in più zone. Per il DNS globale, il nome dell'istanza deve essere univoco all'interno del progetto.ZONE
: la zona in cui si trova l'istanza.PROJECT_ID
: il progetto a cui appartiene l'istanza.
Per informazioni su come controllare il tipo di nome DNS interno utilizzato a livello di progetto o istanza, consulta configura i nomi DNS per il progetto o le istanze.
Risoluzione dei nomi DNS
Le istanze ricevono informazioni sulla risoluzione DNS interna nell'ambito dei lease DHCP. Il metodo di risoluzione DNS dipende dalla piattaforma del sistema operativo:
- Linux: per impostazione predefinita, il server DNS dell'istanza (
169.254.169.254:53
) risolve i nomi DNS interni. - Windows: per impostazione predefinita, il gateway predefinito della subnet risolve i nomi DNS interni.
Zone inverse per i record PTR
Il servizio DNS interno diTrusted Cloudcrea automaticamente record PTR per le istanze nelle seguenti zone inverse:
10.in-addr.arpa.
168.192.in-addr.arpa.
16.172.in-addr.arpa.
,17.172.in-addr.arpa.
, e così via fino a31.172.in-addr.arpa.
Nomi DNS interni e VPC condiviso
La VM client e la VM associata al record DNS interno possono essere situate in progetti separati, ma devono utilizzare la stessa rete VPC condivisa. Ad esempio, il client può trovarsi in un progetto di servizio e la VM associata al record DNS interno può trovarsi in un progetto di servizio diverso o nel progetto host.
I client devono eseguire query sul nome di dominio completo (FQDN) per i record DNS interni anziché fare affidamento su query parziali e domini di ricerca DNS. I domini di ricerca DNS sono diversi in ogni progetto per motivi quali:
La parte del nome di dominio di ogni record DNS A interno contiene l'ID progetto del progetto che contiene la VM. Per una VM in un progetto di servizio la cui interfaccia di rete
nic0
utilizza una rete VPC condivisa, il progetto della VM è diverso dal progetto che contiene la rete.L'utilizzo di nomi DNS interni a livello di zona o globale (a livello di progetto) dipende dalla configurazione del progetto che contiene la VM.
Per ulteriori informazioni sul VPC condiviso, consulta:
Personalizzazione dei nomi DNS interni
Alcune organizzazioni o applicazioni potrebbero richiedere nomi DNS interni personalizzati invece di quelli creati da Trusted Cloud.
Zone private e record personalizzati con Cloud DNS
Puoi utilizzare una zona privata di Cloud DNS per creare voci DNS personalizzate per le tue istanze. Puoi configurare record PTR che ti consentono di ignorare l'URL DNS interno predefinito per l'istanza con l'URL personalizzato di tua scelta.
Per creare record PTR personalizzati che eseguono l'override dei nomi DNS PTR interni creati in automatico, consulta Record PTR per gli indirizzi RFC 1918 nelle zone private. Per informazioni sulla creazione di record PTR per le istanze, consulta Crea un record PTR per un'istanza.
Nomi host personalizzati
Puoi specificare un nome host personalizzato per un'istanza quando la crei. I nomi di host personalizzati assegnati in questo modo non vengono risolti dal DNS interno. Con i nomi host personalizzati, devi comunque creare un record DNS corrispondente nella zona appropriata, ad esempio utilizzando Cloud DNS. Per saperne di più consulta Crea un'istanza con un nome host personalizzato.
DNS interno e DHCP
Le istanze Compute Engine sono configurate in modo da rinnovare i lease DHCP ogni 24 ore. Per le istanze il DNS di zona abilitato, il lease DHCP scade ogni ora. Le istanze che utilizzano il DNS di zona hanno voci sia di zona sia globali nel file di configurazione DHCP.
Per impostazione predefinita, la maggior parte delle distribuzioni Linux archiviano le informazioni DHCP in
resolv.conf
.
Se modifichi manualmente resolv.conf
, viene ripristinato il DHCP
predefinito ogni volta che scade il lease DHCP nell'istanza. Per apportare
modifiche statiche al file resolv.conf
, varie distribuzioni Linux
consentono di anteporre o aggiungere elementi alla
policy DHCP.
La modalità di modifica della policy DHCP o del file di configurazione dipende da quale
distribuzione Linux utilizzi. Ad esempio, Red Hat Enterprise Linux e Debian
utilizzano il file di configurazione /etc/dhcp/dhcpd.conf
. CentOS utilizza
l'utilità a riga di comando Network Manager,nmcli
.
Per informazioni su come configurare le impostazioni di rete DHCP e DNS personalizzate, consulta la documentazione del tuo sistema operativo. Ad esempio, per Red Hat Enterprise Linux for SAP with HA and Update Services 8.6, utilizza il seguente link: Configurazione manuale del file /etc/resolv.conf
File resolv.conf
di esempio:
Per impostazione predefinita, la maggior parte delle distribuzioni Linux archiviano le informazioni DHCP in
resolv.conf
.
Il servizio systemd-resolved
fornisce anche servizi di risoluzione per il DNS.
Puoi configurarlo modificando il file /etc/systemd/resolved.conf
e altri file *.conf
nella directory /etc/systemd/resolved.conf.d/
. Nelle
distribuzioni Linux che archiviano le informazioni DHCP in resolved.conf
, puoi visualizzare
le voci DNS di zona e globali nel
file
/etc/systemd/resolved.conf
.
Questi file presentano le seguenti limitazioni:
- Il percorso di ricerca può gestire solo 6 record, di cui 3 forniti da Compute Engine. Se aggiungi voci al percorso di ricerca, in modo che il numero totale di voci sia superiore a 6, le regole di ricerca successive alla 6a voce non vengono applicate dal sistema operativo. Così alcune funzionalità di Compute Engine potrebbero smettere di funzionare, ad esempio l'accesso alle istanze tramite i relativi nomi.
Se modifichi manualmente
resolv.conf
, viene ripristinato il DHCP predefinito ogni volta che passano le 24 ore di scadenza del lease DHCP nell'istanza. Nelle istanze che utilizzano il DNS di zona, il lease DHCP scade ogni ora. Per apportare modifiche statiche al fileresolv.conf
, varie distribuzioni Linux consentono di anteporre o aggiungere elementi alla policy DHCP.
Configurazione di DNS di zona
File resolv.conf
di zona di esempio:
# Local domain name. Computed from your project name. domain ZONE.c.PROJECT_ID.internal # Search list for hostname lookup. Starting with entries that represent # your project and ending with google.internal to facilitate metadata server requests. search ZONE.c.PROJECT_ID.internal. c.PROJECT_ID.internal. google.internal. # Address of the DNS server to resolve project specific, and global domain names. nameserver 169.254.169.254
Sostituisci quanto segue:
ZONE
: la zona in cui si trova l'istanzaPROJECT_ID
: il progetto a cui appartiene l'istanza
File dhcp.lease
di zona di esempio:
lease { # What interface we are using for the network interface "eth0"; fixed-address 10.128.0.9; option subnet-mask 255.255.255.255; option routers 10.128.0.1; # Lease timeout, older instances will have this value set to infinite. option dhcp-lease-time 3600; option dhcp-message-type 5; option domain-name-servers 169.254.169.254; option dhcp-server-identifier 169.254.169.254; option interface-mtu 1460; # Search path options that are copied into the resolv.conf option domain-search "ZONE.c.PROJECT_ID.internal.", "c.PROJECT_ID.internal.", "google.internal."; option ntp-servers 169.254.169.254; option rfc3442-classless-static-routes 32,10,128,0,1,0,0,0,0,0,10,128,0,1; option host-name "INSTANCE_NAME.ZONE.c.PROJECT_ID.internal"; option domain-name "ZONE.c.PROJECT_ID.internal"; renew 4 2017/11/16 02:15:52; rebind 4 2017/11/16 02:43:59; expire 4 2017/11/16 02:51:29; }
Sostituisci quanto segue:
INSTANCE_NAME
: il nome dell'istanzaZONE
: la zona in cui si trova l'istanzaPROJECT_ID
: il progetto a cui appartiene l'istanza
Configurazione di DNS globale
File resolv.conf
globale di esempio:
# Local domain name. Computed from your project name. domain c.PROJECT_ID.internal # Search list for hostname lookup. Starting with entries that represent # your project and ending with google.internal to facilitate metadata server requests. search c.PROJECT_ID.internal google.internal. # Address of the DNS server to resolve project specific, and global domain names. nameserver 169.254.169.254
Sostituisci PROJECT_ID
con il progetto a cui
appartiene l'istanza.
File dhcp.lease
globale di esempio:
lease { # What interface we are using for the network interface "eth0"; fixed-address 10.128.0.8; option subnet-mask 255.255.255.255; option routers 10.128.0.1; # Lease timeout, older instances will have this value set to infinite. option dhcp-lease-time 86400; option dhcp-message-type 5; option domain-name-servers 169.254.169.254; option dhcp-server-identifier 169.254.169.254; option interface-mtu 1460; # Search path options that are copied into the resolv.conf option domain-search "c.PROJECT_ID.internal.", "google.internal."; option ntp-servers 169.254.169.254; option rfc3442-classless-static-routes 32,10,128,0,1,0,0,0,0,0,10,128,0,1; option host-name "INSTANCE_NAME.c.PROJECT_ID.internal"; option domain-name "c.PROJECT_ID.internal"; renew 4 2017/11/16 12:07:00; rebind 4 2017/11/16 22:44:53; expire 5 2017/11/17 01:44:53; }
Sostituisci quanto segue:
INSTANCE_NAME
: il nome dell'istanzaPROJECT_ID
: il progetto a cui appartiene l'istanza
File dhclient.conf
di esempio
Alcuni sistemi operativi, come Debian 9, utilizzano il file dhclient.conf
anziché
il file resolv.conf
.
File /etc/dhcp/dhclient.conf
campione:
# Configuration file for /sbin/dhclient.
#
...
append domain-search "mydomain.com";
prepend domain-name-servers 172.16.1.1;
In questo esempio, mydomain.com
è il nuovo dominio di ricerca e 172.16.1.1
è
l'IP del tuo server DNS.
Passaggi successivi
- Per informazioni sulle reti VPC di Trusted Cloud , consulta la panoramica di VPC.
- Per informazioni sulla creazione e sulla modifica delle reti VPC, consulta Utilizzo di VPC.
- Esegui la migrazione della tua organizzazione e dei tuoi progetti per utilizzare il DNS di zona anziché il DNS globale.