Mengakses Google API dari host lokal menggunakan alamat IPv6

1. Pengantar

Akses Google Pribadi untuk host lokal menyediakan cara bagi sistem lokal untuk terhubung ke Google API dan layanan Google dengan mengarahkan traffic melalui tunnel Cloud VPN atau lampiran VLAN untuk Cloud Interconnect. Akses Google Pribadi untuk host lokal adalah cara alternatif untuk terhubung ke Google API dan layanan Google melalui internet.

Akses Google Pribadi untuk host lokal mengharuskan Anda mengarahkan permintaan untuk Google API ke alamat IP virtual (VIP). Untuk IPv6, alamat IP berikut digunakan:

  • Untuk private.googleapis.com: 2600:2d00:0002:2000::/64
  • Untuk restricted.googleapis.com: 2600:2d00:0002:1000::/64

VIP yang Anda pilih menentukan layanan mana yang dapat Anda akses. Dalam codelab ini, kita akan menggunakan private.googleapis.com. Untuk mengetahui informasi selengkapnya, lihat Opsi domain.

Codelab ini menjelaskan cara mengaktifkan Akses Google Pribadi untuk host lokal yang menggunakan alamat IPv6. Anda akan menyiapkan jaringan VPC yang disebut on-premises-vpc untuk mewakili lingkungan lokal. Untuk deployment Anda, vpc lokal tidak akan ada, tetapi jaringan hybrid ke pusat data lokal atau penyedia cloud Anda akan digunakan.

Yang akan Anda build

Dalam codelab ini, Anda akan membuat jaringan IPv6 menyeluruh yang menunjukkan akses lokal ke API penyimpanan cloud menggunakan CNAME *.googleapis.com ke alamat IPv6 private.googleapis.com 2600:2d00:0002:2000::/64 seperti yang diilustrasikan dalam Gambar 1.

Gambar 1

a0fc56abf24f3535.png

Yang akan Anda pelajari

  • Cara membuat jaringan VPC stack ganda
  • Cara membuat VPN HA dengan IPv6
  • Cara mengupdate DNS untuk mengakses Akses Google Pribadi
  • Cara membuat dan memvalidasi konektivitas Akses Google Pribadi

Yang Anda butuhkan

  • Project Google Cloud

2. Sebelum memulai

Mengupdate project agar mendukung codelab

Codelab ini menggunakan $variables untuk membantu penerapan konfigurasi gcloud di Cloud Shell.

Di dalam Cloud Shell, lakukan hal berikut:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname

3. Membuat vpc transit

f6932f551b5acac0.png

Membuat jaringan VPC transit

Di dalam Cloud Shell, lakukan hal berikut:

gcloud compute networks create transit-vpc --project=$projectname --subnet-mode=custom --mtu=1460 --enable-ula-internal-ipv6 --bgp-routing-mode=regional

4. Membuat jaringan lokal

58d75cbc9cb20a51.png

Jaringan VPC ini mewakili lingkungan lokal.

Membuat jaringan VPC lokal

Di dalam Cloud Shell, lakukan hal berikut:

gcloud compute networks create on-premises-vpc --project=$projectname --subnet-mode=custom --mtu=1460 --enable-ula-internal-ipv6 --bgp-routing-mode=regional

Membuat subnet

Di dalam Cloud Shell, lakukan hal berikut:

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. Membuat VPN dengan ketersediaan tinggi (HA) untuk transit-vpc dan VM lokal

Membuat GW VPN dengan ketersediaan tinggi (HA) untuk transit-vpc

a0fc56abf24f3535.png

Saat setiap gateway dibuat, dua alamat IPv4 eksternal akan dialokasikan secara otomatis, masing-masing untuk setiap antarmuka gateway. Catat alamat IP ini untuk digunakan nanti dalam langkah-langkah konfigurasi.

Di dalam Cloud Shell, buat GW VPN dengan ketersediaan tinggi (HA) dengan jenis stack IPV4_IPV6.

gcloud compute vpn-gateways create transit-vpc-vpngw \
   --network=transit-vpc\
   --region=us-central1 \
   --stack-type=IPV4_IPV6

Membuat GW VPN dengan ketersediaan tinggi (HA) untuk vpc on-premise

Di dalam Cloud Shell, buat GW VPN dengan ketersediaan tinggi (HA) dengan jenis stack IPV4_IPV6

gcloud compute vpn-gateways create on-premises-vpc-vpngw \
   --network=on-premises-vpc\
   --region=us-central1 \
   --stack-type=IPV4_IPV6

Memvalidasi pembuatan GW VPN dengan ketersediaan tinggi (HA)

Dengan menggunakan konsol, buka Konektivitas Hybrid → VPN → CLOUD VPN GATEWAYS.

c8eed6ca929935bc.png

Membuat Cloud Router untuk transit-vpc

Di dalam Cloud Shell, buat Cloud Router yang terletak di us-central1

gcloud compute routers create transit-vpc-cr-us-central1 \
   --region=us-central1 \
   --network=transit-vpc\
   --asn=65001

Membuat Cloud Router untuk on-premises-vpc

Di dalam Cloud Shell, buat Cloud Router yang terletak di us-central1

gcloud compute routers create on-premises-vpc-cr-us-central1 \
   --region=us-central1 \
   --network=on-premises-vpc \
   --asn=65002

Membuat tunnel VPN untuk transit-vpc

Anda akan membuat dua tunnel VPN di setiap gateway VPN dengan ketersediaan tinggi (HA).

Membuat tunnel VPN0

Di dalam Cloud Shell, buat 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

Membuat tunnel VPN1

Di dalam Cloud Shell, buat 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

Membuat tunnel VPN untuk on-premises-vpc

Anda akan membuat dua tunnel VPN di setiap gateway VPN dengan ketersediaan tinggi (HA).

Membuat tunnel VPN0

Di dalam Cloud Shell, buat 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

Membuat tunnel VPN1

Di dalam Cloud Shell, buat 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

Memvalidasi pembuatan tunnel vpn

Dengan menggunakan konsol, buka Konektivitas Hybrid → VPN → CLOUD VPN DMCAS.

85fd5aef4b2c4010.png

Membuat sesi BGP

Di bagian ini, Anda akan mengonfigurasi antarmuka Cloud Router dan peer BGP.

Saat membuat tunnel VPN yang mengizinkan traffic IPv6, tentukan --enable-ipv6 saat Anda menjalankan perintah add-bgp-peer.

Membuat antarmuka BGP dan peering untuk transit-vpc

Di dalam Cloud Shell, buat antarmuka 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

Di dalam Cloud Shell, buat 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

Di dalam Cloud Shell, buat antarmuka 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

Di dalam Cloud Shell, buat 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

Membuat antarmuka BGP dan peering untuk vpc lokal

Di dalam Cloud Shell, buat antarmuka 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

Di dalam Cloud Shell, buat 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

Di dalam Cloud Shell, buat antarmuka 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

Di dalam Cloud Shell, buat 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

Buka Konektivitas Hybrid → VPN untuk melihat detail tunnel VPN.

e100e31ea22c8124.png

Validasi bahwa transit-vpc mempelajari rute IPv4 dan IPv6 melalui VPN dengan ketersediaan tinggi (HA)

Karena tunnel VPN dengan ketersediaan tinggi (HA) dan sesi BGP telah ditetapkan, rute dari VPC lokal dipelajari dari vCPU transit. Dengan menggunakan konsol, buka jaringan VPC → Jaringan VPC → transit-vpc → ROUTES.

Amati rute dinamis IPv4 dan IPv6 yang telah dipelajari yang diilustrasikan di bawah ini:

216bde7d08d75ec4.pngS

Memvalidasi bahwa on-premises-vpc tidak mempelajari rute melalui VPN dengan ketersediaan tinggi (HA)

Transit-vpc tidak memiliki subnet, sehingga Cloud Router tidak akan mengiklankan subnet apa pun ke on-premises-vpc. Dengan menggunakan konsol, buka jaringan VPC → Jaringan VPC → lokal-vpc → ROUTES.

