1. Wprowadzenie
Interfejs Private Service Connect to zasób, który umożliwia sieci prywatnego środowiska wirtualnego w chmurze producenta inicjowanie połączeń z różnymi miejscami docelowymi w sieci prywatnego środowiska wirtualnego w chmurze konsumenta. Sieci producenta i odbiorcy mogą znajdować się w różnych projektach i organizacjach.
Jeśli przyłącze sieci akceptuje połączenie z interfejsu Private Service Connect, Google Cloud przydziela interfejsowi adres IP z podsieci konsumenta określonej przez przyłącze sieci. Sieci konsumenta i producenta są połączone i mogą komunikować się za pomocą wewnętrznych adresów IP.
Połączenie między przyłączem sieci a interfejsem Private Service Connect jest podobne do połączenia między punktem końcowym Private Service Connect a przyłączem usługi, ale ma 2 kluczowe różnice:
- Przyłącze sieci umożliwia sieci producenta inicjowanie połączeń z siecią konsumenta (ruch wychodzący usługi zarządzanej), a punkt końcowy umożliwia sieci konsumenta inicjowanie połączeń z siecią producenta (ruch przychodzący usługi zarządzanej).
- Połączenie interfejsu Private Service Connect jest przechodnie. Oznacza to, że sieć producenta może komunikować się z innymi sieciami połączonymi z siecią konsumenta.
Co utworzysz
W sieci VPC klienta utworzysz jedno przyłącze sieci PSC, co spowoduje utworzenie 2 interfejsów PSC jako backendów wewnętrznego systemu równoważenia obciążenia L4. Z sieci VPC producenta usługa Tiger wyśle polecenie curl do usługi Cosmo w sieci VPC backendu. W sieci VPC producenta utworzysz trasę statyczną do ruchu docelowego 192.168.20.0/28, a następnym przeskokiem będzie wewnętrzny system równoważenia obciążenia, który będzie wykorzystywać backend i kolejne interfejsy PSC do kierowania ruchu do usługi Cosmo. Omówienie znajdziesz na rysunku 1.
Takie samo podejście można zastosować w przypadku usług zarządzanych przez Google, które są połączone równorzędnie z siecią VPC klienta, gdy używany jest prywatny dostęp do usług.
Rysunek 1.

