Private Service Connect untuk Google API

1. Pengantar

Dengan Private Service Connect, Anda dapat membuat endpoint pribadi menggunakan alamat IP internal global dalam jaringan VPC. Anda bisa menetapkan nama DNS ke alamat IP internal tersebut dengan nama yang bermakna seperti storage-pscendpoint.p.googleapis.com dan bigtable-adsteam.p.googleapis.com. Daripada mengirim permintaan API ke endpoint layanan publik seperti storage.googleapis.com, Anda dapat mengirim permintaan tersebut ke endpoint Private Service Connect yang bersifat pribadi dan internal untuk jaringan VPC Anda.

Nama dan alamat IP ini bersifat internal untuk jaringan VPC Anda dan setiap jaringan lokal yang terhubung menggunakan tunnel Cloud VPN atau lampiran Cloud Interconnect (VLAN).

Anda dapat mengontrol traffic mana yang menuju ke endpoint, dan dapat menunjukkan bahwa traffic tetap berada di dalam Google Cloud.

Yang akan Anda pelajari

  • Kasus penggunaan koneksi layanan pribadi
  • Persyaratan jaringan
  • API yang didukung
  • Membuat endpoint Private Service Connect
  • Membuat bucket Cloud Storage
  • Membuat dan mengupdate zona pribadi Cloud DNS
  • Membuat NAT GW untuk mengakses googleapis publik
  • Membuat dan mengupdate file konfigurasi BOTO
  • Jalankan daftar gsutil di VM1 yang di-resolve terhadap endpoint layanan PSC Anda
  • Jalankan gsutil list pada VM2 yang di-resolve terhadap googleapis.com publik.
  • Menggunakan Tcpdump untuk memvalidasi resolusi DNS

Yang Anda butuhkan

  • Mengetahui editor DNS, nano, atau vi

2. Kasus penggunaan koneksi layanan pribadi

Anda dapat membuat beberapa endpoint Private Service Connect di jaringan VPC yang sama. Tidak ada batasan bandwidth untuk endpoint tertentu. Karena endpoint Private Service Connect menggunakan alamat IP internal global, endpoint tersebut dapat digunakan oleh resource apa pun di jaringan VPC Anda.

Dengan beberapa endpoint, Anda dapat menentukan jalur jaringan yang berbeda menggunakan Cloud Router dan aturan firewall.

  • Anda dapat membuat aturan firewall untuk mencegah beberapa VM mengakses Google API melalui endpoint Private Service Connect, sekaligus mengizinkan VM lain memiliki akses.
  • Anda dapat memiliki aturan firewall pada instance VM yang melarang semua traffic ke internet; traffic yang dikirim ke endpoint Private Service Connect masih akan menjangkau Google.
  • Jika memiliki host lokal yang terhubung ke VPC menggunakan tunnel Cloud VPN atau lampiran Cloud Interconnect (VLAN), Anda dapat mengirim beberapa permintaan melalui tunnel atau VLAN saat mengirim permintaan lain melalui internet publik. Konfigurasi ini memungkinkan Anda melewati tunnel atau VLAN untuk layanan seperti Google Buku yang tidak didukung oleh Akses Google Pribadi. Untuk membuat konfigurasi ini, buat endpoint Private Service Connect, beri tahu alamat IP endpoint Private Service Connect menggunakan iklan rute kustom Cloud Router, dan aktifkan kebijakan penerusan masuk Cloud DNS. Aplikasi dapat mengirim beberapa permintaan melalui tunnel Cloud VPN atau lampiran Cloud Interconnect (VLAN) dengan menggunakan nama endpoint Private Service Connect, dan lainnya melalui internet dengan menggunakan nama DNS default.
  • Jika Anda menghubungkan jaringan lokal ke jaringan VPC menggunakan beberapa lampiran Cloud Interconnect (VLAN), Anda dapat mengirim beberapa traffic dari infrastruktur lokal melalui satu VLAN dan sisanya melalui satu VLAN, seperti yang ditunjukkan pada gambar 2. Hal ini memungkinkan Anda menggunakan jaringan area luas Anda sendiri, bukan jaringan Google, dan untuk mengontrol perpindahan data guna memenuhi persyaratan geografis. Untuk membuat konfigurasi ini, buat dua endpoint Private Service Connect. Buat pemberitahuan rute kustom untuk endpoint pertama pada sesi BGP Cloud Router yang mengelola VLAN pertama, dan buat iklan rute kustom yang berbeda untuk endpoint kedua pada sesi BGP Cloud Router yang mengelola VLAN kedua. Host lokal yang dikonfigurasi untuk menggunakan nama endpoint Private Service Connect akan mengirim traffic melalui lampiran Cloud Interconnect (VLAN) yang sesuai.
  • Anda juga dapat menggunakan beberapa lampiran Cloud Interconnect (VLAN) dalam topologi aktif/aktif. Jika Anda mengiklankan alamat IP endpoint Private Service Connect yang sama menggunakan pemberitahuan rute kustom untuk sesi BGP di Cloud Router yang mengelola VLAN, maka paket yang dikirim dari sistem lokal ke endpoint akan dirutekan melalui VLAN menggunakan ECMP.

5e142c2fbf6f010e.pngS

Gambar 1. Dengan mengonfigurasi Private Service Connect, Cloud Router, dan host lokal, Anda dapat mengontrol lampiran Cloud Interconnect (VLAN) mana yang digunakan untuk mengirim traffic ke Google API.

3. Persyaratan jaringan

Untuk menggunakan Private Service Connect, instance virtual machine (VM) tanpa alamat IP eksternal harus memiliki antarmuka utamanya di subnet dengan Akses Google Pribadi diaktifkan.

VM dengan alamat IP eksternal dapat mengakses Google API dan layanan Google menggunakan endpoint Private Service Connect, terlepas dari apakah Akses Google Pribadi diaktifkan untuk subnetnya atau tidak. Konektivitas ke endpoint Private Service Connect tetap berada dalam jaringan Google.

Endpoint Private Service Connect tidak dapat diakses dari jaringan VPC yang di-peering.

API yang didukung

Saat membuat endpoint Private Service Connect, Anda memilih paket API yang perlu diakses: all-apis atau vpc-sc.

Paket API memberikan akses ke API yang sama yang tersedia melalui VIP Akses Google Pribadi.

  • Paket all-apis menyediakan akses ke API yang sama dengan private.googleapis.com.
  • Paket vpc-sc menyediakan akses ke API yang sama dengan restricted.googleapis.com.

4. Topologi Codelab & kasus penggunaan

2ac275eb86f26338.pngS

Gambar1 - Topologi Codelab

Kasus penggunaan Codelab -

Pelanggan kami memerlukan kombinasi akses googleapis pribadi (interkoneksi) dan publik untuk transfer data penyimpanan cloud. Untuk memenuhi persyaratan pelanggan, kami akan men-deploy Private Service Connect yang terdiri dari alamat /32 unik, konfigurasi BOTO, dan pembaruan data DNS. Mesin virtual 1 akan menggunakan PSC untuk akses bucket penyimpanan cloud; sebaliknya, VM2 akan menggunakan rentang IP googleapis.com publik melalui NAT GW.

Semua aspek lab di-deploy dalam Google Cloud Platform, tetapi kasus penggunaan yang sama berlaku untuk deployment Hybrid Cloud yang memerlukan pemisahan traffic.

5. Penyiapan dan Persyaratan

Penyiapan lingkungan mandiri

  1. Login ke Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. (Jika belum memiliki akun Gmail atau G Suite, Anda harus membuatnya.)

MrEseyJH4tg9PuS3GzJa72onCqawwQiRm04c0YjnpR6WD3IciP1ICDh5e5RoxrG3tc5y44_Ynn9GB0Igjo3sTE0BlsAnCxJdhXn7egP3tX4rkzkub7ZCjOKc70kJvl07REnmPb3TGg

