1. Introduzione
L'accesso privato Google per gli host on-premise consente ai sistemi on-premise di connettersi a API di Google e servizi instradando il traffico tramite un tunnel Cloud VPN o un collegamento VLAN per Cloud Interconnect. L'accesso privato Google per gli host on-premise è un'alternativa alla connessione alle API di Google e ai servizi Google tramite internet.
L'accesso privato Google per gli host on-premise richiede di indirizzare le richieste alle API di Google agli indirizzi IP virtuali (VIP). Per IPv6, vengono utilizzati i seguenti indirizzi IP:
- Per private.googleapis.com: 2600:2d00:0002:2000::/64
- Per restricted.googleapis.com: 2600:2d00:0002:1000::/64
Il VIP scelto determina i servizi a cui puoi accedere. In questo codelab utilizzeremo private.googleapis.com. Per ulteriori informazioni, consulta Opzioni di dominio.
Questo codelab descrive come abilitare l'accesso privato Google per gli host on-premise che utilizzano IPv6 indirizzi. Configurerai una rete VPC chiamata on-premises-vpc per rappresentare un ambiente on-premise. Per il tuo deployment, on-premises-vpc non esisterebbe, ma verrebbe utilizzata la rete ibrida per il tuo data center on-premise o provider di servizi cloud.
Che cosa creerai
In questo codelab creerai una rete IPv6 end-to-end che dimostra l'accesso on-premise all'API Cloud Storage utilizzando CNAME *.googleapis.com all'indirizzo IPv6 private.googleapis.com 2600:2d00:0002:2000::/64, come illustrato nella Figura 1.
Figura 1

Obiettivi didattici
- Come creare una rete VPC a doppio stack
- Come creare una VPN ad alta affidabilità con IPv6
- Come aggiornare il DNS per accedere all'accesso privato Google
- Come stabilire e convalidare la connettività dell'accesso privato Google
Che cosa ti serve
- Progetto Google Cloud
2. Prima di iniziare
Aggiorna il progetto per supportare il codelab
Questo codelab utilizza $variables per facilitare l'implementazione della configurazione di gcloud in Cloud Shell.
In Cloud Shell, esegui le seguenti operazioni:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
3. Crea transit-vpc

Crea la rete VPC di transito
In Cloud Shell, esegui le seguenti operazioni:
gcloud compute networks create transit-vpc --project=$projectname --subnet-mode=custom --mtu=1460 --enable-ula-internal-ipv6 --bgp-routing-mode=regional
4. Crea la rete on-premise

Questa rete VPC rappresenta un ambiente on-premise.
Crea la rete VPC on-premise
In Cloud Shell, esegui le seguenti operazioni:
gcloud compute networks create on-premises-vpc --project=$projectname --subnet-mode=custom --mtu=1460 --enable-ula-internal-ipv6 --bgp-routing-mode=regional
Crea la subnet
In Cloud Shell, esegui le seguenti operazioni:
gcloud compute networks subnets create on-premises-subnet1-us-central1 --project=$projectname --range=172.16.10.0/27 --stack-type=IPV4_IPV6 --ipv6-access-type=INTERNAL --network=on-premises-vpc --region=us-central1
5. Crea una VPN ad alta affidabilità per transit-vpc e on-premises-vpc
Crea il gateway VPN ad alta affidabilità per transit-vpc

Quando viene creato ogni gateway, vengono allocati automaticamente due indirizzi IPv4 esterni, uno per ogni interfaccia del gateway. Prendi nota di questi indirizzi IP da utilizzare in un secondo momento nei passaggi di configurazione.
In Cloud Shell, crea il gateway VPN ad alta affidabilità con il tipo di stack IPV4_IPV6.
gcloud compute vpn-gateways create transit-vpc-vpngw \
--network=transit-vpc\
--region=us-central1 \
--stack-type=IPV4_IPV6
Crea il gateway VPN ad alta affidabilità per on-premises-vpc
In Cloud Shell, crea il gateway VPN ad alta affidabilità con il tipo di stack IPV4_IPV6.
gcloud compute vpn-gateways create on-premises-vpc-vpngw \
--network=on-premises-vpc\
--region=us-central1 \
--stack-type=IPV4_IPV6
Convalida la creazione del gateway VPN ad alta affidabilità
Utilizzando la console, vai a Connettività ibrida → VPN → GATEWAY VPN CLOUD.

