1. Introdução
O Acesso privado do Google para hosts locais permite que sistemas locais se conectem a APIs e serviços do Google roteando o tráfego por um túnel do Cloud VPN ou um anexo da VLAN para o Cloud Interconnect. O Acesso privado do Google para hosts locais é uma alternativa à conexão com APIs e serviços do Google pela Internet.
O Acesso privado do Google para hosts locais exige que você direcione solicitações de APIs do Google para endereços IP virtuais (VIP). Para IPv6, os seguintes endereços IP são usados:
- Para private.googleapis.com: 2600:2d00:0002:2000::/64
- Para restricted.googleapis.com: 2600:2d00:0002:1000::/64
O VIP escolhido determina os serviços que você pode acessar. Neste codelab, vamos usar private.googleapis.com. Para mais informações, consulte Opções de domínio.
Este codelab descreve como ativar o Acesso privado do Google para hosts locais que usam endereços IPv6. Você vai configurar uma rede VPC chamada on-premises-vpc
para representar um ambiente local. Para sua implantação, a on-premises-vpc não existiria. Em vez disso, a rede híbrida para seu data center local ou provedor de nuvem seria usada.
O que você vai criar
Neste codelab, você vai criar uma rede IPv6 de ponta a ponta que demonstra o acesso local à API de armazenamento em nuvem usando o CNAME *.googleapis.com para o endereço IPv6 2600:2d00:0002:2000::/64
de private.googleapis.com, conforme ilustrado na Figura 1.
Figura 1.
O que você vai aprender
- Como criar uma rede VPC de pilha dupla
- Como criar uma VPN de alta disponibilidade com IPv6
- Como atualizar o DNS para acessar o Acesso privado do Google
- Como estabelecer e validar a conectividade do Acesso privado do Google
O que é necessário
- Projeto do Google Cloud
2. Antes de começar
Atualizar o projeto para oferecer suporte ao codelab
Este codelab usa $variables para ajudar na implementação da configuração da gcloud no Cloud Shell.
No Cloud Shell, faça o seguinte:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
3. Crie o transit-vpc
Criar a rede VPC de trânsito
No Cloud Shell, faça o seguinte:
gcloud compute networks create transit-vpc --project=$projectname --subnet-mode=custom --mtu=1460 --enable-ula-internal-ipv6 --bgp-routing-mode=regional
4. Criar a rede local
Essa rede VPC representa um ambiente local.
Crie a rede VPC local
No Cloud Shell, faça o seguinte:
gcloud compute networks create on-premises-vpc --project=$projectname --subnet-mode=custom --mtu=1460 --enable-ula-internal-ipv6 --bgp-routing-mode=regional
Criar a sub-rede
No Cloud Shell, faça o seguinte:
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. Crie uma VPN de alta disponibilidade para transit-vpc e on-premises-vpc
Crie a GW de VPN de alta disponibilidade para transit-vpc
Quando cada gateway é criado, dois endereços IPv4 externos são alocados automaticamente, um para cada interface de gateway. Anote esses endereços IP para usar mais tarde nas etapas de configuração.
No Cloud Shell, crie o GW de VPN HA com o tipo de pilha IPV4_IPV6.
gcloud compute vpn-gateways create transit-vpc-vpngw \
--network=transit-vpc\
--region=us-central1 \
--stack-type=IPV4_IPV6
Crie o GW de VPN de alta disponibilidade para a VPC no local
No Cloud Shell, crie o GW de VPN de alta disponibilidade com o tipo de pilha IPV4_IPV6.
gcloud compute vpn-gateways create on-premises-vpc-vpngw \
--network=on-premises-vpc\
--region=us-central1 \
--stack-type=IPV4_IPV6
Validar a criação do GW da VPN de alta disponibilidade
No console, navegue até Conectividade híbrida → VPN → GATEWAYS DO CLOUD VPN.
Crie o Cloud Router para a classe transit-vpc
No Cloud Shell, crie o Cloud Router localizado em us-central1
gcloud compute routers create transit-vpc-cr-us-central1 \
--region=us-central1 \
--network=transit-vpc\
--asn=65001
Crie o Cloud Router para a VPC no local
No Cloud Shell, crie o Cloud Router localizado em us-central1.
gcloud compute routers create on-premises-vpc-cr-us-central1 \
--region=us-central1 \
--network=on-premises-vpc \
--asn=65002
Crie os túneis de VPN para transit-vpc
Você vai criar dois túneis de VPN em cada gateway de VPN de alta disponibilidade.
Criar túnel VPN0
No Cloud Shell, crie 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
Criar túnel VPN1
No Cloud Shell, crie 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
Crie os túneis de VPN para on-premises-vpc
Você vai criar dois túneis de VPN em cada gateway de VPN de alta disponibilidade.
Criar túnel VPN0
No Cloud Shell, crie 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
Criar túnel VPN1
No Cloud Shell, crie o 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
Validar a criação do túnel VPN
No console, acesse Conectividade Híbrida → VPN → TÚneles do Cloud VPN.
Criar sessões do BGP
Nesta seção, você configura as interfaces do Cloud Router e os pares do BGP.
Ao criar túneis de VPN que permitem o tráfego IPv6, especifique --enable-ipv6
ao executar o comando add-bgp-peer
.
Criar uma interface do BGP e peering para transit-vpc
No Cloud Shell, crie a interface do 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
No Cloud Shell, crie o peer do 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
No Cloud Shell, crie a interface do 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
No Cloud Shell, crie o peer do 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
Criar uma interface do BGP e peering para on-premises-vpc
No Cloud Shell, crie a interface do 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
No Cloud Shell, crie o peer do 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
No Cloud Shell, crie a interface do 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
No Cloud Shell, crie o peer do 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
Acesse Conectividade híbrida → VPN para conferir os detalhes do túnel VPN.
Validar se a transit-vpc está aprendendo as rotas IPv4 e IPv6 pela VPN de alta disponibilidade
Como os túneis de VPN de alta disponibilidade e as sessões do BGP foram estabelecidas, as rotas da vpc local são aprendidas da vpc de trânsito. No console, acesse Rede VPC → Redes VPC → transit-vpc → ROUTES.
Observe as rotas dinâmicas IPv4 e IPv6 aprendidas ilustradas abaixo:
Valide se a on-premises-vpc não está aprendendo rotas pela VPN de alta disponibilidade
O transit-vpc não tem uma sub-rede, portanto, o Cloud Router não vai divulgar nenhuma sub-rede para o on-premises-vpc. No console, acesse Rede VPC → Redes VPC → on-premises-vpc → ROUTES.
6. Anunciar o VIP IPv6 private.googleapis.com
Para acessar o Acesso privado do Google no local, você precisa criar uma divulgação de rota personalizada de transit-vpc. O endereço IPv6 2600:2d00:0002:2000::
será divulgado para o ambiente local e usado pelas cargas de trabalho para acessar as APIs do Google, como o Cloud Storage, o Cloud BigQuery e o Cloud Bigtable depois que o DNS local for atualizado.
Neste codelab, você vai permitir o acesso da API à maioria das APIs e serviços do Google, independente de serem compatíveis com o VPC Service Controls.
No console, navegue até Conectividade híbrida → Roteadores do Cloud → transit-vpc-cr-us-central1 e selecione EDIT.
Na seção "Rotas anunciadas", selecione a opção Criar rotas personalizadas, atualize os campos com base no exemplo abaixo, selecione CONCLUÍDO e clique em SALVAR.
Valide se a on-premises-vpc está aprendendo rotas IPv6
Agora que o VIP do IPv6 private.googleapis.com é anunciado em transit-vpc, o on-premises-vpc terá aprendido rotas dinâmicas IPv6 para o VIP. No console, navegue até Rede VPC → Redes VPC → VPC local → ROUTES.
Observe as rotas IPv6 divulgadas em transit-vpc:
7. Estabelecer comunicação com as APIs do Google usando o Acesso privado do Google
Na seção a seguir, vamos acessar e validar a conectividade com o Cloud Storage usando o VIP IPv6 private.googleapis.com. Para isso, precisamos realizar as seguintes ações na VPC local.
- Criar uma regra de firewall de entrada para permitir o acesso do Identity-Aware Proxy (IAP) para SSH.
- Criar um Cloud Router e um Cloud NAT para fazer o download de tcpdump e dnsutils.
- Crie uma zona privada do Cloud DNS para googleapis.com.
- Criar um bucket do Cloud Storage.
Crie a regra de firewall do IAP
Para permitir que o IAP se conecte às instâncias de VM, crie uma regra de firewall que:
- Aplica-se a todas as instâncias da VM que você quer que sejam acessíveis usando o IAP.
- Permite o tráfego de entrada do intervalo de IP 35.235.240.0/20. Esse intervalo contém todos os endereços IP que o IAP usa para o encaminhamento de TCP.
No Cloud Shell, crie a regra de firewall do 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
Cloud Router e configuração NAT
O Cloud NAT é usado no codelab para a instalação do pacote de software porque a instância de VM não tem um endereço IP externo.
No Cloud Shell, crie o Cloud Router.
gcloud compute routers create on-premises-cr-us-central1-nat --network on-premises-vpc --region us-central1
No Cloud Shell, crie o 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
Criar uma instância de teste, caixa de teste local
Crie uma instância de teste que será usada para testar e validar a conectividade com o VIP private.googleapis.com do IPv6.
No Cloud Shell, crie a instância.
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"
Criar a zona particular do Cloud DNS
Vamos usar o Cloud DNS para criar uma zona particular e registros para *.googleapis.com. Confira abaixo as etapas necessárias.
No Cloud Shell, crie uma zona DNS privada v6-googleapis.com.
gcloud dns --project=$projectname managed-zones create v6-googleapis --description="" --dns-name="googleapis.com." --visibility="private" --networks="on-premises-vpc"
No Cloud Shell, crie o registro AAAA para private.googleapis.com. apontando para o endereço 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::"
No Cloud Shell, crie um CNAME para *.googleapis.com que aponte para private.googleapis.com.
gcloud dns --project=$projectname record-sets create *.googleapis.com. --zone="v6-googleapis" --type="CNAME" --ttl="300" --rrdatas="private.googleapis.com."
Validar a zona particular do Cloud DNS
Acesse Serviços de rede → Cloud DNS → v6-googleapis.
Criar o bucket do Cloud Storage
No Cloud Shell, crie um bucket do Cloud Storage e substitua bucket_name por um nome globalmente exclusivo de sua preferência. Tente outro nome se ele já estiver em uso.
gsutil mb -l us-central1 -b on gs://bucket_name
8. Acessar e validar as APIs do Google usando endereços IPv6
Na seção a seguir, você executará um SSH em dois terminais do Cloud Shell. O primeiro terminal é usado para validar a pesquisa IPv6 com o tcpdump, enquanto o segundo é usado para acessar o bucket do Cloud Storage.
No Cloud Shell, faça um ssh para a instância de teste on-premises-testbox.
gcloud compute ssh --zone "us-central1-a" "on-premises-testbox" --project "$projectname"
No terminal 1 do Cloud Shell, inicie o tcpdump e monitore o tráfego DNS na porta 53.
sudo tcpdump -nn -i ens4 port 53
Confira um exemplo abaixo.
user@on-premises-testbox:~$ sudo tcpdump -nn -i ens4 port 53
Abra um novo terminal do Cloud Shell selecionando "+". Quando a nova guia for aberta, atualize a variável de nome do projeto.
No Cloud Shell, atualize a variável de nome do projeto.
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
No Cloud Shell 2, faça um SSH para a instância de teste on-premises-testbox.
gcloud compute ssh --zone "us-central1-a" "on-premises-testbox" --project "$projectname"
Faça uma escavação para validar a busca DNS
No terminal dois do Cloud Shell, faça uma pesquisa em storage.googleapis.com.
dig AAAA storage.googleapis.com
Inspecione a SEÇÃO DE RESPOSTA, o CNAME da zona de DNS particular storage.googleapis.com para private.googleapis.com AAAA 2600:2d00:2:2000::
, exemplo abaixo:
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
No terminal do Cloud Shell 1, inspecione o tcpdump que confirma a resolução de DNS para 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)
Com base em dig e tcpdump, podemos concluir que a resolução de DNS para storage.googleapis.com é alcançada por 2600:2d00:2:2000::
, o endereço IPv6 para private.googleapis.com.
Executar a lista da gsutil para validar o acesso ao Cloud Storage
No terminal 2 do Cloud Shell, crie uma lista com o bucket de armazenamento criado anteriormente usando a gsutil. Mude bucket_name para o bucket que você criou anteriormente.
gsutil -d ls gs://bucket_name
Exemplo usando o bucket de armazenamento em nuvem codelab-ipv6, inspecione a saída de depuração indicando 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:~$
No terminal do Cloud Shell 1, inspecione o tcpdump que confirma a resolução de DNS para 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)
Saia do sistema operacional da instância da caixa de teste local e volte ao prompt do Cloud Shell.
9. Limpeza
No Cloud Shell, faça o seguinte:
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. Parabéns
Parabéns! Você configurou e validou um Acesso privado do Google com IPv6.
Você criou uma infraestrutura no local e em trânsito, além de uma zona de DNS particular que permite a resolução de domínios da API do Google usando IPv6. Você aprendeu a testar e validar o acesso ao IPv6 usando dig e o armazenamento em nuvem.
A Cosmopup acha que os codelabs são incríveis!
Qual é a próxima etapa?
Confira alguns destes codelabs: