Layanan Terkelola Antarmuka Private Service Connect

1. Pengantar

Antarmuka Private Service Connect adalah resource yang memungkinkan jaringan Virtual Private Cloud (VPC) produser memulai koneksi ke berbagai tujuan dalam jaringan VPC konsumen. Jaringan produsen dan konsumen dapat berada di project dan organisasi yang berbeda.

Jika lampiran jaringan menerima koneksi dari antarmuka Private Service Connect, Google Cloud mengalokasikan alamat IP dari subnet konsumen yang ditentukan oleh lampiran jaringan. Jaringan konsumen dan produsen terhubung dan dapat berkomunikasi menggunakan alamat IP internal.

Koneksi antara lampiran jaringan dan antarmuka Private Service Connect mirip dengan koneksi antara endpoint Private Service Connect dan lampiran layanan, tetapi memiliki dua perbedaan utama:

  • Lampiran jaringan memungkinkan jaringan produsen memulai koneksi ke jaringan konsumen (traffic keluar layanan terkelola), sedangkan endpoint memungkinkan jaringan konsumen memulai koneksi ke jaringan produsen (traffic masuk layanan terkelola).
  • Koneksi antarmuka Private Service Connect bersifat transitif. Ini berarti bahwa jaringan produsen dapat berkomunikasi dengan jaringan lain yang terhubung ke jaringan konsumen.

Yang akan Anda build

Anda akan membuat satu psc-network-lampiran di VPC konsumen yang menghasilkan dua antarmuka PSC sebagai backend ke load balancer internal L4. Dari produsen VPC, tiger akan mengirim curl ke cosmo di backend-vpc. Di VPC produsen, Anda akan membuat rute statis ke traffic tujuan 192.168.20.0/28 next hop sebagai load balancer internal yang akan memanfaatkan antarmuka backend dan PSC berikutnya untuk merutekan traffic ke cosmo. Lihat Gambar 1 untuk ringkasan.

Pendekatan yang sama dapat digunakan dengan layanan terkelola Google yang di-peering VPC ke VPC pelanggan saat menggunakan Akses Layanan Pribadi.

Gambar 1

36dbc7f825a21cbd.png

Yang akan Anda pelajari

  • Cara membuat lampiran jaringan
  • Cara produser dapat menggunakan lampiran jaringan untuk membuat antarmuka PSC sebagai backend
  • Cara membangun komunikasi dari produsen ke konsumen menggunakan ILB sebagai next hop
  • Cara mengizinkan akses dari VM produsen (tiger) ke VM konsumen (cosmo) melalui peering VPC

Yang Anda butuhkan

2. Sebelum memulai

Mengupdate project untuk mendukung tutorial

Tutorial ini menggunakan $variables untuk membantu implementasi konfigurasi gcloud di Cloud Shell.

Di dalam Cloud Shell, lakukan hal berikut:

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

3. Penyiapan Konsumen

Membuat VPC Konsumen

Di dalam Cloud Shell, lakukan hal berikut:

gcloud compute networks create consumer-vpc --project=$projectid --subnet-mode=custom

Membuat subnet Private Service Connect Network Lampiran

Di dalam Cloud Shell, lakukan hal berikut:

gcloud compute networks subnets create intf-subnet --project=$projectid --range=192.168.10.0/28 --network=consumer-vpc --region=us-central1

Membuat VPC backend

Di dalam Cloud Shell, lakukan hal berikut:

gcloud compute networks create backend-vpc --project=$projectid --subnet-mode=custom

Membuat subnet VPC backend

Di dalam Cloud Shell, lakukan hal berikut:

gcloud compute networks subnets create cosmo-subnet-1 --project=$projectid --range=192.168.20.0/28 --network=backend-vpc --region=us-central1

Membuat aturan firewall backend-vpc

Di cloud Shell, buat aturan masuk untuk traffic dari subnet psc-network-lampiran ke cosmo

gcloud compute firewall-rules create allow-ingress-to-cosmo \
    --network=backend-vpc \
    --action=ALLOW \
    --rules=ALL \
    --direction=INGRESS \
    --priority=1000 \
    --source-ranges="192.168.10.0/28" \
    --destination-ranges="192.168.20.0/28" \
    --enable-logging

Konfigurasi Cloud Router dan NAT

Cloud NAT digunakan dalam tutorial untuk penginstalan paket software karena instance VM tidak memiliki alamat IP publik. Cloud NAT mengaktifkan VM dengan alamat IP pribadi untuk mengakses internet.

