Private Service Connect para las API de Google

1. Introducción

Con Private Service Connect, puedes crear extremos privados con direcciones IP internas globales dentro de tu red de VPC. Puedes asignar nombres de DNS a estas direcciones IP internas con nombres significativos, como storage-pscendpoint.p.googleapis.com y bigtable-adsteam.p.googleapis.com. En lugar de enviar solicitudes a la API a extremos de servicio público, como storage.googleapis.com, puedes enviar las solicitudes al extremo de Private Service Connect, que es interno y privado para tu red de VPC.

Estos nombres y direcciones IP son internos a tu red de VPC y a cualquier red local que esté conectada a ella con túneles de Cloud VPN o adjuntos de Cloud Interconnect (VLAN).

Puedes controlar qué tráfico se dirige a cada extremo y puedes demostrar que el tráfico permanece dentro de Google Cloud.

Qué aprenderás

  • Casos de uso de Private Service Connect
  • Requisitos de red
  • API admitidas
  • Crear un extremo de Private Service Connect
  • Cree un bucket de Cloud Storage
  • Crea y actualiza zonas privadas de Cloud DNS
  • Crea una puerta de enlace NAT para acceder a googleapis público
  • Crea y actualiza un archivo de configuración BOTO
  • Realiza la lista de gsutil en VM1 resuelta en tu extremo de servicio de PSC
  • Realiza la lista de gsutil en VM2 resuelta en googleapis.com pública
  • Usa Tcpdump para validar la resolución de DNS

Requisitos

  • Conocimientos de DNS, editor nano o vi

2. Casos de uso de Private Service Connect

Puedes crear varios extremos de Private Service Connect en la misma red de VPC. No hay límite en el ancho de banda para un extremo en particular. Debido a que los extremos de Private Service Connect usan direcciones IP internas globales, cualquier recurso de tu red de VPC puede usarlas.

Con varios extremos, puedes especificar diferentes rutas de red con Cloud Router y reglas de firewall.

  • Puedes crear reglas de firewall para evitar que algunas VMs accedan a las APIs de Google a través de un extremo de Private Service Connect, y permitir que otras VMs tengan acceso.
  • Puedes tener una regla de firewall en una instancia de VM que rechace todo el tráfico a Internet. el tráfico enviado a los extremos de Private Service Connect aún llega a Google.
  • Si tienes hosts locales conectados a una VPC a través de un túnel de Cloud VPN o un adjunto de Cloud Interconnect (VLAN), puedes enviar algunas solicitudes a través del túnel o VLAN mientras envías otras solicitudes a través de la Internet pública. Esta configuración te permite omitir el túnel o la VLAN para servicios como Google Libros que no son compatibles con el Acceso privado a Google. Para crear esta configuración, crea un extremo de Private Service Connect, anuncia las direcciones IP del extremo de Private Service Connect con anuncios de ruta personalizados de Cloud Router y habilita una política de reenvío entrante de Cloud DNS. La aplicación puede enviar algunas solicitudes a través del túnel de Cloud VPN o del adjunto de Cloud Interconnect (VLAN) con el nombre del extremo de Private Service Connect y otras a través de Internet con el nombre DNS predeterminado.
  • Si conectas tu red local a la red de VPC con varios adjuntos de Cloud Interconnect (VLAN), puedes enviar algo de tráfico desde la ubicación local a través de una VLAN y el resto sobre los demás, como se muestra en la figura 2. Esto te permite usar tus propias redes de área amplia en lugar de las de Google y controlar el movimiento de datos para cumplir con los requisitos geográficos. Para generar esta configuración, crea dos extremos de Private Service Connect. Crea un anuncio de ruta personalizado para el primer extremo de la sesión de BGP del Cloud Router que administra la primera VLAN y crea un anuncio de ruta personalizado diferente para el segundo extremo en la sesión de BGP del Cloud Router que administra la segunda VLAN. Los hosts locales que están configurados para usar el nombre del extremo de Private Service Connect envían tráfico a través del adjunto de Cloud Interconnect (VLAN) correspondiente.
  • También puedes usar varios adjuntos de Cloud Interconnect (VLAN) en una topología activa/activa. Si anuncias la misma dirección IP del extremo de Private Service Connect con anuncios de ruta personalizados para las sesiones de BGP en los Cloud Routers que administran las VLAN, los paquetes enviados desde sistemas locales a los extremos se enrutan a través de las VLAN con ECMP.