HgKQ1sLCGDGbz0e3RCc-FNa3fQliCtq67H-Oj9jzzYn_upkmNN1lOMQrQm8Jdvo6EEYAvSwDEjpH37bIG9ouBJcmS_xFYV1IHJoyAhsasS1SfYtZkO-RBwWPXRrr3Zt4r31ETcjJeQ

KHAY2ncSMFGZ2vGxcMEcNoIy_cuWGCaWAsrH0KsOVwkV5e93Ypfcq3sQ_HPIrV-NSocegQN2PnRUku_CVi1MM89O6qHIU6E32ZypJPxojkbRTJXET5JvtskIXgzFMk18-4NnNjzCJA

Ingat project ID, nama unik di semua project Google Cloud (maaf, nama di atas telah digunakan dan tidak akan berfungsi untuk Anda!) Project ID tersebut selanjutnya akan dirujuk di codelab ini sebagai PROJECT_ID.

  1. Selanjutnya, Anda harus mengaktifkan penagihan di Cloud Console untuk menggunakan resource Google Cloud.

Menjalankan operasi dalam codelab ini seharusnya tidak memerlukan banyak biaya, bahkan mungkin tidak sama sekali. Pastikan untuk mengikuti petunjuk yang ada di bagian "Membersihkan" yang memberi tahu Anda cara menonaktifkan resource sehingga tidak menimbulkan penagihan di luar tutorial ini. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.

Mulai Cloud Shell

Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.

Dari GCP Console, klik ikon Cloud Shell di toolbar kanan atas:

yEqEFRN4OGfeGJEfJplSt5sGY95BluU78i3Lk0Opo9caOYfrWUPBi_RglIfo9x078tH5Z_Obgq1wOhrEPV8k5OvMgI5e3aam1a7teXuimwTy-evcupc34_UEMmfAFkV-hnXwl559rg

Hanya perlu waktu beberapa saat untuk penyediaan dan terhubung ke lingkungan. Jika sudah selesai, Anda akan melihat tampilan seperti ini:

BxRCLVCDNXX4OxwHppzaY9ghvuFTsgsozreyEHvRK9GPfsh3sW-kdwev6_gZdkX5FWPvb7M_Vp4FoyjFWwZxBMK6CLXiPwJgFbhz8Tgec-tyQR7GEdNjGMBca052yM8ga0UqzdHAmw

Mesin virtual ini berisi semua alat pengembangan yang Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Semua pekerjaan Anda di lab ini dapat dilakukan hanya dengan browser.

6. Sebelum memulai

Mengaktifkan API

Di dalam Cloud Shell, pastikan project ID Anda sudah disiapkan

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

Aktifkan semua layanan yang diperlukan

gcloud services enable compute.googleapis.com
gcloud services enable servicedirectory.googleapis.com
gcloud services enable dns.googleapis.com

7. Buat jaringan VPC

Jaringan VPC

Dari Cloud Shell

gcloud compute networks create psc-lab --subnet-mode custom

Output

Created
NAME     SUBNET_MODE  BGP_ROUTING_MODE  IPV4_RANGE  GATEWAY_IPV4
psc-lab  CUSTOM       REGIONAL

Buat Subnet

Dari Cloud Shell

gcloud compute networks subnets create psclab-subnet \
        --network psc-lab --range 10.0.0.0/24 --region us-central1 

–enable-private-ip-google-access

Output

Created
NAME             REGION       NETWORK  RANGE
psclab-subnet  us-central1  psc-lab  10.0.0.0/24

Buat Aturan Firewall

Dari Cloud Shell

gcloud compute firewall-rules create psclab-ssh \
        --network psc-lab --allow tcp:22 --source-ranges=35.235.240.0/20

Output

NAME        NETWORK  DIRECTION  PRIORITY  ALLOW   DENY  DISABLED
psclab-ssh  psc-lab  INGRESS    1000      tcp:22        False

Membuat instance Cloud NAT

Membuat Cloud Router

Dari Cloud Shell

gcloud compute routers create crnat \
    --network psc-lab \
    --asn 65000 \
    --region us-central1