Di dalam Cloud Shell, buat router cloud.

gcloud compute routers create cloud-router-for-nat --network backend-vpc --region us-central1

Di dalam Cloud Shell, buat gateway NAT.

gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-for-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1

4. Aktifkan IAP

Agar IAP dapat terhubung ke instance VM Anda, buat aturan firewall yang:

  • Berlaku untuk semua instance VM yang Anda inginkan agar dapat diakses dengan 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-consumer \
    --network backend-vpc \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

5. Membuat instance VM konsumen

Di dalam Cloud Shell, buat instance vm konsumen, cosmo

gcloud compute instances create cosmo \
    --project=$projectid \
    --machine-type=e2-micro \
    --image-family debian-11 \
    --no-address \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=cosmo-subnet-1 \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump
      sudo apt-get install apache2 -y
      sudo service apache2 restart
      echo 'Welcome to cosmo's backend server !!' | tee /var/www/html/index.html
      EOF"

Dapatkan dan simpan Alamat IP instance:

Di dalam Cloud Shell, lakukan deskripsi terhadap instance VM cosmo.

gcloud compute instances describe cosmo --zone=us-central1-a | grep  networkIP:

6. Lampiran jaringan Private Service Connect

Lampiran jaringan adalah resource regional yang mewakili sisi konsumen antarmuka Private Service Connect. Anda mengaitkan satu subnet dengan lampiran jaringan, lalu produsen menetapkan IP ke antarmuka Private Service Connect dari subnet tersebut. Subnet harus berada di region yang sama dengan lampiran jaringan. Lampiran jaringan harus berada di region yang sama dengan layanan produsen.

Membuat lampiran jaringan

Di dalam Cloud Shell, buat lampiran jaringan.

gcloud compute network-attachments create psc-network-attachment \
    --region=us-central1 \
    --connection-preference=ACCEPT_MANUAL \
    --producer-accept-list=$projectid \
    --subnets=intf-subnet

Membuat daftar lampiran jaringan

Di dalam Cloud Shell, cantumkan lampiran jaringan.

gcloud compute network-attachments list

Menjelaskan lampiran jaringan

Di dalam Cloud Shell, jelaskan lampiran jaringan.

gcloud compute network-attachments describe psc-network-attachment --region=us-central1

Catat URI psc-network-subdomain yang akan digunakan oleh produsen saat membuat Antarmuka Koneksi Layanan Pribadi. Contohnya:

user$ gcloud compute network-attachments describe psc-network-attachment --region=us-central1
connectionPreference: ACCEPT_MANUAL
creationTimestamp: '2023-06-07T11:27:33.116-07:00'
fingerprint: 8SDsvG6TfYQ=
id: '5014253525248340730'
kind: compute#networkAttachment
name: psc-network-attachment
network: https://www.googleapis.com/compute/v1/projects/$projectid/global/networks/consumer-vpc
producerAcceptLists:
- $projectid
region: https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1
selfLink: https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/networkAttachments/psc-network-attachment
subnetworks:
- https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/subnetworks/intf-subnet

7. Menetapkan peering VPC antara VPC konsumen dan backend

Anda akan membuat koneksi peering VPC antara VPC konsumen dan backend. Langkah ini mereplikasi cara Google membuat konektivitas ke VPC pelanggan untuk layanan terkelola, selain peering lintas organisasi untuk konektivitas jaringan. Peering VPC harus dikonfigurasi dari setiap VPC.

VPC Konsumen ke peering VPC backend

Membuat koneksi peering VPC dari konsumen ke VPC backend

Di dalam Cloud Shell, lakukan hal berikut:

gcloud compute networks peerings create consumer-to-backend-vpc \
    --network=consumer-vpc \
    --peer-project=$projectid \
    --peer-network=backend-vpc \
    --stack-type=IPV4_ONLY

Membuat koneksi peering VPC dari backend ke VPC konsumen

Di dalam Cloud Shell, lakukan hal berikut:

gcloud compute networks peerings create backend-to-consumer-vpc \
    --network=backend-vpc \
    --peer-project=$projectid \
    --peer-network=consumer-vpc \
    --stack-type=IPV4_ONLY

Memvalidasi detail status peering VPC

Di dalam Cloud Shell, pastikan peering VPC berada dalam status "Aktif" & "Terhubung" status.