6. Mengiklankan VIP6 private.googleapis.com

Untuk mengakses Akses Google Pribadi dari infrastruktur lokal, Anda harus membuat iklan rute khusus dari transit-vpc. Alamat IPv6 2600:2d00:0002:2000:: akan diiklankan ke lingkungan lokal dan digunakan oleh beban kerja untuk mengakses Google API seperti Cloud Storage, Cloud BigQuery, dan Cloud Bigtable setelah DNS lokal diperbarui.

Dalam codelab ini, Anda akan mengaktifkan akses API ke sebagian besar Google API dan layanan Google, terlepas dari apakah keduanya didukung oleh Kontrol layanan VPC atau tidak.

Dari konsol, buka Konektivitas Hybrid → Cloud Routers → transit-vpc-cr-us-central1, lalu pilih EDIT.

3e36e3b5ea741ec5.pngS

Di bagian Advertised routes, pilih opsi Create custom routes, perbarui kolom berdasarkan contoh di bawah, pilih DONE, lalu klik SAVE.

9283aba7b214f70d.png

Validasi bahwa vpc lokal mempelajari rute IPv6

Setelah VIP private.googleapis.com IPv6 diiklankan dari transit-vpc, on-premises-vpc akan mempelajari rute dinamis IPv6 untuk VIP. Dengan menggunakan konsol, buka jaringan VPC → Jaringan VPC → lokal-vpc → ROUTES.

Amati rute IPv6 yang ditampilkan dari transit-vpc:

caf3b79b035b2a20.png

7. Membuat komunikasi ke Google API menggunakan Akses Google Pribadi

Di bagian berikut, kita akan mengakses dan memvalidasi konektivitas ke Cloud Storage menggunakan VIP private.googleapis.com IPv6. Untuk melakukannya, kita perlu melakukan tindakan berikut di on-premises-vpc.

  • Buat aturan firewall masuk guna mengizinkan akses Identity-Aware Proxy (IAP) untuk akses SSH.
  • Membuat Cloud Router dan Cloud NAT untuk mendownload tcpdump dan dnsutils.
  • Buat zona Cloud DNS pribadi untuk googleapis.com.
  • Membuat bucket Cloud Storage.

Membuat aturan firewall IAP

Untuk mengizinkan IAP terhubung ke instance VM Anda, buat aturan firewall yang:

  • Berlaku untuk semua instance VM yang ingin Anda akses menggunakan IAP.
  • Mengizinkan traffic masuk dari rentang IP 35.235.240.0/20. Rentang ini berisi semua alamat IP yang digunakan IAP untuk penerusan TCP.

Di dalam Cloud Shell, buat aturan 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

Konfigurasi Cloud Router dan NAT

Cloud NAT digunakan di codelab untuk penginstalan paket software karena instance VM tidak memiliki alamat IP eksternal.

Di dalam Cloud Shell, buat Cloud Router.

gcloud compute routers create on-premises-cr-us-central1-nat --network on-premises-vpc --region us-central1

Di dalam Cloud Shell, buat 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

Membuat instance pengujian, testbox lokal

Membuat instance pengujian yang akan digunakan untuk menguji dan memvalidasi konektivitas ke IPv6 private.googleapis.com VIP.

Di dalam Cloud Shell, buat instance.

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"

Membuat zona pribadi Cloud DNS

Kita akan menggunakan Cloud DNS untuk membuat zona pribadi dan kumpulan data untuk *.googleapis.com, di bawah ini adalah langkah-langkah yang diperlukan.

Di dalam Cloud Shell, buat zona DNS pribadi v6-googleapis.com.

gcloud dns --project=$projectname managed-zones create v6-googleapis --description="" --dns-name="googleapis.com." --visibility="private" --networks="on-premises-vpc"

Di dalam Cloud Shell, buat data AAAA untuk private.googleapis.com. yang mengarah ke alamat 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::"

Di dalam Cloud Shell, buat CNAME untuk *.googleapis.com agar mengarah ke private.googleapis.com.

