Private Service Connect per le API di Google

1. Introduzione

Con Private Service Connect, puoi creare endpoint privati utilizzando indirizzi IP interni globali all'interno della tua rete VPC. Puoi assegnare nomi DNS a questi indirizzi IP interni con nomi significativi come storage-pscendpoint.p.googleapis.com e bigtable-adsteam.p.googleapis.com. Invece di inviare richieste API agli endpoint di servizio pubblico come storage.googleapis.com, puoi inviare le richieste all'endpoint Private Service Connect, che è privato e interno alla rete VPC.

Questi nomi e indirizzi IP sono interni alla tua rete VPC e a qualsiasi rete on-premise connessa tramite tunnel Cloud VPN o collegamenti Cloud Interconnect (VLAN).

Puoi controllare quale traffico viene indirizzato a un determinato endpoint e dimostrare che il traffico rimane all'interno di Google Cloud.

Cosa imparerai a fare

  • Casi d'uso di Private Service Connect
  • Requisiti di rete
  • API supportate
  • Crea un endpoint Private Service Connect
  • crea un bucket Cloud Storage
  • Crea e aggiorna le zone private di Cloud DNS
  • Crea un GW NAT per accedere a googleapis pubblico
  • Creare e aggiornare un file di configurazione BOTO
  • Esegui l'elenco gsutil sulla VM1 risolta sull'endpoint del servizio PSC
  • Esegui elenco gsutil sulla VM2 risolta su googleapis.com pubblico
  • Utilizzare Tcpdump per convalidare la risoluzione DNS

Che cosa ti serve

  • Conoscenza dell'editor DNS, nano o vi

2. Casi d'uso di Private Service Connect

Puoi creare più endpoint Private Service Connect nella stessa rete VPC. Non esiste alcun limite alla larghezza di banda per un particolare endpoint. Poiché gli endpoint Private Service Connect utilizzano indirizzi IP interni globali, possono essere utilizzati da qualsiasi risorsa nella tua rete VPC.

Con più endpoint, puoi specificare diversi percorsi di rete utilizzando il router Cloud e le regole firewall.

  • Puoi creare regole firewall per impedire ad alcune VM di accedere alle API di Google tramite un endpoint Private Service Connect, consentendo l'accesso ad altre VM.
  • Puoi avere una regola firewall su un'istanza VM che non consente tutto il traffico verso internet. il traffico inviato agli endpoint Private Service Connect continua a raggiungere Google.
  • Se hai host on-premise connessi a un VPC tramite un tunnel Cloud VPN o un collegamento Cloud Interconnect (VLAN), puoi inviare alcune richieste tramite il tunnel o la VLAN mentre invii altre richieste sulla rete internet pubblica. Questa configurazione ti consente di bypassare il tunnel o la VLAN per servizi come Google Libri che non sono supportati dall'accesso privato Google. Per creare questa configurazione, crea un endpoint Private Service Connect, pubblicizza gli indirizzi IP dell'endpoint di Private Service Connect utilizzando annunci di route personalizzati del router Cloud e attiva un criterio di forwarding in entrata di Cloud DNS. L'applicazione può inviare alcune richieste tramite il tunnel Cloud VPN o il collegamento Cloud Interconnect (VLAN) utilizzando il nome dell'endpoint Private Service Connect e altre tramite internet utilizzando il nome DNS predefinito.
  • Se connetti la tua rete on-premise alla rete VPC utilizzando più collegamenti Cloud Interconnect (VLAN), puoi inviare una parte del traffico da on-premise su una VLAN e il resto su altre, come mostrato nella Figura 2. In questo modo puoi utilizzare le tue reti ad ampio raggio al posto di quelle di Google e controllare lo spostamento dei dati per soddisfare i requisiti geografici. Per creare questa configurazione, crea due endpoint Private Service Connect. Crea un annuncio di route personalizzato per il primo endpoint della sessione BGP del router Cloud che gestisce la prima VLAN, quindi crea un annuncio di route personalizzato diverso per il secondo endpoint sulla sessione BGP del router Cloud che gestisce la seconda VLAN. Gli host on-premise configurati per utilizzare il nome dell'endpoint Private Service Connect inviano il traffico sul collegamento Cloud Interconnect (VLAN) corrispondente.
  • Puoi anche utilizzare più collegamenti Cloud Interconnect (VLAN) in una topologia attiva/attiva. Se pubblicizzi lo stesso indirizzo IP dell'endpoint di Private Service Connect utilizzando annunci di route personalizzati per le sessioni BGP sui router Cloud che gestiscono le VLAN, i pacchetti inviati dai sistemi on-premise agli endpoint vengono indirizzati alle VLAN tramite ECMP.