Membuat Cloud NAT

Dari Cloud Shell

gcloud compute routers nats create cloudnat \
    --router=crnat \
    --auto-allocate-nat-external-ips \
    --nat-all-subnet-ip-ranges \
    --enable-logging \
    --region us-central1

8. Membuat endpoint Private Service Connect

Saat mengonfigurasi IP endpoint Private Service Connect <pscendpointip>, Anda harus memberikan alamat IP unik yang tidak ditentukan di VPC Anda.

Dari Cloud Shell

gcloud beta compute addresses create psc-ip \
    --global \
    --purpose=PRIVATE_SERVICE_CONNECT \
    --addresses=<pscendpointip> \
    --network=psc-lab

Simpan 'pscendpointip' selama durasi lab

(gcloud compute addresses list --filter=name:psc-ip --format="value(address)")

pscendpointip=$(gcloud compute addresses list --filter=name:psc-ip --format="value(address)")
echo $pscendpointip

Buat aturan penerusan untuk menghubungkan endpoint ke Google API dan layanan Google.

Dari Cloud Shell

gcloud beta compute forwarding-rules create pscendpoint \
    --global \
    --network=psc-lab \
    --address=psc-ip \
    --target-google-apis-bundle=all-apis

Mencantumkan endpoint Private Service Connect yang dikonfigurasi

Dari Cloud Shell

gcloud compute forwarding-rules list  \
--filter target="(all-apis OR vpc-sc)" --global

Menjelaskan endpoint Private Service Connect yang dikonfigurasi

Dari Cloud Shell

gcloud compute forwarding-rules describe \
    pscendpoint --global

9. Membuat bucket

Buat bucket Cloud Storage dan ganti BUCKET_NAME dengan nama unik global yang Anda inginkan.

Dari Cloud Shell

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

Simpan ‘BUCKET_NAME' selama durasi lab

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME

10. Konfigurasi DNS

Misalkan Anda memiliki aplikasi yang menggunakan Google Cloud Storage. Tanpa Private Service Connect, aplikasi Anda mungkin terhubung ke 'storage.googleapis.com', yang secara default ditetapkan ke beberapa alamat publik. Dengan Private Service Connect, Anda dapat membuat dan menggunakan nama seperti 'storage-psclab.p.googleapis.com'. Nama dan alamat bersifat pribadi untuk jaringan VPC Anda dan semua jaringan lokal yang terpasang.

Private Service Connect untuk DNS mengikuti konvensi penamaan, SERVICE-ENDPOINT.p.googleapis.com. Pada contoh di atas, "{i>storage<i}" adalah SERVICE & "psclab" adalah ENDPOINT. Sangat penting untuk menyertakan "-" antara SERVICE dan ENDPOINT.

Untuk mengakses Cloud Storage menggunakan endpoint Private Service Connect, buat data DNS (A) storage-psclab.p.googleapis.com yang mengarah ke alamat IP endpoint Private Service Connect.

Buat Zona Pribadi DNS

gcloud dns --project=$projectname managed-zones create psc-dns-zone --description="" --dns-name="p.googleapis.com." --visibility="private" --networks="psc-lab"

Membuat Data A DNS

gcloud dns --project=$projectname record-sets transaction start --zone=psc-dns-zone

gcloud dns --project=$projectname record-sets transaction add $pscendpointip --name=storage-pscendpoint.p.googleapis.com. --ttl=300 --type=A --zone=psc-dns-zone

gcloud dns --project=$projectname record-sets transaction execute --zone=psc-dns-zone

11. Membuat Virtual Machine

Membuat Virtual Machine (psc-instance-1) yang digunakan untuk memvalidasi Private Service Connect

Dari Cloud Shell

  gcloud compute instances create psc-instance-1 \
    --subnet psclab-subnet \
    --zone us-central1-a \
    --image=centos-7-v20210122 \
    --image-project=centos-cloud \
    --no-address \
    --metadata=startup-script=yum\ install\ tcpdump\ -y$'\n'yum\ install\ bind-utils\ -y$'\n'yum\ install\ nano\ -y 

Login ke instance VM (psc-instance-1)

Jalankan SSH ke VM melalui Cloud Shell

gcloud compute ssh --zone "us-central1-a" "psc-instance-1" --project "$projectname"

Buat terminal Cloud Shell tambahan dengan mengklik + (screenshot di bawah) tiga kali.

69ea94e1527912bb.pngS

Membuat Virtual Machine (psc-instance-2) yang digunakan untuk memvalidasi Googleapis publik

Dari tab 2

  gcloud compute instances create psc-instance-2 \
    --subnet psclab-subnet \
    --zone us-central1-a \
    --image=centos-7-v20210122 \
    --image-project=centos-cloud \
    --no-address \
    --metadata=startup-script=yum\ install\ tcpdump\ -y$'\n'yum\ install\ bind-utils\ -y$'\n'yum\ install\ nano\ -y 

Dari tab 2 SSH ke VM melalui Cloud Shell

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


gcloud compute ssh --zone "us-central1-a" "psc-instance-2" --project "$projectname"

Dari tab 3 SSH ke psc-instance-1 melalui Cloud Shell

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


gcloud compute ssh --zone "us-central1-a" "psc-instance-1" --project "$projectname"

Dari tab 4 Shell SSH ke psc-instance-2 melalui Cloud Shell

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


gcloud compute ssh --zone "us-central1-a" "psc-instance-2" --project "$projectname"

12. Memverifikasi perilaku Gsutil yang ada

Dari tab 4 (psc-instance-2), mulai tcpdump dan pantau traffic DNS

sudo tcpdump -vv -i eth0 port 53

Periksa pencarian DNS bucket penyimpanan dari tab 2 (psc-instance-2)

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME
gsutil -D ls gs://$BUCKET_NAME

Periksa gsutil debug, HOST storage.googleapis.com digunakan untuk resolusi DNS

<snip>
send: 'GET /storage/v1/b/$BUCKET_NAME/o?delimiter=%2F&projection=noAcl&versions=False&fields=prefixes%2CnextPageToken%2Citems%2Fname&alt=json&maxResults=1000 HTTP/1.1\r\nHost: storage.googleapis.com\r\ncontent-length: 0\r\nauthorization: Bearer ya29.c.KpkB7wfaMjfc_WXEKCeNF4Md0fEHnfDU7tqBf3cd0u43yEmYXqj8fX_X5wWdNdDVH6k1EkjeAeIJDzKGvyjPOkf1Io2kVeUqYX69sDv53huW1NslffjAHKchbZ0CP3Cg83TS3Pa55jLcuE0TLbYycVrgSbD3H90LaapUGbWD3kj4IsJLf9J8R98Bqobu8HZwwqk92hlZ4zVzRqOM\r\naccept-encoding: gzip, deflate\r\naccept: application/json\r\nuser-agent: apitools Python/2.7.5 gsutil/4.57 (linux2) analytics/disabled interactive/True command/ls google-cloud-sdk/324.0.0\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
<snip>

Dari tab 4 (psc-instance-2), pastikan data DNS publik GoogleAPI.com A digunakan saat mengakses bucket penyimpanan.

metadata.google.internal.domain > psc-instance-2.c.yourprojectname.internal.33973: [udp sum ok] 36442 q: A? storage.googleapis.com. 11/0/0 storage.googleapis.com. A 108.177.111.128, storage.googleapis.com. A 142.250.128.128, storage.googleapis.com. A 74.125.70.128, storage.googleapis.com. A 74.125.201.128, storage.googleapis.com. A 64.233.183.128, storage.googleapis.com. A 173.194.198.128, storage.googleapis.com. A 172.217.219.128, storage.googleapis.com. A 142.250.136.128, storage.googleapis.com. A 209.85.234.128, storage.googleapis.com. A 172.217.212.128, storage.googleapis.com. A 172.217.214.128

13. Memodifikasi perilaku Gsutil