Crea il router Cloud per transit-vpc
In Cloud Shell, crea il router Cloud in us-central1.
gcloud compute routers create transit-vpc-cr-us-central1 \
--region=us-central1 \
--network=transit-vpc\
--asn=65001
Crea il router Cloud per on-premises-vpc
In Cloud Shell, crea il router Cloud in us-central1.
gcloud compute routers create on-premises-vpc-cr-us-central1 \
--region=us-central1 \
--network=on-premises-vpc \
--asn=65002
Crea i tunnel VPN per transit-vpc
Creerai due tunnel VPN su ogni gateway VPN ad alta affidabilità.
Crea il tunnel VPN0
In Cloud Shell, crea tunnel0:
gcloud compute vpn-tunnels create transit-vpc-tunnel0 \
--peer-gcp-gateway on-premises-vpc-vpngw \
--region us-central1 \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router transit-vpc-cr-us-central1 \
--vpn-gateway transit-vpc-vpngw \
--interface 0
Crea il tunnel VPN1
In Cloud Shell, crea tunnel1:
gcloud compute vpn-tunnels create transit-vpc-tunnel1 \
--peer-gcp-gateway on-premises-vpc-vpngw \
--region us-central1 \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router transit-vpc-cr-us-central1 \
--vpn-gateway transit-vpc-vpngw \
--interface 1
Crea i tunnel VPN per on-premises-vpc
Creerai due tunnel VPN su ogni gateway VPN ad alta affidabilità.
Crea il tunnel VPN0
In Cloud Shell, crea tunnel0:
gcloud compute vpn-tunnels create on-premises-tunnel0 \
--peer-gcp-gateway transit-vpc-vpngw \
--region us-central1 \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router on-premises-vpc-cr-us-central1 \
--vpn-gateway on-premises-vpc-vpngw \
--interface 0
Crea il tunnel VPN1
In Cloud Shell, crea tunnel1:
gcloud compute vpn-tunnels create on-premises-tunnel1 \
--peer-gcp-gateway transit-vpc-vpngw \
--region us-central1 \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router on-premises-vpc-cr-us-central1 \
--vpn-gateway on-premises-vpc-vpngw \
--interface 1
Convalida la creazione del tunnel VPN
Utilizzando la console, vai a Connettività ibrida → VPN → TUNNEL VPN CLOUD.

Crea sessioni BGP
In questa sezione configurerai le interfacce del router Cloud e i peer BGP.
Quando crei tunnel VPN che consentono il traffico IPv6, specifica --enable-ipv6 quando esegui il comando add-bgp-peer.
Crea un'interfaccia e un peering BGP per transit-vpc
In Cloud Shell, crea l'interfaccia BGP:
gcloud compute routers add-interface transit-vpc-cr-us-central1 \
--interface-name if-tunnel1-to-onpremise \
--ip-address 169.254.1.1 \
--mask-length 30 \
--vpn-tunnel transit-vpc-tunnel0 \
--region us-central1
In Cloud Shell, crea il peer BGP:
gcloud compute routers add-bgp-peer transit-vpc-cr-us-central1 \
--peer-name bgp-on-premises-tunnel0 \
--interface if-tunnel1-to-onpremise \
--peer-ip-address 169.254.1.2 \
--peer-asn 65002 \
--region us-central1 \
--enable-ipv6 \
--ipv6-nexthop-address 2600:2d00:0:3:0:0:0:1 \
--peer-ipv6-nexthop-address 2600:2d00:0:3:0:0:0:2
In Cloud Shell, crea l'interfaccia BGP:
gcloud compute routers add-interface transit-vpc-cr-us-central1 \
--interface-name if-tunnel2-to-onpremise \
--ip-address 169.254.2.1 \
--mask-length 30 \
--vpn-tunnel transit-vpc-tunnel1 \
--region us-central1
In Cloud Shell, crea il peer BGP:
gcloud compute routers add-bgp-peer transit-vpc-cr-us-central1 \
--peer-name bgp-on-premises-tunnel2 \
--interface if-tunnel2-to-onpremise \
--peer-ip-address 169.254.2.2 \
--peer-asn 65002 \
--region us-central1 \
--enable-ipv6 \
--ipv6-nexthop-address 2600:2d00:0:3:0:0:0:11 \
--peer-ipv6-nexthop-address 2600:2d00:0:3:0:0:0:12
Crea un'interfaccia e un peering BGP per on-premises-vpc
In Cloud Shell, crea l'interfaccia BGP:
gcloud compute routers add-interface on-premises-vpc-cr-us-central1\
--interface-name if-tunnel1-to-hub-vpc \
--ip-address 169.254.1.2 \
--mask-length 30 \
--vpn-tunnel on-premises-tunnel0 \
--region us-central1
In Cloud Shell, crea il peer BGP:
gcloud compute routers add-bgp-peer on-premises-vpc-cr-us-central1 \
--peer-name bgp-transit-vpc-tunnel0 \
--interface if-tunnel1-to-hub-vpc \
--peer-ip-address 169.254.1.1 \
--peer-asn 65001 \
--region us-central1 \
--enable-ipv6 \
--ipv6-nexthop-address 2600:2d00:0:3:0:0:0:2 \
--peer-ipv6-nexthop-address 2600:2d00:0:3:0:0:0:1
In Cloud Shell, crea l'interfaccia BGP:
gcloud compute routers add-interface on-premises-vpc-cr-us-central1\
--interface-name if-tunnel2-to-hub-vpc \
--ip-address 169.254.2.2 \
--mask-length 30 \
--vpn-tunnel on-premises-tunnel1 \
--region us-central1
In Cloud Shell, crea il peer BGP:
gcloud compute routers add-bgp-peer on-premises-vpc-cr-us-central1\
--peer-name bgp-transit-vpc-tunnel1\
--interface if-tunnel2-to-hub-vpc \
--peer-ip-address 169.254.2.1 \
--peer-asn 65001 \
--region us-central1 \
--enable-ipv6 \
--ipv6-nexthop-address 2600:2d00:0:3:0:0:0:12 \
--peer-ipv6-nexthop-address 2600:2d00:0:3:0:0:0:11
Vai a Connettività ibrida → VPN per visualizzare i dettagli del tunnel VPN.