5e142c2fbf6f010e.png

Figura 1. Configurando Private Service Connect, router Cloud e host on-premise, puoi controllare quale collegamento Cloud Interconnect (VLAN) viene utilizzato per inviare traffico alle API di Google.

3. Requisiti di rete

Per utilizzare Private Service Connect, le istanze di macchine virtuali (VM) senza indirizzi IP esterni devono avere l'interfaccia principale in una subnet in cui è abilitato l'accesso privato Google.

Una VM con un indirizzo IP esterno può accedere alle API e ai servizi Google utilizzando gli endpoint Private Service Connect, indipendentemente dal fatto che l'accesso privato Google sia abilitato o meno per la propria subnet. La connettività all'endpoint Private Service Connect rimane all'interno della rete di Google.

Gli endpoint di Private Service Connect non sono accessibili dalle reti VPC in peering.

API supportate

Quando crei un endpoint Private Service Connect, scegli il bundle di API a cui vuoi accedere: all-apis o vpc-sc.

I bundle API danno accesso alle stesse API disponibili tramite i VIP di accesso privato Google.

  • Il bundle all-apis dà accesso alle stesse API di private.googleapis.com.
  • Il bundle vpc-sc fornisce accesso alle stesse API di restricted.googleapis.com.

4. Topologia codelab e caso d'uso

2ac275eb86f26338.png

Figura 1 - Topologia codelab

Caso d'uso codelab -

Il nostro cliente richiede una combinazione di accesso googleapis privato (interconnessione) e pubblico per il trasferimento dei dati nello spazio di archiviazione sul cloud. Per soddisfare i requisiti dei nostri clienti, eseguiremo il deployment di Private Service Connect, che comprende un indirizzo /32 univoco, la configurazione BOTO e gli aggiornamenti del record DNS. La macchina virtuale 1 utilizzerà PSC per l'accesso al bucket Cloud Storage. al contrario, VM2 utilizzerà gli intervalli IP pubblici di googleapis.com tramite il GW NAT.

Il deployment di tutti gli aspetti del lab viene eseguito all'interno della piattaforma Google Cloud, ma lo stesso caso d'uso è applicabile al deployment cloud ibrido che richiede la separazione del traffico.

5. Configurazione e requisiti

Configurazione dell'ambiente da seguire in modo autonomo

  1. Accedi alla console Cloud e crea un nuovo progetto o riutilizzane uno esistente. Se non hai ancora un account Gmail o G Suite, devi crearne uno.

MrEseyJH4tg9PuS3GzJa72onCqawwQiRm04c0YjnpR6WD3IciP1ICDh5e5RoxrG3tc5y44_Ynn9GB0Igjo3sTE0BlsAnCxJdhXn7egP3tX4rkzkub7ZCjOKc70kJvl07REnmPb3TGg

HgKQ1sLCGDGbz0e3RCc-FNa3fQliCtq67H-Oj9jzzYn_upkmNN1lOMQrQm8Jdvo6EEYAvSwDEjpH37bIG9ouBJcmS_xFYV1IHJoyAhsasS1SfYtZkO-RBwWPXRrr3Zt4r31ETcjJeQ

KHAY2ncSMFGZ2vGxcMEcNoIy_cuWGCaWAsrH0KsOVwkV5e93Ypfcq3sQ_HPIrV-NSocegQN2PnRUku_CVi1MM89O6qHIU6E32ZypJPxojkbRTJXET5JvtskIXgzFMk18-4NnNjzCJA

Ricorda l'ID progetto, un nome univoco in tutti i progetti Google Cloud (il nome precedente è già stato utilizzato e non funzionerà correttamente). Verrà indicato più avanti in questo codelab come PROJECT_ID.

  1. Successivamente, dovrai abilitare la fatturazione in Cloud Console per utilizzare le risorse Google Cloud.