5e142c2fbf6f010e.png

Figura 1: Cuando configuras Private Service Connect, Cloud Router y los hosts locales, puedes controlar qué adjunto de Cloud Interconnect (VLAN) se usa para enviar tráfico a las APIs de Google.

3. Requisitos de red

Para usar Private Service Connect, las instancias de máquina virtual (VM) sin direcciones IP externas deben tener su interfaz principal en una subred con el Acceso privado a Google habilitado.

Una VM con una dirección IP externa puede acceder a los servicios y las APIs de Google con los extremos de Private Service Connect, sin importar si el Acceso privado a Google está habilitado para su subred. La conectividad con el extremo de Private Service Connect permanece dentro de la red de Google.

No se puede acceder a los extremos de Private Service Connect desde redes de VPC con intercambio de tráfico.

APIs admitidas

Cuando creas un extremo de Private Service Connect, eliges a qué paquete de APIs necesitas acceso: all-apis o vpc-sc.

Los paquetes de APIs otorgan acceso a las mismas APIs que están disponibles a través de las VIP del Acceso privado a Google.

  • El paquete all-apis proporciona acceso a las mismas APIs que private.googleapis.com.
  • El paquete vpc-sc proporciona acceso a las mismas APIs que restricted.googleapis.com.

4. Topología de codelabs y caso de uso

2ac275eb86f26338.png

Figura 1: Topología del codelab

Caso de uso del codelab:

Nuestro cliente necesita una combinación de acceso privado (interconexión) y público a googleapis para la transferencia de datos del almacenamiento en la nube. Para cumplir con los requisitos de nuestros clientes, implementaremos Private Service Connect, que consta de una dirección única de /32, una configuración de BOTO y actualizaciones de registros DNS. La máquina virtual 1 usará PSC para acceder a los buckets de Cloud Storage. en cambio, la VM2 usará rangos de IP públicos de googleapis.com a través de la puerta de enlace NAT.

Todos los aspectos del lab se implementan en Google Cloud Platform, pero se aplica el mismo caso de uso a la implementación de nubes híbridas que requieren la separación del tráfico.

5. Configuración y requisitos

Configuración del entorno de autoaprendizaje

  1. Accede a la consola de Cloud y crea un proyecto nuevo o reutiliza uno existente. (Si todavía no tienes una cuenta de Gmail o de G Suite, debes crear una).

MrEseyJH4tg9PuS3GzJa72onCqawwQiRm04c0YjnpR6WD3IciP1ICDh5e5RoxrG3tc5y44_Ynn9GB0Igjo3sTE0BlsAnCxJdhXn7egP3tX4rkzkub7ZCjOKc70kJvl07REnmPb3TGg

HgKQ1sLCGDGbz0e3RCc-FNa3fQliCtq67H-Oj9jzzYn_upkmNN1lOMQrQm8Jdvo6EEYAvSwDEjpH37bIG9ouBJcmS_xFYV1IHJoyAhsasS1SfYtZkO-RBwWPXRrr3Zt4r31ETcjJeQ

KHAY2ncSMFGZ2vGxcMEcNoIy_cuWGCaWAsrH0KsOVwkV5e93Ypfcq3sQ_HPIrV-NSocegQN2PnRUku_CVi1MM89O6qHIU6E32ZypJPxojkbRTJXET5JvtskIXgzFMk18-4NnNjzCJA

Recuerde el ID de proyecto, un nombre único en todos los proyectos de Google Cloud (el nombre anterior ya se encuentra en uso y no lo podrá usar). Se mencionará más adelante en este codelab como PROJECT_ID.

  1. A continuación, deberás habilitar la facturación en la consola de Cloud para usar los recursos de Google Cloud recursos.

Ejecutar este codelab no debería costar mucho, tal vez nada. Asegúrate de seguir las instrucciones de la sección “Realiza una limpieza” en la que se aconseja cómo cerrar recursos para no incurrir en facturación más allá de este instructivo. Los usuarios nuevos de Google Cloud son aptos para participar en el programa Prueba gratuita de $300.