Verifica che transit-vpc stia apprendendo le route IPv4 e IPv6 tramite la VPN ad alta affidabilità
Poiché i tunnel VPN ad alta affidabilità e le sessioni BGP sono stabiliti, le route da on-premises-vpc vengono apprese da transit-vpc. Utilizzando la console, vai a Rete VPC → Reti VPC → transit-vpc → ROUTE.
Osserva le route dinamiche IPv4 e IPv6 apprese illustrate di seguito:

Verifica che on-premises-vpc non stia apprendendo le route tramite la VPN ad alta affidabilità
transit-vpc non ha una subnet, pertanto il router Cloud non pubblicizzerà alcuna subnet a on-premises-vpc. Utilizzando la console, vai a Rete VPC → Reti VPC → on-premises-vpc → ROUTE.
6. Pubblicizza il VIP IPv6 private.googleapis.com
Per accedere all'accesso privato Google da on-premise, devi creare un annuncio di route personalizzato da transit-vpc. L'indirizzo IPv6 2600:2d00:0002:2000:: verrà pubblicizzato nell'ambiente on-premise e utilizzato dai carichi di lavoro per accedere alle API di Google come Cloud Storage, Cloud BigQuery e Cloud Bigtable dopo l'aggiornamento del DNS locale.
In questo codelab, abiliterai l'accesso API alla maggior parte delle API e dei servizi Google, indipendentemente dal fatto che siano supportati dai Controlli di servizio VPC.
Dalla console, vai a Connettività ibrida → Router Cloud → transit-vpc-cr-us-central1, quindi seleziona MODIFICA.

Nella sezione Route pubblicizzate, seleziona l'opzione Crea route personalizzate, aggiorna i campi in base all'esempio riportato di seguito, seleziona FINE, e poi fai clic su SALVA.

Verifica che on-premises-vpc stia apprendendo le route IPv6
Ora che il VIP IPv6 private.googleapis.com è pubblicizzato da transit-vpc, on-premises-vpc avrà appreso le route dinamiche IPv6 per il VIP. Utilizzando la console, vai a Rete VPC → Reti VPC → on-premises-vpc → ROUTE.
Osserva le route IPv6 pubblicizzate da transit-vpc:

7. Stabilisci la comunicazione con le API di Google utilizzando l'accesso privato Google
Nella sezione seguente, accederemo e convalideremo la connettività a Cloud Storage utilizzando il VIP IPv6 private.googleapis.com. Per farlo, dobbiamo eseguire le seguenti azioni in on-premises-vpc.
- Crea una regola firewall in entrata per consentire l'accesso a Identity-Aware Proxy (IAP) per l'accesso SSH.
- Crea un router Cloud e Cloud NAT per scaricare tcpdump e dnsutils.
- Crea una zona DNS privata di Cloud DNS per googleapis.com.
- Crea un bucket Cloud Storage.
Crea la regola firewall IAP
Per consentire a IAP di connettersi alle istanze VM, crea una regola firewall che:
- Si applica a tutte le istanze VM a cui vuoi accedere utilizzando IAP.
- Consente il traffico in entrata dall'intervallo IP 35.235.240.0/20. Questo intervallo contiene tutti gli indirizzi IP utilizzati da IAP per l'inoltro TCP.
In Cloud Shell, crea la regola firewall IAP.
gcloud compute firewall-rules create ssh-iap-on-premises-vpc \
--network on-premises-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
Configurazione del router Cloud e di NAT
Cloud NAT viene utilizzato nel codelab per l'installazione del pacchetto software perché l'istanza VM non ha un indirizzo IP esterno.
In Cloud Shell, crea il router Cloud.
gcloud compute routers create on-premises-cr-us-central1-nat --network on-premises-vpc --region us-central1
In Cloud Shell, crea il gateway NAT.
gcloud compute routers nats create on-premises-nat-us-central1 --router=on-premises-cr-us-central1-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1
Crea un'istanza di test, on-premises-testbox
Crea un'istanza di test che verrà utilizzata per testare e convalidare la connettività al VIP IPv6 private.googleapis.com.
In Cloud Shell, crea l'istanza.
gcloud compute instances create on-premises-testbox \
--project=$projectname \
--machine-type=e2-micro \
--stack-type=IPV4_IPV6 \
--image-family debian-10 \
--no-address \
--image-project debian-cloud \
--zone us-central1-a \
--subnet=on-premises-subnet1-us-central1 \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install tcpdump -y
sudo apt-get install dnsutils -y"
Crea la zona privata di Cloud DNS
Utilizzeremo Cloud DNS per creare una zona privata e record per *.googleapis.com. Di seguito sono riportati i passaggi necessari.
In Cloud Shell, crea una zona DNS privata v6-googleapis.com.
gcloud dns --project=$projectname managed-zones create v6-googleapis --description="" --dns-name="googleapis.com." --visibility="private" --networks="on-premises-vpc"
In Cloud Shell, crea il record AAAA per private.googleapis.com che rimanda all'indirizzo IPv6 2600:2d00:0002:2000::.
gcloud dns --project=$projectname record-sets create private.googleapis.com. --zone="v6-googleapis" --type="AAAA" --ttl="300" --rrdatas="2600:2d00:0002:2000::"
In Cloud Shell, crea un record CNAME per *.googleapis.com che rimanda a private.googleapis.com.
gcloud dns --project=$projectname record-sets create *.googleapis.com. --zone="v6-googleapis" --type="CNAME" --ttl="300" --rrdatas="private.googleapis.com."
Convalida la zona privata di Cloud DNS
Vai a Servizi di rete → Cloud DNS → v6-googleapis.