gcloud compute networks peerings list

Contoh:

user@cloudshell$ gcloud compute networks peerings list
NAME: backend-to-consumer-vpc
NETWORK: backend-vpc
PEER_PROJECT: $projectid
PEER_NETWORK: consumer-vpc
STACK_TYPE: IPV4_ONLY
PEER_MTU: 
IMPORT_CUSTOM_ROUTES: False
EXPORT_CUSTOM_ROUTES: False
STATE: ACTIVE
STATE_DETAILS: [2023-06-07T11:42:27.634-07:00]: Connected.

NAME: consumer-to-backend-vpc
NETWORK: consumer-vpc
PEER_PROJECT: $projectid
PEER_NETWORK: backend-vpc
STACK_TYPE: IPV4_ONLY
PEER_MTU: 
IMPORT_CUSTOM_ROUTES: False
EXPORT_CUSTOM_ROUTES: False
STATE: ACTIVE
STATE_DETAILS: [2023-06-07T11:42:27.634-07:00]: Connected.

8. Penyiapan Produsen

Membuat VPC produsen

Di dalam Cloud Shell, lakukan hal berikut:

gcloud compute networks create producer-vpc --project=$projectid --subnet-mode=custom

Membuat subnet produser

Di dalam Cloud Shell, buat subnet yang digunakan untuk vNIC0 dari antarmuka psc

gcloud compute networks subnets create prod-subnet --project=$projectid --range=10.20.1.0/28 --network=producer-vpc --region=us-central1

Di dalam Cloud Shell, buat subnet yang digunakan untuk instance tiger.

gcloud compute networks subnets create prod-subnet-2 --project=$projectid --range=10.30.1.0/28 --network=producer-vpc --region=us-central1

Di dalam Cloud Shell, buat subnet yang digunakan untuk load balancer internal.

gcloud compute networks subnets create prod-subnet-3 --project=$projectid --range=172.16.10.0/28 --network=producer-vpc --region=us-central1

Konfigurasi Cloud Router dan NAT

Cloud NAT digunakan dalam tutorial untuk penginstalan paket software karena instance VM tidak memiliki alamat IP publik. Cloud NAT mengaktifkan VM dengan alamat IP pribadi untuk mengakses internet.

Di dalam Cloud Shell, buat router cloud.

gcloud compute routers create cloud-router-for-nat-producer --network producer-vpc --region us-central1

Di dalam Cloud Shell, buat gateway NAT.

gcloud compute routers nats create cloud-nat-us-central1-producer --router=cloud-router-for-nat-producer --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1

Aktifkan IAP

Agar IAP dapat terhubung ke instance VM Anda, buat aturan firewall yang:

  • Berlaku untuk semua instance VM yang Anda inginkan agar dapat diakses dengan 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-producer \
    --network producer-vpc \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

Membuat instance VM produser

Di dalam Cloud Shell, buat instance vm konsumen, yaitu tiger

gcloud compute instances create tiger \
    --project=$projectid \
    --machine-type=e2-micro \
    --image-family debian-11 \
    --no-address \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=prod-subnet-2 \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump"

9. Membuat aturan firewall produsen

Di VPC produsen, buat aturan firewall masuk yang memungkinkan komunikasi dari prod-subnet-2 ke semua instance di prod-vpc.

Di dalam Cloud Shell, buat aturan firewall produser.

gcloud compute --project=$projectid firewall-rules create allow-tiger-ingress --direction=INGRESS --priority=1000 --network=producer-vpc --action=ALLOW --rules=all --source-ranges=10.30.1.0/28 --enable-logging

10. Membuat Antarmuka Private Service Connect

Antarmuka Private Service Connect adalah resource yang memungkinkan jaringan Virtual Private Cloud (VPC) produser memulai koneksi ke berbagai tujuan dalam jaringan VPC konsumen. Jaringan produsen dan konsumen dapat berada di project dan organisasi yang berbeda.

Jika lampiran jaringan menerima koneksi dari antarmuka Private Service Connect, Google Cloud mengalokasikan alamat IP dari subnet konsumen yang ditentukan oleh lampiran jaringan. Jaringan konsumen dan produsen terhubung dan dapat berkomunikasi menggunakan alamat IP internal.

Dalam tutorial ini, Anda akan membuat dua instance dengan lampiran jaringan layanan pribadi yang terhubung yang akan menjadi backend ke load balancer internal.