Inicia Cloud Shell

Si bien Google Cloud y Spanner se pueden operar de manera remota desde tu laptop, en este codelab usarás Google Cloud Shell, un entorno de línea de comandos que se ejecuta en la nube.

En GCP Console, haga clic en el ícono de Cloud Shell en la barra de herramientas superior derecha:

yEqEFRN4OGfeGJEfJplSt5sGY95BluU78i3Lk0Opo9caOYfrWUPBi_RglIfo9x078tH5Z_Obgq1wOhrEPV8k5OvMgI5e3aam1a7teXuimwTy-evcupc34_UEMmfAFkV-hnXwl559rg

El aprovisionamiento y la conexión al entorno deberían tomar solo unos minutos. Cuando termine el proceso, debería ver algo como lo siguiente:

BxRCLVCDNXX4OxwHppzaY9ghvuFTsgsozreyEHvRK9GPfsh3sW-kdwev6_gZdkX5FWPvb7M_Vp4FoyjFWwZxBMK6CLXiPwJgFbhz8Tgec-tyQR7GEdNjGMBca052yM8ga0UqzdHAmw

Esta máquina virtual está cargada con todas las herramientas de desarrollo que necesitarás. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud, lo que permite mejorar considerablemente el rendimiento de la red y la autenticación. Puedes realizar todo tu trabajo en este lab usando simplemente un navegador.

6. Antes de comenzar

Habilita las APIs

En Cloud Shell, asegúrate de que el ID del proyecto esté configurado

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

Habilita todos los servicios necesarios

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

7. Crear red de VPC

Red de VPC

Desde Cloud Shell

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

Salida

Created
NAME     SUBNET_MODE  BGP_ROUTING_MODE  IPV4_RANGE  GATEWAY_IPV4
psc-lab  CUSTOM       REGIONAL

Crear subred

Desde 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

Salida

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

Crea reglas de firewall

Desde Cloud Shell

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

Salida

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

Crea una instancia de Cloud NAT

Crea un Cloud Router

Desde Cloud Shell

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

Crea Cloud NAT

Desde 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 un extremo de Private Service Connect

Cuando configures la IP de extremo de Private Service Connect <pscendpointip>, deberás proporcionar una dirección IP única que no esté definida en tu VPC.

Desde Cloud Shell

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

Almacena “pscendpointip” durante todo el 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 regla de reenvío para conectar el extremo a los servicios y las APIs de Google.

Desde Cloud Shell

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

Genera una lista de los extremos configurados de Private Service Connect

Desde Cloud Shell

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

Describir los extremos configurados de Private Service Connect

Desde Cloud Shell

gcloud compute forwarding-rules describe \
    pscendpoint --global

9. Crea un bucket

Crea un bucket de Cloud Storage y reemplaza BUCKET_NAME por el nombre global único que prefieras.

Desde Cloud Shell

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

Tienda “BUCKET_NAME” durante todo el lab

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME

10. Configuración de DNS

Supongamos que tienes una aplicación que usa Google Cloud Storage. Sin Private Service Connect, tus aplicaciones podrían conectarse a “storage.googleapis.com”, que de forma predeterminada se resuelve en una dirección pública. Con Private Service Connect, puedes crear y usar nombres como “storage-psclab.p.googleapis.com”. El nombre y las direcciones son privados para tu red de VPC y cualquier red local conectada.

Private Service Connect para DNS sigue la convención de nombres, SERVICE-ENDPOINT.p.googleapis.com. En el ejemplo anterior, “almacenamiento” es el SERVICIO y “psclab” es el EXTREMO. Es imperativo incluir el símbolo "-" entre SERVICE y ENDPOINT.

Para acceder a Cloud Storage con el extremo de Private Service Connect, crea un registro DNS (A) storage-psclab.p.googleapis.com que apunte a la dirección IP del extremo de Private Service Connect.

Crea una zona privada de DNS

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

Crea un registro A de 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. Cree máquinas virtuales

Crear una máquina virtual (psc-instance-1) para validar Private Service Connect

Desde 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 

Accede a la instancia de VM (psc-instance-1).

Establece una conexión SSH a la VM a través de Cloud Shell

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

Para crear terminales adicionales de Cloud Shell, haz clic en + (captura de pantalla a continuación) tres veces.