Crea il bucket Cloud Storage
In Cloud Shell, crea un bucket Cloud Storage e sostituisci bucket_name con un nome univoco a livello globale che preferisci. Prova un altro nome se è già in uso.
gsutil mb -l us-central1 -b on gs://bucket_name
8. Accedi e convalida le API di Google utilizzando gli indirizzi IPv6
Nella sezione seguente, eseguirai un SSH in due terminali Cloud Shell. Il primo terminale viene utilizzato per convalidare la ricerca IPv6 utilizzando tcpdump, mentre il secondo viene utilizzato per l'accesso al bucket Cloud Storage.
In Cloud Shell, esegui un SSH all'istanza di test on-premises-testbox.
gcloud compute ssh --zone "us-central1-a" "on-premises-testbox" --project "$projectname"
Nel primo terminale Cloud Shell, avvia tcpdump e monitora la porta 53 per il traffico DNS.
sudo tcpdump -nn -i ens4 port 53
Esempio di seguito.
user@on-premises-testbox:~$ sudo tcpdump -nn -i ens4 port 53
Apri un nuovo terminale Cloud Shell selezionando "+". Una volta aperta la nuova scheda, aggiorna la variabile del nome del progetto.
In Cloud Shell, aggiorna la variabile del nome del progetto.
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Nel secondo terminale Cloud Shell, esegui un SSH all'istanza di test on-premises-testbox.
gcloud compute ssh --zone "us-central1-a" "on-premises-testbox" --project "$projectname"
Esegui un dig per convalidare la ricerca DNS
Nel secondo terminale Cloud Shell, esegui un dig su storage.googleapis.com.
dig AAAA storage.googleapis.com
Esamina la SEZIONE RISPOSTA, la zona DNS privata storage.googleapis.com CNAME a private.googleapis.com AAAA 2600:2d00:2:2000::, esempio di seguito:
user@on-premises-testbox:~$ dig AAAA storage.googleapis.com
; <<>> DiG 9.11.5-P4-5.1+deb10u8-Debian <<>> AAAA storage.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2782
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;storage.googleapis.com. IN AAAA
;; ANSWER SECTION:
storage.googleapis.com. 300 IN CNAME private.googleapis.com.
private.googleapis.com. 300 IN AAAA 2600:2d00:2:2000::
;; Query time: 9 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Mon Feb 20 01:56:33 UTC 2023
;; MSG SIZE rcvd: 101
Nel primo terminale Cloud Shell, esamina il tcpdump che conferma ulteriormente la risoluzione DNS in AAAA 2600:2d00:2:2000::.
user@on-premises-testbox:~$ sudo tcpdump -nn -i ens4 port 53
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens4, link-type EN10MB (Ethernet), capture size 262144 bytes
01:56:33.473208 IP 172.16.10.3.41476 > 169.254.169.254.53: 2782+ [1au] AAAA? storage.googleapis.com. (63)
01:56:33.482580 IP 169.254.169.254.53 > 172.16.10.3.41476: 2782 2/0/1 CNAME private.googleapis.com., AAAA 2600:2d00:2:2000:: (101)
In base a dig e tcpdump, possiamo concludere che la risoluzione DNS in storage.googleapis.com viene eseguita tramite 2600:2d00:2:2000::, l'indirizzo IPv6 per private.googleapis.com.
Esegui gsutil list per convalidare l'accesso a Cloud Storage
Nel secondo terminale Cloud Shell, esegui un elenco sul bucket di archiviazione creato in precedenza utilizzando gsutil. Modifica bucket_name con il bucket creato in precedenza.
gsutil -d ls gs://bucket_name
Esempio che utilizza il bucket Cloud Storage codelab-ipv6, esamina l'output di debug che indica storage.googleapis.com e HTTP/1.1 200 OK.
user@on-premises-testbox:~$ gsutil -d ls gs://codelab-ipv6
***************************** WARNING *****************************
*** You are running gsutil with debug output enabled.
*** Be aware that debug output includes authentication credentials.
*** Make sure to remove the value of the Authorization header for
*** each HTTP request printed to the console prior to posting to
*** a public medium such as a forum post or Stack Overflow.
***************************** WARNING *****************************
gsutil version: 5.19
checksum: 49a18b9e15560adbc187bab09c51b5fd (OK)
boto version: 2.49.0
python version: 3.9.16 (main, Jan 10 2023, 02:29:25) [Clang 12.0.1 ]
OS: Linux 4.19.0-23-cloud-amd64
multiprocessing available: True
using cloud sdk: True
pass cloud sdk credentials to gsutil: True
config path(s): /etc/boto.cfg
gsutil path: /usr/lib/google-cloud-sdk/bin/gsutil
compiled crcmod: True
installed via package manager: False
editable install: False
shim enabled: False
Command being run: /usr/lib/google-cloud-sdk/platform/gsutil/gsutil -o GSUtil:default_project_id=myprojectid -o GoogleCompute:service_account=default -d ls gs://codelab-ipv6
config_file_list: ['/etc/boto.cfg']
config: [('working_dir', '/mnt/pyami'), ('debug', '0'), ('https_validate_certificates', 'true'), ('working_dir', '/mnt/pyami'), ('debug', '0'), ('default_project_id', 'myproject'), ('default_api_version', '2')]
DEBUG 0220 02:01:14.713012 multiprocess_file_storage.py] Read credential file
INFO 0220 02:01:14.714742 base_api.py] Calling method storage.objects.list with StorageObjectsListRequest: <StorageObjectsListRequest
bucket: 'codelab-ipv6'
delimiter: '/'
maxResults: 1000
projection: ProjectionValueValuesEnum(noAcl, 1)
versions: False>
INFO 0220 02:01:14.715939 base_api.py] Making http GET to https://storage.googleapis.com/storage/v1/b/codelab-ipv6/o?alt=json&fields=prefixes%2Citems%2Fname%2CnextPageToken&delimiter=%2F&maxResults=1000&projection=noAcl&versions=False
INFO 0220 02:01:14.716369 base_api.py] Headers: {'accept': 'application/json',
'accept-encoding': 'gzip, deflate',
'content-length': '0',
'user-agent': 'apitools Python/3.9.16 gsutil/5.19 (linux) analytics/disabled '
'interactive/True command/ls google-cloud-sdk/416.0.0'}
INFO 0220 02:01:14.716875 base_api.py] Body: (none)
connect: (storage.googleapis.com, 443)
send: b'GET /storage/v1/b/codelab-ipv6/o?alt=json&fields=prefixes%2Citems%2Fname%2CnextPageToken&delimiter=%2F&maxResults=1000&projection=noAcl&versions=False HTTP/1.1\r\nHost: storage.googleapis.com\r\ncontent-length: 0\r\nuser-agent: apitools Python/3.9.16 gsutil/5.19 (linux) analytics/disabled
<SNIP>
reply: 'HTTP/1.1 200 OK\r\n'
header: X-GUploader-UploadID: ADPycdvunHlbN1WQBxDr_LefzLaH_HY1bBH22X7IxX9sF1G2Yo_7-nhYwjxUf6N7AF9Zg_JDwPxYtuNJiFutfd6qauEfohYPs7mE
header: Content-Type: application/json; charset=UTF-8
header: Date: Mon, 20 Feb 2023 02:01:14 GMT
header: Vary: Origin
header: Vary: X-Origin
header: Cache-Control: private, max-age=0, must-revalidate, no-transform
header: Expires: Mon, 20 Feb 2023 02:01:14 GMT
header: Content-Length: 3
header: Server: UploadServer
INFO 0220 02:01:14.803286 base_api.py] Response of type Objects: <Objects
items: []
prefixes: []>
user@on-premises-testbox:~$
Nel primo terminale Cloud Shell, esamina il tcpdump che conferma ulteriormente la risoluzione DNS in AAAA 2600:2d00:2:2000::.
eepakmichael@on-premises-testbox:~$ sudo tcpdump -nn -i ens4 port 53
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens4, link-type EN10MB (Ethernet), capture size 262144 bytes
02:01:14.725000 IP 172.16.10.3.48792 > 169.254.169.254.53: 7056+ A? storage.googleapis.com. (40)
02:01:14.725106 IP 172.16.10.3.48792 > 169.254.169.254.53: 50841+ AAAA? storage.googleapis.com. (40)
02:01:14.732516 IP 169.254.169.254.53 > 172.16.10.3.48792: 50841 2/0/0 CNAME private.googleapis.com., AAAA 2600:2d00:2:2000:: (90)
Esci dal sistema operativo dell'istanza on-premises-testbox e torna al prompt di Cloud Shell.
9. Esegui la pulizia
In Cloud Shell, esegui le seguenti operazioni:
gcloud compute vpn-tunnels delete transit-vpc-tunnel0 transit-vpc-tunnel1 on-premises-tunnel1 --region=us-central1 --quiet
gcloud compute vpn-tunnels delete on-premises-tunnel0 on-premises-tunnel1 --region=us-central1 --quiet
gcloud compute vpn-gateways delete on-premises-vpc-vpngw transit-vpc-vpngw --region=us-central1 --quiet
gcloud compute routers delete transit-vpc-cr-us-central1 on-premises-vpc-cr-us-central1 on-premises-cr-us-central1-nat --region=us-central1 --quiet
gcloud compute instances delete on-premises-testbox --zone=us-central1-a --quiet
gcloud compute networks subnets delete on-premises-subnet1-us-central1 --region=us-central1 --quiet
gcloud compute firewall-rules delete ssh-iap-on-premises-vpc --quiet
gcloud compute networks delete on-premises-vpc --quiet
gcloud compute networks delete transit-vpc --quiet
gsutil rb gs://bucket_name
gcloud dns record-sets delete *.googleapis.com. \
--type=CNAME \
--zone=v6-googleapis
gcloud dns record-sets delete private.googleapis.com. \
--type=AAAA \
--zone=v6-googleapis
gcloud dns managed-zones delete v6-googleapis
10. Complimenti
Complimenti, hai configurato e convalidato correttamente un accesso privato Google con IPv6.
Hai creato l'infrastruttura di transito e on-premise e una zona DNS privata che consente la risoluzione dei domini delle API di Google utilizzando IPv6. Hai imparato a testare e convalidare l'accesso IPv6 utilizzando dig e Cloud Storage.
Cosmopup pensa che i codelab siano fantastici.

Passaggi successivi
Dai un'occhiata ad alcuni di questi codelab...