Di dalam Cloud Shell, buat antarmuka Private Service Connect (kelinci) dan masukkan psc-network- pemahaman URI yang telah diidentifikasi sebelumnya dari output penjelasan lampiran jaringan.

gcloud compute instances create rabbit --zone us-central1-a --machine-type=f1-micro --can-ip-forward --network-interface subnet=prod-subnet,network=producer-vpc,no-address --network-interface network-attachment=https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/networkAttachments/psc-network-attachment --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump
      sudo apt-get install apache2 -y
      sudo service apache2 restart"

Di dalam Cloud Shell, buat antarmuka Private Service Connect (fox) dan masukkan psc-network- berkembang URI yang telah diidentifikasi sebelumnya dari output penjelasan lampiran jaringan.

gcloud compute instances create fox --zone us-central1-a --machine-type=f1-micro --can-ip-forward --network-interface subnet=prod-subnet,network=producer-vpc,no-address --network-interface network-attachment=https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/networkAttachments/psc-network-attachment --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump
      sudo apt-get install apache2 -y
      sudo service apache2 restart"

Validasi multi-nic

Validasi bahwa antarmuka PSC dikonfigurasi dengan Alamat IP yang sesuai. vNIC0 akan menggunakan prod-subnet (10.20.1.0/28) dan vNIC1 akan menggunakan intf-subnet konsumen (192.168.10.0/28).

gcloud compute instances describe rabbit --zone=us-central1-a | grep networkIP:

gcloud compute instances describe fox --zone=us-central1-a | grep networkIP:

Contoh:

user$ gcloud compute instances describe rabbit --zone=us-central1-a | grep networkIP:
  networkIP: 10.20.1.2
  networkIP: 192.168.10.2

user$ gcloud compute instances describe fox --zone=us-central1-a | grep networkIP:
  networkIP: 10.20.1.3
  networkIP: 192.168.10.3

11. Membuat dan menambahkan kelinci dan rubah ke dalam grup instance yang tidak dikelola

Di bagian berikut, Anda akan membuat grup instance tidak terkelola yang akan terdiri dari instance antarmuka PSC kelinci dan fox.

Di dalam Cloud Shell, buat grup instance yang tidak dikelola.

gcloud compute instance-groups unmanaged create psc-interface-instances-ig --project=$projectid --zone=us-central1-a

Di dalam Cloud Shell, tambahkan instance fox dan rabbit ke grup instance.

gcloud compute instance-groups unmanaged add-instances psc-interface-instances-ig --project=$projectid --zone=us-central1-a --instances=fox,rabbit

12. Membuat health check TCP, layanan backend, aturan penerusan & {i>Firewall<i}

Di dalam Cloud Shell, buat health check backend.

gcloud compute health-checks create http hc-http-80 --port=80

Di dalam Cloud Shell, buat layanan backend

gcloud compute backend-services create psc-interface-backend --load-balancing-scheme=internal --protocol=tcp --region=us-central1 --health-checks=hc-http-80
gcloud compute backend-services add-backend psc-interface-backend --region=us-central1 --instance-group=psc-interface-instances-ig --instance-group-zone=us-central1-a

Di dalam Cloud Shell, buat aturan penerusan

gcloud compute forwarding-rules create psc-ilb --region=us-central1 --load-balancing-scheme=internal --network=producer-vpc --subnet=prod-subnet-3 --address=172.16.10.10 --ip-protocol=TCP --ports=all --backend-service=psc-interface-backend --backend-service-region=us-central1

Dari Cloud Shell, buat aturan firewall untuk mengaktifkan health check backend

gcloud compute firewall-rules create ilb-health-checks --allow tcp:80,tcp:443 --network producer-vpc --source-ranges 130.211.0.0/22,35.191.0.0/16 

13. Membuat tabel IP linux untuk antarmuka PSC - rabbit

Dari instance antarmuka PSC, konfigurasikan tabel IP Linux agar komunikasi produser ke subnet konsumen dapat dilakukan.

Menemukan nama OS tamu antarmuka Private Service Connect Anda

Untuk mengonfigurasi perutean, Anda perlu mengetahui nama OS tamu dari antarmuka Private Service Connect, yang berbeda dengan nama antarmuka di Google Cloud.

Login ke vm psc-interface, rabbit, menggunakan IAP di Cloud Shell.