Eseguire questo codelab non dovrebbe costare molto. Assicurati di seguire le istruzioni nella sezione "Pulizia" in cui viene spiegato come arrestare le risorse in modo da non incorrere in fatturazione oltre questo tutorial. I nuovi utenti di Google Cloud sono idonei al programma prova senza costi di 300$.

Avvia Cloud Shell

Anche se Google Cloud può essere utilizzato da remoto dal tuo laptop, in questo codelab utilizzerai Google Cloud Shell, un ambiente a riga di comando in esecuzione nel cloud.

Dalla console di Google Cloud, fai clic sull'icona di Cloud Shell nella barra degli strumenti in alto a destra:

yEqEFRN4OGfeGJEfJplSt5sGY95BluU78i3Lk0Opo9caOYfrWUPBi_RglIfo9x078tH5Z_Obgq1wOhrEPV8k5OvMgI5e3aam1a7teXuimwTy-evcupc34_UEMmfAFkV-hnXwl559rg

Dovrebbe richiedere solo qualche istante per eseguire il provisioning e connettersi all'ambiente. Al termine, dovresti vedere una schermata simile al seguente:

BxRCLVCDNXX4OxwHppzaY9ghvuFTsgsozreyEHvRK9GPfsh3sW-kdwev6_gZdkX5FWPvb7M_Vp4FoyjFWwZxBMK6CLXiPwJgFbhz8Tgec-tyQR7GEdNjGMBca052yM8ga0UqzdHAmw

Questa macchina virtuale viene caricata con tutti gli strumenti di sviluppo necessari. Offre una home directory permanente da 5 GB e viene eseguita su Google Cloud, migliorando notevolmente le prestazioni di rete e l'autenticazione. Tutto il lavoro in questo lab può essere svolto semplicemente con un browser.

6. Prima di iniziare

Abilita API

All'interno di Cloud Shell, assicurati che l'ID progetto sia configurato

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

Abilita tutti i servizi necessari

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

7. Crea rete VPC

Rete VPC

Da 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

Crea subnet

Da 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

Crea regole firewall

Da 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

Crea un'istanza Cloud NAT

Crea router Cloud

Da Cloud Shell

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

Crea Cloud NAT

Da 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. Crea endpoint Private Service Connect

Quando configuri l'IP dell'endpoint <pscendpointip> di Private Service Connect, devi fornire un indirizzo IP univoco non definito nel tuo VPC.

Da Cloud Shell

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

Archivia "pscendpointip" per la durata del 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

Crea una regola di forwarding per connettere l'endpoint alle API e ai servizi Google.

Da Cloud Shell

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

Elenca gli endpoint di Private Service Connect configurati

Da Cloud Shell

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

Descrivere gli endpoint di Private Service Connect configurati

Da Cloud Shell

gcloud compute forwarding-rules describe \
    pscendpoint --global

9. Crea un bucket

Crea un bucket Cloud Storage e sostituisci BUCKET_NAME con un nome globalmente univoco che preferisci.

Da Cloud Shell

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

Archivia "BUCKET_NAME" per la durata del lab

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME

10. Configurazione DNS

Supponi di avere un'applicazione che utilizza Google Cloud Storage. Senza Private Service Connect, le tue applicazioni potrebbero connettersi a "storage.googleapis.com", che per impostazione predefinita viene risolto in un indirizzo pubblico. Con Private Service Connect, puoi creare e utilizzare nomi come "storage-psclab.p.googleapis.com". Il nome e gli indirizzi sono privati per la tua rete VPC e per qualsiasi rete on-premise collegata.

Private Service Connect per DNS segue la convenzione di denominazione SERVICE-ENDPOINT.p.googleapis.com. Nell'esempio fornito sopra, "archiviazione" è SERVICE & "psclab" è l'ENDPOINT. È obbligatorio inserire il segno "-" tra SERVICE ed ENDPOINT.

Per accedere a Cloud Storage utilizzando l'endpoint Private Service Connect, crea un record DNS (A) storage-psclab.p.googleapis.com che punti all'indirizzo IP dell'endpoint Private Service Connect.

Crea una zona privata DNS

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

Creazione di un record 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. Crea macchine virtuali

Crea una macchina virtuale (psc-instance-1) utilizzata per convalidare Private Service Connect

Da 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 