Ingat di langkah sebelumnya, Anda membuat Zona DNS Pribadi dan data A yang dipetakan ke alamat IP endpoint PSC. Pada langkah berikut, sekarang kita akan mengontrol perilaku gsutil dengan memperbarui file VM BOTO di psc-instance-1.

Lihat konfigurasi BOTO default dari terminal instance VM dari tab 1 (psc-instance-1)

[psc-instance ~]$ more  /etc/boto.cfg

Output (project_id Anda akan berbeda)

[GSUtil]
default_project_id  = 234086459238
default_api_version = 2

[GoogleCompute]
service_account = default

Update konfigurasi BOTO menggunakan Editor nano atau VI, pastikan untuk menyalin dan menempelkan semua entri.

Contoh: sudo nano /etc/boto.cfg

atau

Contoh: sudo vi /etc/boto.cfg

Dari tab terminal instance VM 1(psc-instance-1)

[Credentials]
gs_host = storage-pscendpoint.p.googleapis.com
gs_host_header = storage.googleapis.com
gs_json_host = storage-pscendpoint.p.googleapis.com
gs_json_host_header = www.googleapis.com

Validasi konfigurasi, urutan [Credentials] sangat penting untuk pencarian DNS

more /etc/boto.cfg
[Credentials]
gs_host = storage-pscendpoint.p.googleapis.com
gs_host_header = storage.googleapis.com
gs_json_host = storage-pscendpoint.p.googleapis.com
gs_json_host_header = www.googleapis.com

[GSUtil]
default_project_id  = 234086459238
default_api_version = 2

[GoogleCompute]
service_account = default

14. Memverifikasi perilaku pencarian gsutil yang diperbarui

Dari tab 3 (psc-instance-1), mulai tcpdump dan pantau traffic DNS

sudo tcpdump -vv -i eth0 port 53

Memeriksa pencarian gsutil bucket penyimpanan dari tab 1 (psc-instance-1)

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME

gsutil -D ls gs://$BUCKET_NAME

Log debug akan mengonfirmasi bahwa bucket penyimpanan dapat dijangkau melalui endpoint "pscendpoint" Private Service Connect

Output:

<snip>
INFO 0131 22:14:18.795986 base_api.py] Making http GET to https://storage-pscendpoint.p.googleapis.com/storage/v1/b/$BUCKET_NAME/o?delimiter=%2F&projection=noAcl&versions=False&fields=prefixes%2CnextPageToken%2Citems%2Fname&alt=json&maxResults=1000
INFO 0131 22:14:18.796415 base_api.py] Headers: {u'Host': 'www.googleapis.com',
 'accept': 'application/json',
 'accept-encoding': 'gzip, deflate',
 'content-length': '0',
 'user-agent': 'apitools Python/2.7.5 gsutil/4.57 (linux2) analytics/disabled interactive/True command/ls google-cloud-sdk/324.0.0'}
INFO 0131 22:14:18.796502 base_api.py] Body: (none)
connect: (storage-pscendpoint.p.googleapis.com, 443)
send: 'GET /storage/v1/b/psc-bucket/o?delimiter=%2F&projection=noAcl&versions=False&fields=prefixes%2CnextPageToken%2Citems%2Fname&alt=json&maxResults=1000 HTTP/1.1\r\ncontent-length: 0\r\naccept-encoding: gzip, deflate\r\naccept: application/json\r\nuser-agent: apitools Python/2.7.5 gsutil/4.57 (linux2) analytics/disabled interactive/True command/ls google-cloud-sdk/324.0.0\r\nhost: www.googleapis.com\r\nauthorization: Bearer ya29.c.KpkB7wd3XWiYeRyTuth5_HPlNV-hPwc2Nn7RSIeMpzrpa_j4EsMPl2m_mDGKAcGHvYIgiC5bT2UVQirAPpSbbpToa6G6lkaBbH5SZwHwgNXYfisp5Ww1UjXe4rTa69a_Wp0WesafcwPNnYzDo3xf5VGh3iGhySA04kTXuyT--MgOU8U-XLII2LJQxUWlV8KEdrvyCuqRb-jsDdk_\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
<snip>