gcloud compute ssh rabbit --project=$projectid --zone=us-central1-a --tunnel-through-iap

Di Cloud Shell, dapatkan alamat IP instance psc-interface

ip a

Contoh:

user@rabbit:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 42:01:0a:14:01:02 brd ff:ff:ff:ff:ff:ff
    altname enp0s4
    inet 10.20.1.2/32 brd 10.20.1.2 scope global dynamic ens4
       valid_lft 59396sec preferred_lft 59396sec
    inet6 fe80::4001:aff:fe14:102/64 scope link 
       valid_lft forever preferred_lft forever
3: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 42:01:c0:a8:0a:02 brd ff:ff:ff:ff:ff:ff
    altname enp0s5
    inet 192.168.10.2/32 brd 192.168.10.2 scope global dynamic ens5
       valid_lft 66782sec preferred_lft 66782sec
    inet6 fe80::4001:c0ff:fea8:a02/64 scope link 
       valid_lft forever preferred_lft forever

Menemukan gateway IP antarmuka PSC Anda

Dalam daftar antarmuka jaringan, temukan dan simpan nama antarmuka yang terkait dengan alamat IP antarmuka Private Service Connect Anda—misalnya, ens5 (vNIC1)

Untuk mengonfigurasi pemilihan rute, Anda perlu mengetahui alamat IP gateway default antarmuka Private Service Connect

Di cloud Shell, kita akan menggunakan 1 karena antarmuka PSC dikaitkan dengan vNIC1.

curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/1/gateway -H "Metadata-Flavor: Google" && echo

Contoh menghasilkan gw 192.168.10.1 default

user@rabbit:~$ curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/1/gateway -H "Metadata-Flavor: Google" && echo
192.168.10.1

Menambahkan rute untuk subnet konsumen

Anda harus menambahkan rute ke gateway default antarmuka Private Service Connect untuk setiap subnet konsumen yang terhubung ke antarmuka Private Service Connect. Hal ini memastikan bahwa traffic yang terikat untuk traffic keluar jaringan konsumen dari antarmuka Private Service Connect.

Validasi tabel rute

Di Cloud Shell, validasi rute saat ini.

ip route show

Contoh.

user@rabbit:~$ ip route show
default via 10.20.1.1 dev ens4 
10.20.1.0/28 via 10.20.1.1 dev ens4 
10.20.1.1 dev ens4 scope link 
192.168.10.0/28 via 192.168.10.1 dev ens5 
192.168.10.1 dev ens5 scope link 

Di Cloud Shell, tambahkan rute ke cosmo-subnet-1

sudo ip route add 192.168.20.0/28 via 192.168.10.1 dev ens5

Validasi tabel rute

Di Cloud Shell, validasi rute yang ditambahkan yang diperbarui.

ip route show

Contoh.

user@rabbit:~$ ip route show
default via 10.20.1.1 dev ens4 
10.20.1.0/28 via 10.20.1.1 dev ens4 
10.20.1.1 dev ens4 scope link 
192.168.10.0/28 via 192.168.10.1 dev ens5 
192.168.10.1 dev ens5 scope link 
192.168.20.0/28 via 192.168.10.1 dev ens5 

Membuat aturan tabel IP

Di Cloud Shell, validasi Tabel IP saat ini.

sudo iptables -t nat -L -n -v

Contoh:

user@rabbit:~$ sudo iptables -t nat -L -n -v
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination  

Di Cloud Shell, perbarui Tabel IP

sudo iptables -t nat -A POSTROUTING -o ens5 -j MASQUERADE
sudo sysctl net.ipv4.ip_forward=1

Di Cloud Shell, validasi Tabel IP yang telah diperbarui.

sudo iptables -t nat -L -n -v

Contoh:

user@rabbit:~$ sudo iptables -t nat -L -n -v
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 MASQUERADE  all  --  *      ens5    0.0.0.0/0            0.0.0.0/0

14. Membuat tabel IP linux untuk antarmuka PSC - fox

Dari instance antarmuka PSC, konfigurasikan tabel IP Linux agar komunikasi produser ke subnet konsumen dapat dilakukan.

Menemukan nama OS tamu antarmuka Private Service Connect Anda

Untuk mengonfigurasi perutean, Anda perlu mengetahui nama OS tamu dari antarmuka Private Service Connect, yang berbeda dengan nama antarmuka di Google Cloud.

Buka tab Cloud Shell baru dan perbarui setelan project Anda.