Accedi all'istanza VM (psc-instance-1)

SSH nella VM tramite Cloud Shell

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

Crea altri terminali Cloud Shell facendo clic su + (screenshot qui sotto) tre volte.

69ea94e1527912bb.png

Crea una macchina virtuale (psc-instance-2) utilizzata per convalidare le Googleapis pubbliche

Dalla scheda 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 

Dalla scheda 2, SSH alla VM tramite 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"

Dalla scheda 3 SSH a psc-instance-1 tramite 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"

Dalla scheda 4 Shell, SSH a psc-instance-2 tramite 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. Verifica il comportamento esistente di Gsutil

Dalla scheda 4 (psc-instance-2) avvia tcpdump e monitora il traffico DNS

sudo tcpdump -vv -i eth0 port 53

Controlla la ricerca DNS del bucket di archiviazione dalla scheda 2 (psc-instance-2)

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

Controlla il debug gsutil; per la risoluzione DNS viene utilizzato HOST storage.googleapis.com

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

Nella scheda 4 (psc-instance-2) verifica che i record A del DNS pubblico di GoogleAPI.com vengano utilizzati quando accedi al bucket di archiviazione.

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. Modifica del comportamento di gsutil

Come spiegato in un passaggio precedente, hai creato una zona DNS privata e un record A mappati all'indirizzo IP dell'endpoint PSC. Nel passaggio successivo controlleremo il comportamento di gsutil aggiornando il file BOTO della VM su psc-instance-1.

Visualizza la configurazione BOTO predefinita dal terminale di istanza VM nella scheda 1 (psc-instance-1)

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

Output (il tuo project_id sarà diverso)

[GSUtil]
default_project_id  = 234086459238
default_api_version = 2

[GoogleCompute]
service_account = default

Aggiorna la configurazione BOTO utilizzando l'editor nano o VI e assicurati di copiare e incollare tutte le voci.

Esempio: sudo nano /etc/boto.cfg

o

Esempio: sudo vi /etc/boto.cfg

Dalla scheda 1 del terminale di istanza VM(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

Convalida la configurazione. L'ordine di [Credenziali] è fondamentale per la ricerca 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. Verifica il comportamento di ricerca gsutil aggiornato

Dalla scheda 3 (psc-instance-1) avvia tcpdump e monitora il traffico DNS

sudo tcpdump -vv -i eth0 port 53

Controlla la ricerca gsutil del bucket di archiviazione dalla scheda 1 (psc-instance-1)

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME

gsutil -D ls gs://$BUCKET_NAME

I log di debug confermano che il bucket di archiviazione è raggiungibile tramite l'endpoint "pscendpoint" di 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>

Nella scheda 3 (psc-instance-1) verifica che l'IP dell'endpoint PSC sia il record DNS A utilizzato per tentare di accedere al bucket di archiviazione.

@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)

Verifica che l'IP endpoint Private Service Connect sia ora utilizzato per la risoluzione DNS

Dalla scheda 1

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. Passaggi per la pulizia

Esci dall'istanza VM (tutte le schede)

exit

Elimina i componenti del lab da un singolo terminale Cloud Shell

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

Dalla console, assicurati di visualizzare il progetto corretto, quindi seleziona Servizi di rete → Cloud DNS

d0ed4bd585006e45.png

Identifica e Fai clic su "psc-dns-zone".

903532e68a262111.png

Seleziona il set di record "storage-pscendpoint.p.googleapis.com" quindi fai clic su Elimina set di record

e89394b43ddb5ce2.png

Fai clic su Elimina zona per completare la pulizia del lab

b2a612d7b3a80030.png

16. Complimenti!

Complimenti per aver completato il codelab.

Argomenti trattati

  • Casi d'uso di Private Service Connect
  • Requisiti di rete
  • API supportate
  • Endpoint Private Service Connect creato
  • Bucket Cloud Storage creato
  • Creazione di una zona privata di Cloud DNS
  • File di configurazione BOTO aggiornato
  • Creazione di un GW NAT
  • Esegui l'elenco gsutil sulla VM1 che si risolve sull'endpoint del tuo servizio PSC
  • Esegui l'elenco gsutil sulla VM2 che si risolve in googleapis.com pubblico
  • Utilizzare Tcpdump per convalidare la risoluzione DNS