gcloud dns --project=$projectname record-sets create *.googleapis.com. --zone="v6-googleapis" --type="CNAME" --ttl="300" --rrdatas="private.googleapis.com."

Memvalidasi zona pribadi Cloud DNS

Buka Layanan jaringan → Cloud DNS → v6-googleapis.

455e355195a2a48f.pngS

Membuat bucket Cloud Storage

Di dalam Cloud Shell, buat bucket Cloud Storage dan ganti bucket_name dengan nama unik global yang Anda inginkan. Coba nama lain jika sudah digunakan.

gsutil mb  -l us-central1 -b on gs://bucket_name

8. Mengakses dan memvalidasi Google API menggunakan alamat IPv6

Di bagian berikut, Anda akan melakukan SSH ke dua terminal Cloud Shell. Terminal pertama digunakan untuk memvalidasi pencarian IPv6 menggunakan {i>tcpdump<i} sedangkan Terminal kedua digunakan untuk mengakses bucket Cloud Storage.

Di dalam Cloud Shell, jalankan ssh untuk menguji instance on-premises-testbox.

 gcloud compute ssh --zone "us-central1-a" "on-premises-testbox" --project "$projectname"

Di dalam Cloud Shell terminal satu, mulai tcpdump dan pantau port 53 untuk traffic DNS.

sudo tcpdump -nn -i ens4 port 53

Contohnya seperti di bawah ini.

user@on-premises-testbox:~$ sudo tcpdump -nn -i ens4 port 53

Buka terminal Cloud Shell baru dengan memilih "+". Setelah tab baru dibuka, perbarui variabel nama project.

Di dalam Cloud Shell, perbarui variabel nama project.

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname

Di dalam Cloud Shell dua, lakukan ssh untuk menguji instance on-premises-testbox.

gcloud compute ssh --zone "us-central1-a" "on-premises-testbox" --project "$projectname"

Melakukan dig untuk memvalidasi pencarian DNS

Di dalam terminal Cloud Shell kedua, lakukan dig terhadap storage.googleapis.com.

dig AAAA storage.googleapis.com

Periksa BAGIAN JAWABAN, CNAME zona DNS pribadi storage.googleapis.com ke AAAA 2600:2d00:2:2000:: private.googleapis.com, contoh di bawah:

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

Di dalam terminal Cloud Shell satu, periksa tcpdump yang lebih lanjut mengonfirmasi resolusi DNS ke 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)

Berdasarkan dig dan tcpdump, kita dapat menyimpulkan bahwa resolusi DNS ke storage.googleapis.com dicapai melalui 2600:2d00:2:2000::, alamat IPv6 untuk private.googleapis.com.

Jalankan daftar gsutil untuk memvalidasi akses ke penyimpanan cloud

Di dalam terminal Cloud Shell kedua, buat daftar bucket penyimpanan yang dibuat sebelumnya menggunakan gsutil. Ubah bucket_name ke bucket yang Anda buat sebelumnya.

gsutil -d ls gs://bucket_name

Misalnya menggunakan bucket Cloud Storage codelab-ipv6, periksa output debug yang menunjukkan storage.googleapis.com dan 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:~$ 

Di dalam terminal Cloud Shell satu, periksa tcpdump yang lebih lanjut mengonfirmasi resolusi DNS ke 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)

Keluar dari sistem operasi instance on-premises-testbox, kembali ke perintah Cloud Shell.

9. Pembersihan

Di dalam Cloud Shell, lakukan hal berikut:

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. Selamat

Selamat, Anda telah berhasil mengonfigurasi dan memvalidasi Akses Google Pribadi dengan IPv6.

Anda telah membuat infrastruktur transit dan lokal, serta membuat zona DNS pribadi yang mengaktifkan resolusi untuk domain Google API menggunakan IPv6. Anda belajar cara menguji dan memvalidasi akses IPv6 menggunakan dig dan penyimpanan {i>cloud<i}.

Cosmopup menganggap codelab itu luar biasa.

8c2a10eb841f7b01.jpeg

Apa selanjutnya?

Lihat beberapa codelab ini...

Bacaan &Video lebih lanjut

Dokumen referensi