Di dalam Cloud Shell, lakukan hal berikut:

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

Login ke vm psc-interface, fox, menggunakan IAP di Cloud Shell.

gcloud compute ssh fox --project=$projectid --zone=us-central1-a --tunnel-through-iap

Di Cloud Shell, dapatkan alamat IP instance psc-interface

ip a

Contoh:

user@fox:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 42:01:0a:14:01:03 brd ff:ff:ff:ff:ff:ff
    altname enp0s4
    inet 10.20.1.3/32 brd 10.20.1.3 scope global dynamic ens4
       valid_lft 65601sec preferred_lft 65601sec
    inet6 fe80::4001:aff:fe14:103/64 scope link 
       valid_lft forever preferred_lft forever
3: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 42:01:c0:a8:0a:03 brd ff:ff:ff:ff:ff:ff
    altname enp0s5
    inet 192.168.10.3/32 brd 192.168.10.3 scope global dynamic ens5
       valid_lft 63910sec preferred_lft 63910sec
    inet6 fe80::4001:c0ff:fea8:a03/64 scope link 
       valid_lft forever preferred_lft forever

Menemukan gateway IP antarmuka PSC Anda

Dalam daftar antarmuka jaringan, temukan dan simpan nama antarmuka yang terkait dengan alamat IP antarmuka Private Service Connect Anda—misalnya, ens5 (vNIC1)

Untuk mengonfigurasi pemilihan rute, Anda perlu mengetahui alamat IP gateway default antarmuka Private Service Connect

Di cloud Shell, kita akan menggunakan 1 karena antarmuka PSC dikaitkan dengan vNIC1.

curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/1/gateway -H "Metadata-Flavor: Google" && echo

Contoh menghasilkan gw 192.168.10.1 default

user@fox:~$ curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/1/gateway -H "Metadata-Flavor: Google" && echo
192.168.10.1

Menambahkan rute untuk subnet konsumen

Anda harus menambahkan rute ke gateway default antarmuka Private Service Connect untuk setiap subnet konsumen yang terhubung ke antarmuka Private Service Connect. Hal ini memastikan bahwa traffic yang terikat untuk traffic keluar jaringan konsumen dari antarmuka Private Service Connect.

Validasi tabel rute

Di Cloud Shell, validasi rute saat ini.

ip route show

Contoh.

user@fox:~$ ip route show
default via 10.20.1.1 dev ens4 
10.20.1.0/28 via 10.20.1.1 dev ens4 
10.20.1.1 dev ens4 scope link 
192.168.10.0/28 via 192.168.10.1 dev ens5 
192.168.10.1 dev ens5 scope link 

Di Cloud Shell, tambahkan rute ke cosmo-subnet-1

sudo ip route add 192.168.20.0/28 via 192.168.10.1 dev ens5

Validasi tabel rute

Di Cloud Shell, validasi rute yang ditambahkan yang diperbarui.

ip route show

Contoh.

user@fox:~$ ip route show
default via 10.20.1.1 dev ens4 
10.20.1.0/28 via 10.20.1.1 dev ens4 
10.20.1.1 dev ens4 scope link 
192.168.10.0/28 via 192.168.10.1 dev ens5 
192.168.10.1 dev ens5 scope link 
192.168.20.0/28 via 192.168.10.1 dev ens5

Membuat aturan tabel IP

Di Cloud Shell, validasi Tabel IP saat ini.

sudo iptables -t nat -L -n -v

Contoh:

user@fox:~$ sudo iptables -t nat -L -n -v
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Di Cloud Shell, perbarui Tabel IP.

sudo iptables -t nat -A POSTROUTING -o ens5 -j MASQUERADE
sudo sysctl net.ipv4.ip_forward=1

Di Cloud Shell, validasi Tabel IP yang telah diperbarui.

sudo iptables -t nat -L -n -v

Contoh:

user@fox:~$ sudo iptables -t nat -L -n -v
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 MASQUERADE  all  --  *      ens5    0.0.0.0/0            0.0.0.0/0  

15. Perbarui tabel rute

Pada produser-vpc, buat rute statis ke subnet konsumen 192.168.20.0/28, next hop sebagai load balancer internal. Setelah dibuat, setiap paket (dalam produsen-vpc) ke tujuan 192.168.20.0/28 akan diarahkan ke load balancer internal.

Buka tab Cloud Shell baru dan perbarui setelan project Anda.