Czego się nauczysz
- Tworzenie przyłącza sieci
- Jak producent może użyć przyłącza sieci do utworzenia interfejsu PSC jako backendu
- Jak nawiązać komunikację od producenta do konsumenta przy użyciu wewnętrznego systemu równoważenia obciążenia jako następnego przeskoku
- Jak zezwolić na dostęp z maszyny wirtualnej producenta (tiger) do maszyny wirtualnej konsumenta (cosmo) przez połączenie równorzędne sieci VPC
Czego potrzebujesz
- Projekt Google Cloud
- Uprawnienia
- Administrator sieci Compute (roles/compute.networkAdmin)
- Administrator instancji Compute (roles/compute.instanceAdmin)
- Administrator zabezpieczeń Compute (roles/compute.securityAdmin)
2. Zanim zaczniesz
Aktualizowanie projektu na potrzeby samouczka
W tym samouczku używamy zmiennych $variables, aby ułatwić implementację konfiguracji gcloud w Cloud Shell.
W Cloud Shell wykonaj te czynności:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
3. Konfiguracja konsumencka
Tworzenie sieci VPC konsumenta
W Cloud Shell wykonaj te czynności:
gcloud compute networks create consumer-vpc --project=$projectid --subnet-mode=custom
Utwórz podsieć przyłącza sieci Private Service Connect
W Cloud Shell wykonaj te czynności:
gcloud compute networks subnets create intf-subnet --project=$projectid --range=192.168.10.0/28 --network=consumer-vpc --region=us-central1
Tworzenie sieci VPC backendu
W Cloud Shell wykonaj te czynności:
gcloud compute networks create backend-vpc --project=$projectid --subnet-mode=custom
Tworzenie podsieci VPC backendu
W Cloud Shell wykonaj te czynności:
gcloud compute networks subnets create cosmo-subnet-1 --project=$projectid --range=192.168.20.0/28 --network=backend-vpc --region=us-central1
Tworzenie reguł zapory sieciowej backend-vpc
W Cloud Shell utwórz regułę ruchu przychodzącego dla ruchu z podsieci psc-network-attachment do 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
Konfiguracja routera Cloud Router i NAT
W samouczku do instalacji pakietu oprogramowania używana jest usługa Cloud NAT, ponieważ maszyna wirtualna nie ma publicznego adresu IP. Cloud NAT umożliwia maszynom wirtualnym z prywatnymi adresami IP dostęp do internetu.
W Cloud Shell utwórz router Cloud Router.
gcloud compute routers create cloud-router-for-nat --network backend-vpc --region us-central1
W Cloud Shell utwórz bramę 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. Włączanie IAP
Aby umożliwić IAP połączenie z instancjami maszyn wirtualnych, utwórz regułę zapory sieciowej, która:
- Dotyczy wszystkich instancji maszyn wirtualnych, które mają być dostępne przez IAP.
- Zezwala na ruch przychodzący z zakresu adresów IP 35.235.240.0/20. Ten zakres zawiera wszystkie adresy IP, których IAP używa do przekierowywania TCP.
W Cloud Shell utwórz regułę zapory sieciowej IAP.
gcloud compute firewall-rules create ssh-iap-consumer \
--network backend-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
5. Tworzenie instancji maszyn wirtualnych konsumentów
W Cloud Shell utwórz instancję maszyny wirtualnej klienta o nazwie 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"
Uzyskaj i zapisz adresy IP instancji:
W Cloud Shell wykonaj opis instancji maszyn wirtualnych cosmo.
gcloud compute instances describe cosmo --zone=us-central1-a | grep networkIP:
6. Przyłącze sieci Private Service Connect
Przyłącza sieci to zasoby regionalne, które reprezentują stronę konsumenta interfejsu Private Service Connect. Z przyłączem sieci możesz powiązać jedną podsieć, a producent przypisuje adresy IP do interfejsu Private Service Connect z tej podsieci. Podsieć musi znajdować się w tym samym regionie co przyłącze sieci. Przyłącze sieci musi znajdować się w tym samym regionie co usługa producenta.
Tworzenie przyłącza sieci
W Cloud Shell utwórz przyłącze sieci.
gcloud compute network-attachments create psc-network-attachment \
--region=us-central1 \
--connection-preference=ACCEPT_MANUAL \
--producer-accept-list=$projectid \
--subnets=intf-subnet
Wyświetlanie listy przyłączy sieci
W Cloud Shell wyświetl listę przyłączy sieci.
gcloud compute network-attachments list
Opisz przyłącza sieci
W Cloud Shell opisz przyłącze sieci.
gcloud compute network-attachments describe psc-network-attachment --region=us-central1
Zanotuj identyfikator URI psc-network-attachment, który będzie używany przez producenta podczas tworzenia interfejsów Private Service Connect. Przykład:
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. Ustanawianie połączenia równorzędnego VPC między siecią VPC konsumenta a siecią VPC backendu
Utworzysz połączenie równorzędne VPC między siecią VPC konsumenta a siecią VPC backendu. W ten sposób Google nawiązuje połączenie z sieciami VPC klientów w przypadku usług zarządzanych, a także połączenie międzysieciowe między organizacjami na potrzeby łączności sieciowej. Połączenie równorzędne VPC musi być skonfigurowane w każdej sieci VPC.
Połączenie równorzędne VPC konsumenta z VPC backendu
Utwórz połączenie równorzędne VPC z konsumenta z backendem VPC.
W Cloud Shell wykonaj te czynności:
gcloud compute networks peerings create consumer-to-backend-vpc \
--network=consumer-vpc \
--peer-project=$projectid \
--peer-network=backend-vpc \
--stack-type=IPV4_ONLY
Utwórz połączenie równorzędne VPC z backendu do sieci VPC konsumenta.
W Cloud Shell wykonaj te czynności:
gcloud compute networks peerings create backend-to-consumer-vpc \
--network=backend-vpc \
--peer-project=$projectid \
--peer-network=consumer-vpc \
--stack-type=IPV4_ONLY
Sprawdzanie szczegółów stanu połączenia równorzędnego VPC
W Cloud Shell sprawdź, czy peering VPC ma stan „Aktywny” i „Połączono”.
gcloud compute networks peerings list
Przykład:
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. Konfiguracja aplikacji Producer
Tworzenie sieci VPC producenta
W Cloud Shell wykonaj te czynności:
gcloud compute networks create producer-vpc --project=$projectid --subnet-mode=custom
Tworzenie podsieci producenta
W Cloud Shell utwórz podsieć używaną na potrzeby interfejsów vNIC0 interfejsów PSC.
gcloud compute networks subnets create prod-subnet --project=$projectid --range=10.20.1.0/28 --network=producer-vpc --region=us-central1
W Cloud Shell utwórz podsieć używaną przez instancję tiger.
gcloud compute networks subnets create prod-subnet-2 --project=$projectid --range=10.30.1.0/28 --network=producer-vpc --region=us-central1
W Cloud Shell utwórz podsieć używaną przez wewnętrzny system równoważenia obciążenia.
gcloud compute networks subnets create prod-subnet-3 --project=$projectid --range=172.16.10.0/28 --network=producer-vpc --region=us-central1
Konfiguracja routera Cloud Router i NAT
W samouczku do instalacji pakietu oprogramowania używana jest usługa Cloud NAT, ponieważ maszyna wirtualna nie ma publicznego adresu IP. Cloud NAT umożliwia maszynom wirtualnym z prywatnymi adresami IP dostęp do internetu.
W Cloud Shell utwórz router Cloud Router.
gcloud compute routers create cloud-router-for-nat-producer --network producer-vpc --region us-central1
W Cloud Shell utwórz bramę 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
Włączanie IAP
Aby umożliwić IAP połączenie z instancjami maszyn wirtualnych, utwórz regułę zapory sieciowej, która:
- Dotyczy wszystkich instancji maszyn wirtualnych, które mają być dostępne przez IAP.
- Zezwala na ruch przychodzący z zakresu adresów IP 35.235.240.0/20. Ten zakres zawiera wszystkie adresy IP, których IAP używa do przekierowywania TCP.
W Cloud Shell utwórz regułę zapory sieciowej IAP.
gcloud compute firewall-rules create ssh-iap-producer \
--network producer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
Tworzenie instancji maszyn wirtualnych producenta
W Cloud Shell utwórz instancję maszyny wirtualnej klienta o nazwie 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. Tworzenie reguł zapory sieciowej producenta
W sieci VPC producenta utwórz regułę zapory sieciowej ruchu przychodzącego, która zezwala na komunikację z podsieci prod-subnet-2 ze wszystkimi instancjami w sieci producer-vpc.
W Cloud Shell utwórz regułę zapory sieciowej producenta.
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. Tworzenie interfejsu Private Service Connect
Interfejs Private Service Connect to zasób, który umożliwia sieci prywatnego środowiska wirtualnego w chmurze producenta inicjowanie połączeń z różnymi miejscami docelowymi w sieci prywatnego środowiska wirtualnego w chmurze konsumenta. Sieci producenta i odbiorcy mogą znajdować się w różnych projektach i organizacjach.
Jeśli przyłącze sieci akceptuje połączenie z interfejsu Private Service Connect, Google Cloud przydziela interfejsowi adres IP z podsieci konsumenta określonej przez przyłącze sieci. Sieci konsumenta i producenta są połączone i mogą komunikować się za pomocą wewnętrznych adresów IP.
W tym samouczku utworzysz 2 instancje z przyłączem sieci Private Service Connect, które będą backendem wewnętrznego systemu równoważenia obciążenia.
W Cloud Shell utwórz interfejs Private Service Connect (rabbit) i wstaw wcześniej zidentyfikowany identyfikator URI psc-network-attachment z danych wyjściowych polecenia describe network-attachment.
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"
W Cloud Shell utwórz interfejs Private Service Connect (fox) i wstaw wcześniej zidentyfikowany identyfikator URI psc-network-attachment z danych wyjściowych polecenia describe przyłącza sieci.
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"
Weryfikacja wielu interfejsów sieciowych
Sprawdź, czy interfejs PSC jest skonfigurowany z odpowiednim adresem IP. vNIC0 będzie używać podsieci producenta prod-subnet (10.20.1.0/28), a vNIC1 będzie używać podsieci konsumenta intf-subnet (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:
Przykład:
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. Tworzenie i dodawanie królika i lisa do niezarządzanej grupy instancji
W kolejnej sekcji utworzysz niezarządzaną grupę instancji, która będzie się składać z instancji interfejsu PSC rabbit i fox.
W Cloud Shell utwórz niezarządzaną grupę instancji.
gcloud compute instance-groups unmanaged create psc-interface-instances-ig --project=$projectid --zone=us-central1-a
W Cloud Shell dodaj instancje fox i rabbit do grupy instancji.
gcloud compute instance-groups unmanaged add-instances psc-interface-instances-ig --project=$projectid --zone=us-central1-a --instances=fox,rabbit
12. Tworzenie kontroli stanu TCP, usług backendu, reguły przekierowania i zapory sieciowej
W Cloud Shell utwórz kontrolę stanu backendu.
gcloud compute health-checks create http hc-http-80 --port=80
W Cloud Shell utwórz usługę backendu.
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
Utwórz regułę przekierowania w Cloud Shell.
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
Tworzenie reguły zapory sieciowej w Cloud Shell, aby włączyć kontrolę stanu backendu
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. Tworzenie tabel IP systemu Linux dla interfejsów PSC – rabbit
W instancji interfejsu PSC skonfiguruj tablice IP systemu Linux, aby zezwolić na komunikację producenta z podsieciami konsumenta.
Znajdowanie nazwy systemu operacyjnego gościa interfejsu Private Service Connect
Aby skonfigurować routing, musisz znać nazwę systemu operacyjnego gościa interfejsu Private Service Connect, która różni się od nazwy interfejsu w Google Cloud.
Zaloguj się na maszynie wirtualnej psc-interface, rabbit, za pomocą IAP w Cloud Shell.
gcloud compute ssh rabbit --project=$projectid --zone=us-central1-a --tunnel-through-iap
W Cloud Shell uzyskaj adres IP instancji psc-interface.
ip a
Przykład:
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
Znajdowanie adresu IP bramy interfejsu PSC
Na liście interfejsów sieciowych znajdź i zapisz nazwę interfejsu powiązaną z adresem IP interfejsu Private Service Connect, np. ens5 (vNIC1).
Aby skonfigurować routing, musisz znać adres IP bramy domyślnej interfejsu Private Service Connect.
W Cloud Shell użyjemy wartości 1, ponieważ interfejs PSC jest powiązany z vNIC1.
curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/1/gateway -H "Metadata-Flavor: Google" && echo
Przykład daje domyślny adres bramy 192.168.10.1
user@rabbit:~$ curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/1/gateway -H "Metadata-Flavor: Google" && echo
192.168.10.1
Dodawanie tras dla podsieci klientów indywidualnych
Musisz dodać trasę do domyślnej bramy interfejsu Private Service Connect dla każdej podsieci konsumenta, która łączy się z interfejsem Private Service Connect. Dzięki temu ruch przeznaczony dla sieci konsumenta wychodzi z interfejsu Private Service Connect.
Weryfikowanie tabeli tras
W Cloud Shell sprawdź bieżące trasy.
ip route show
Przykład.
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
W Cloud Shell dodaj trasę do podsieci cosmo-subnet-1.
sudo ip route add 192.168.20.0/28 via 192.168.10.1 dev ens5
Weryfikowanie tabeli tras
W Cloud Shell sprawdź zaktualizowane dodane trasy.
ip route show
Przykład.
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
Tworzenie reguł tabeli IP
W Cloud Shell sprawdź bieżące tabele IP.
sudo iptables -t nat -L -n -v
Przykład:
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
Aktualizowanie tabeli IP w Cloud Shell
sudo iptables -t nat -A POSTROUTING -o ens5 -j MASQUERADE
sudo sysctl net.ipv4.ip_forward=1
W Cloud Shell sprawdź zaktualizowane tablice IP.
sudo iptables -t nat -L -n -v
Przykład:
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. Tworzenie tabel IP systemu Linux dla interfejsów PSC – fox
W instancji interfejsu PSC skonfiguruj tablice IP systemu Linux, aby zezwolić na komunikację producenta z podsieciami konsumenta.
Znajdowanie nazwy systemu operacyjnego gościa interfejsu Private Service Connect
Aby skonfigurować routing, musisz znać nazwę systemu operacyjnego gościa interfejsu Private Service Connect, która różni się od nazwy interfejsu w Google Cloud.
Otwórz nową kartę Cloud Shell i zaktualizuj ustawienia projektu.
W Cloud Shell wykonaj te czynności:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
Zaloguj się na maszynę wirtualną psc-interface, fox, za pomocą IAP w Cloud Shell.
gcloud compute ssh fox --project=$projectid --zone=us-central1-a --tunnel-through-iap
W Cloud Shell uzyskaj adres IP instancji psc-interface.
ip a
Przykład:
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
Znajdowanie adresu IP bramy interfejsu PSC
Na liście interfejsów sieciowych znajdź i zapisz nazwę interfejsu powiązaną z adresem IP interfejsu Private Service Connect, np. ens5 (vNIC1).
Aby skonfigurować routing, musisz znać adres IP bramy domyślnej interfejsu Private Service Connect.
W Cloud Shell użyjemy wartości 1, ponieważ interfejs PSC jest powiązany z vNIC1.
curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/1/gateway -H "Metadata-Flavor: Google" && echo
Przykład daje domyślny adres bramy 192.168.10.1
user@fox:~$ curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/1/gateway -H "Metadata-Flavor: Google" && echo
192.168.10.1
Dodawanie tras dla podsieci klientów indywidualnych
Musisz dodać trasę do domyślnej bramy interfejsu Private Service Connect dla każdej podsieci konsumenta, która łączy się z interfejsem Private Service Connect. Dzięki temu ruch przeznaczony dla sieci konsumenta wychodzi z interfejsu Private Service Connect.
Weryfikowanie tabeli tras
W Cloud Shell sprawdź bieżące trasy.
ip route show
Przykład.
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
W Cloud Shell dodaj trasę do podsieci cosmo-subnet-1.
sudo ip route add 192.168.20.0/28 via 192.168.10.1 dev ens5
Weryfikowanie tabeli tras
W Cloud Shell sprawdź zaktualizowane dodane trasy.
ip route show
Przykład.
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
Tworzenie reguł tabeli IP
W Cloud Shell sprawdź bieżące tabele IP.
sudo iptables -t nat -L -n -v
Przykład:
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
W Cloud Shell zaktualizuj tabele IP.
sudo iptables -t nat -A POSTROUTING -o ens5 -j MASQUERADE
sudo sysctl net.ipv4.ip_forward=1
W Cloud Shell sprawdź zaktualizowane tablice IP.
sudo iptables -t nat -L -n -v
Przykład:
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. Aktualizowanie tabeli routingu
W sieci VPC producenta utwórz trasę statyczną do podsieci konsumentów 192.168.20.0/28, a jako następny przeskok ustaw wewnętrzny system równoważenia obciążenia. Po utworzeniu każdy pakiet (w sieci VPC producenta) kierowany do miejsca docelowego 192.168.20.0/28 będzie przekierowywany do wewnętrznego systemu równoważenia obciążenia.
Otwórz nową kartę Cloud Shell i zaktualizuj ustawienia projektu.
W Cloud Shell wykonaj te czynności:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
W Cloud Shell zaktualizuj tabelę tras sieci VPC producenta o trasę statyczną.
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. Sprawdzanie połączenia z usługi Tiger do usługi Cosmo
Weryfikacja za pomocą narzędzia cURL
Sprawdźmy, czy maszyna wirtualna producenta, tiger, może komunikować się z instancją konsumenta, cosmo, wykonując polecenie curl.
Otwórz nową kartę Cloud Shell i zaktualizuj ustawienia projektu.
W Cloud Shell wykonaj te czynności:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
Zaloguj się w instancji tiger za pomocą IAP w Cloud Shell.
gcloud compute ssh tiger --project=$projectid --zone=us-central1-a --tunnel-through-iap
Wykonaj polecenie curl na adresie IP usługi Cosmo zidentyfikowanym wcześniej w samouczku na instancji tiger.
curl -v <cosmo's IP Address>
Przykład:
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 !!
Gratulacje!! Udało Ci się sprawdzić połączenie z sieci VPC producenta z siecią VPC backendu za pomocą polecenia curl.
17. Czyszczenie danych
W Cloud Shell usuń komponenty samouczka.
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. Gratulacje
Gratulacje. Udało Ci się skonfigurować i zweryfikować interfejs Private Service Connect oraz zweryfikować połączenie konsumenta i producenta za pomocą połączenia równorzędnego VPC.
Infrastruktura konsumenta została utworzona, a do niej dodano przyłącze sieci, które umożliwiło producentowi utworzenie maszyny wirtualnej z wieloma interfejsami sieciowymi, aby połączyć komunikację konsumenta i producenta. Dowiedzieliśmy się, jak interfejs PSC może być używany do komunikacji z usługami 1P/3P przez połączenie równorzędne VPC za pomocą wewnętrznego systemu równoważenia obciążenia i trasy statycznej w sieci VPC producenta.
Cosmopup uważa, że samouczki są świetne!!

Co dalej?
Zapoznaj się z tymi samouczkami:
- Korzystanie z Private Service Connect do publikowania i używania usług za pomocą GKE
- Korzystanie z Private Service Connect do publikowania i używania usług
- Łączenie z usługami lokalnymi przez sieć hybrydową przy użyciu usługi Private Service Connect i wewnętrznego systemu równoważenia obciążenia serwera proxy TCP
Więcej informacji i filmy
- Omówienie Private Service Connect
- Czym jest Private Service Connect?
- Obsługiwane typy systemów równoważenia obciążenia