Dari Tab 3 (psc-instance-1), verifikasi IP endpoint PSC Anda adalah data A DNS yang digunakan saat mencoba mengakses bucket penyimpanan.

@psc-instance-1 ~]$ sudo tcpdump -vv -i eth0 port 53
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
05:02:33.936256 IP (tos 0x0, ttl 64, id 55416, offset 0, flags [DF], proto UDP (17), length 82)
    psc-instance-1.c.yourprojectname.internal.42296 > metadata.google.internal.domain: [bad udp cksum 0x5e4e -> 0xcceb!] 34796+ A? storage-pscendpoint.p.googleapis.com. (54)
05:02:33.936269 IP (tos 0x0, ttl 64, id 55417, offset 0, flags [DF], proto UDP (17), length 82)
    psc-instance-1.c.yourprojectname.internal.42296 > metadata.google.internal.domain: [bad udp cksum 0x5e4e -> 0x3ebd!] 5632+ AAAA? storage-pscendpoint.p.googleapis.com. (54)
05:02:33.944018 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 98)
    metadata.google.internal.domain > psc-instance-1.c.yourprojectname.42296: [udp sum ok] 34796 q: A? storage-pscendpoint.p.googleapis.com. 1/0/0 storage-pscendpoint.p.googleapis.com. A 10.10.110.10 (70)
05:02:33.946005 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 175)

Verifikasi IP endpoint Private Service Connect kini digunakan untuk resolusi DNS

Dari tab1

nslookup storage-pscendpoint.p.googleapis.com

Output

@psc-instance ~]$ nslookup storage-pscendpoint.p.googleapis.com
Server:         169.254.169.254
Address:        169.254.169.254#53

Non-authoritative answer:
Name:   storage-pscendpoint.p.googleapis.com
Address: <pscip>

15. Langkah-langkah pembersihan

Keluar dari instance VM (semua tab)

exit

Dari satu terminal Cloud Shell, hapus komponen lab

gcloud compute routers nats delete cloudnat --router=crnat --region=us-central1 --quiet

gcloud compute routers delete crnat --region=us-central1 --quiet

gcloud beta compute forwarding-rules delete pscendpoint --global --quiet

gcloud beta compute addresses delete psc-ip --global --quiet

gsutil rm -r gs://$BUCKET_NAME

gcloud compute instances delete psc-instance-1 --zone=us-central1-a --quiet

gcloud compute instances delete psc-instance-2 --zone=us-central1-a --quiet

gcloud compute firewall-rules delete psclab-ssh --quiet

gcloud compute networks subnets delete psclab-subnet --region us-central1 --quiet

gcloud compute networks delete psc-lab --quiet

Dari Console, pastikan Anda melihat project yang benar, lalu pilih Layanan Jaringan → Cloud DNS

d0ed4bd585006e45.png

Identifikasi & klik 'psc-dns-zone'

903532e68a262111.pngS

Pilih kumpulan kumpulan data 'storage-pscendpoint.p.googleapis.com' lalu klik Delete Record Sets

e89394b43ddb5ce2.png

Klik Delete Zone untuk menyelesaikan pembersihan lab

b2a612d7b3a80030.png

16. Selamat!

Selamat, Anda telah menyelesaikan codelab.

Yang telah kita bahas

  • Kasus penggunaan koneksi layanan pribadi
  • Persyaratan jaringan
  • API yang didukung
  • Membuat endpoint Private Service Connect
  • Berhasil membuat bucket Cloud Storage
  • Membuat zona pribadi Cloud DNS
  • Memperbarui file konfigurasi BOTO
  • Membuat NAT GW
  • Jalankan daftar gsutil di VM1 yang di-resolve terhadap endpoint layanan PSC Anda
  • Jalankan gsutil list pada VM2 yang di-resolve terhadap googleapis.com publik.
  • Menggunakan Tcpdump untuk memvalidasi resolusi DNS