69ea94e1527912bb.png

Crear una máquina virtual (psc-instance-2) que se usa para validar las APIs públicas de Google

De la pestaña 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 

Desde la pestaña 2, establece una conexión SSH a la VM a través de 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"

Desde la pestaña 3, establece una conexión SSH a psc-instance-1 a través de 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"

Desde la pestaña 4, establece una conexión SSH a psc-instance-2 a través de 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 el comportamiento de Gsutil existente

En la pestaña 4 (psc-instance-2), inicia tcpdump y supervisa el tráfico de DNS.

sudo tcpdump -vv -i eth0 port 53

Inspecciona la búsqueda de DNS del bucket de almacenamiento en la pestaña 2 (psc-instance-2)

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

Inspecciona la depuración de gsutil. Se usa HOST storage.googleapis.com para la resolución de 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>

En la pestaña 4 (psc-instance-2), verifica que se usen los registros A de DNS públicos de GoogleAPI.com cuando se accede al bucket de almacenamiento.

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 el comportamiento de Gsutil

Recuerda que, en un paso anterior, creaste una zona de DNS privado y un registro A asignado a la dirección IP del extremo de PSC. En el siguiente paso, controlaremos el comportamiento de gsutil a través de la actualización del archivo BOTO de la VM en psc-instance-1.

Visualiza la configuración predeterminada de BOTO en la terminal de la instancia de VM de la pestaña 1 (psc-instance-1)

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

Resultado (tu project_id será diferente)

[GSUtil]
default_project_id  = 234086459238
default_api_version = 2

[GoogleCompute]
service_account = default

Actualiza la configuración de BOTO con el editor nano o VI y asegúrate de copiar y pegar todas las entradas.

Ejemplo: sudo nano /etc/boto.cfg

o

Ejemplo: sudo vi /etc/boto.cfg

Desde la pestaña de la terminal 1 de la instancia de 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

Valida la configuración; el orden de las [credenciales] es fundamental para la búsqueda de 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 el comportamiento actualizado de la búsqueda de gsutil

En la pestaña 3 (psc-instance-1), inicia tcpdump y supervisa el tráfico de DNS.

sudo tcpdump -vv -i eth0 port 53

Búsqueda de gsutil del bucket de almacenamiento de la pestaña 1 (psc-instance-1)

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME

gsutil -D ls gs://$BUCKET_NAME

Los registros de depuración confirman que se puede acceder al bucket de almacenamiento a través del extremo “pscendpoint” de Private Service Connect

Resultado:

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

En la pestaña 3 (psc-instance-1), verifica que la IP del extremo de PSC sea el registro A de DNS que se usa cuando intentas acceder a tu bucket de almacenamiento.

@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 que la IP del extremo de Private Service Connect ahora se use para la resolución de DNS

De la pestaña 1

nslookup storage-pscendpoint.p.googleapis.com

Salida

@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. Pasos de limpieza

Salir de la instancia de VM (todas las pestañas)

exit

Borra los componentes del lab desde una sola terminal de 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

En la consola, asegúrate de estar viendo el proyecto correcto y, luego, selecciona Servicios de red → Cloud DNS

d0ed4bd585006e45.png

Identifica y haz clic en “psc-dns-zone”.

903532e68a262111.png

Selecciona el conjunto de registros “storage-pscendpoint.p.googleapis.com”. luego, haz clic en Borrar conjuntos de registros

e89394b43ddb5ce2.png

Haz clic en Borrar zona para completar la limpieza del lab

b2a612d7b3a80030.png

16. ¡Felicitaciones!

Felicitaciones por completar el codelab.

Temas abordados

  • Casos de uso de Private Service Connect
  • Requisitos de red
  • API admitidas
  • Creaste un extremo de Private Service Connect
  • Creaste un bucket de Cloud Storage
  • Creaste zonas privadas de Cloud DNS
  • Actualiza un archivo de configuración BOTO
  • Creación de una puerta de enlace NAT
  • Realiza la lista de gsutil en VM1 que se resuelve en el extremo del servicio de PSC.
  • Realiza la lista de gsutil en VM2 que se resuelve en googleapis.com pública.
  • Usa Tcpdump para validar la resolución de DNS