Di dalam Cloud Shell, lakukan hal berikut:

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

Di Cloud Shell, perbarui tabel rute produser-vpc dengan rute statis.

gcloud beta compute routes create producer-to-cosmo-subnet-1 --project=$projectid --network=producer-vpc --priority=1000 --destination-range=192.168.20.0/28 --next-hop-ilb=psc-ilb --next-hop-ilb-region=us-central1

16. Validasi keberhasilan konektivitas dari harimau ke kosmo

Validasi curl

Mari kita konfirmasi bahwa instance VM produser, tiger, dapat berkomunikasi dengan instance konsumen, yaitu cosmo, dengan melakukan curl.

Buka tab Cloud Shell baru dan perbarui setelan project Anda.

Di dalam Cloud Shell, lakukan hal berikut:

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

Login ke instance tiger menggunakan IAP di Cloud Shell.

gcloud compute ssh tiger --project=$projectid --zone=us-central1-a --tunnel-through-iap

Lakukan curl terhadap Alamat IP cosmo yang diidentifikasi sebelumnya dalam tutorial dari instance tiger.

curl -v <cosmo's IP Address>

Contoh:

user@tiger:~$ curl -v 192.168.20.2
*   Trying 192.168.20.2:80...
* Connected to 192.168.20.2 (192.168.20.2) port 80 (#0)
> GET / HTTP/1.1
> Host: 192.168.20.2
> User-Agent: curl/7.74.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Fri, 09 Jun 2023 03:49:42 GMT
< Server: Apache/2.4.56 (Debian)
< Last-Modified: Fri, 09 Jun 2023 03:28:37 GMT
< ETag: "27-5fda9f6ea060e"
< Accept-Ranges: bytes
< Content-Length: 39
< Content-Type: text/html
< 
Welcome to cosmo's backend server !!

Selamat! Anda telah berhasil memvalidasi konektivitas dari Producer-vpc ke backend-vpc dengan menjalankan perintah curl.

17. Pembersihan

Dari Cloud Shell, hapus komponen tutorial.

gcloud compute instances delete cosmo --zone=us-central1-a --quiet

gcloud compute instances delete rabbit --zone=us-central1-a --quiet

gcloud compute instances delete fox --zone=us-central1-a --quiet

gcloud compute instances delete tiger --zone=us-central1-a --quiet

gcloud compute network-attachments delete psc-network-attachment --region=us-central1 --quiet

gcloud compute firewall-rules delete allow-ingress-to-cosmo allow-tiger-ingress ilb-health-checks ssh-iap-consumer   ssh-iap-producer --quiet

gcloud beta compute routes delete producer-to-cosmo-subnet-1 --quiet 

gcloud compute forwarding-rules delete psc-ilb --region=us-central1 --quiet
gcloud compute backend-services delete psc-interface-backend --region=us-central1 --quiet
gcloud compute instance-groups unmanaged delete psc-interface-instances-ig --zone=us-central1-a --quiet
gcloud compute health-checks delete hc-http-80 --quiet
gcloud compute networks subnets delete cosmo-subnet-1 prod-subnet prod-subnet-2 prod-subnet-3 intf-subnet --region=us-central1 --quiet

gcloud compute routers delete cloud-router-for-nat --region=us-central1 --quiet

gcloud compute routers delete cloud-router-for-nat-producer --region=us-central1 --quiet

gcloud compute networks delete consumer-vpc --quiet

gcloud compute networks delete producer-vpc --quiet

gcloud compute networks delete backend-vpc --quiet

18. Selamat

Selamat, Anda telah berhasil mengonfigurasi dan memvalidasi Antarmuka Private Service Connect serta memvalidasi konektivitas konsumen dan produsen melalui peering VPC.

Anda membuat infrastruktur konsumen, dan Anda menambahkan lampiran jaringan yang memungkinkan produser membuat vm multi-nic untuk menjembatani komunikasi konsumen dan produser. Anda telah mempelajari bagaimana antarmuka PSC dapat digunakan untuk berkomunikasi dengan layanan 1P/3P melalui peering VPC menggunakan load balancer internal dan rute statis di vpc produsen.

Cosmopup menganggap tutorialnya luar biasa!!

e6d3675ca7c6911f.jpeg

Apa selanjutnya?

Lihat beberapa tutorial ini...

Bacaan lebih lanjut & Video

Dokumen referensi