1. Introducción
Descripción general
En este lab, los usuarios explorarán cómo se puede usar Network Connectivity Center (NCC) para establecer la conectividad local a gran escala a través de la compatibilidad con radios de VPC y el intercambio dinámico de rutas. Cuando los usuarios definen una VPC como un radio de VPC, esto les permite conectarla a varias redes de VPC a través del Concentrador de NCC. Para establecer la conectividad de red con la red local de un usuario, este puede adjuntar NIC virtuales de dispositivos de router, túneles de HA_VPN o adjuntos de VLAN de interconexión al mismo concentrador de NCC que los radios de VPC de NCC.
El recurso de concentrador proporciona un modelo de administración de conectividad centralizado para interconectar radios.
Qué compilarás
En este codelab, crearás una topología lógica de concentrador y radio con el concentrador de NCC que implementará la conectividad híbrida entre la red local y una VPC de carga de trabajo.

Qué aprenderás
- Distingue entre una VPC de carga de trabajo y una VPC de enrutamiento
- Integración de NCC de radio de VPC y radio híbrido
Requisitos
- Conocimiento de la red de VPC de GCP
- Conocimiento de Cloud Router y del enrutamiento de BGP
- Proyecto de Google Cloud
- Verifica tu cuota:redes y solicita redes adicionales si es necesario, como se muestra en la siguiente captura de pantalla:

Objetivos
- Configura el entorno de GCP
- Configurar Network Connectivity Center con VPC como radio
- Configurar Network Connectivity Center con túneles VPN con alta disponibilidad como radio híbrido
- Validar la ruta de datos
- Explora las funciones de capacidad de servicio de NCC
- Limpia los recursos usados
Antes de comenzar
Consola de Google Cloud y Cloud Shell
Para interactuar con GCP, usaremos Google Cloud Console y Cloud Shell a lo largo de este lab.
Proyecto de NCC Hub Consola de Google Cloud
Puedes acceder a la consola de Cloud en https://console.cloud.google.com.
Configura los siguientes elementos en Google Cloud para facilitar la configuración de Network Connectivity Center:
En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.
Inicia Cloud Shell. En este codelab, se usan variables para facilitar la implementación de la configuración de gcloud en Cloud Shell.
gcloud auth list
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=[YOUR-PROJECT-NAME]
echo $projectname
region="us-central1"
zone="us-central1-a"
Funciones de IAM
El NCC requiere roles de IAM para acceder a APIs específicas. Asegúrate de configurar tu usuario con los roles de IAM de NCC según sea necesario.
Rol/Descripción | Permisos |
networkconnectivity.networkAdmin: Permite que los administradores de red administren el concentrador y los radios. | networkconnectivity.hubs.networkconnectivity.spokes. |
networkconnectivity.networkSpokeManager: Permite agregar y administrar radios en un concentrador. Se usa en la VPC compartida, en la que el proyecto host es propietario del concentrador, pero otros administradores de otros proyectos pueden agregar radios para sus adjuntos al concentrador. | networkconnectivity.spokes.** |
networkconnectivity.networkUsernetworkconnectivity.networkViewer: Permite a los usuarios de la red ver diferentes atributos del concentrador y los radios. | networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList |
2. Configura el entorno de red
Descripción general
En esta sección, implementaremos las tres redes de VPC y las reglas de firewall en un solo proyecto. En el diagrama lógico, se ilustra el entorno de red que se configurará en este paso. A los fines de este codelab, se usará una VPC para simular una red local.

Concepto clave 1
La VPC global de Google Cloud proporciona conectividad de ruta de datos entre más de 44 regiones de GCP. Cloud Router, un servicio regional, anuncia subredes de forma dinámica y propaga rutas aprendidas en la región en la que se configura el router o en toda la red de VPC. Lo que determina si el Cloud Router propaga rutas de forma regional o global depende del modo de enrutamiento dinámico que defina el usuario: regional o global.
En esta sección, comenzaremos por configurar cada VPC con el modo de enrutamiento regional. Para el resto de este codelab, haz lo siguiente:
- “VPC de enrutamiento” identifica una VPC que NO está configurada como un radio de VPC de NCC.
- “VPC de carga de trabajo” identifica una VPC configurada como radio de NCC.
Crea la VPC de la carga de trabajo y una subred
La red de VPC contiene subredes en las que instalarás la VM de GCE para la validación de la ruta de datos.
vpc_spoke_network_name="workload-vpc"
vpc_spoke_subnet_name="workload-subnet"
vpc_spoke_subnet_ip_range="10.0.1.0/24"
vpc_spoke_name="workload-vpc-spoke"
region="us-central1"
zone="us-central1-a"
gcloud compute networks create "${vpc_spoke_network_name}" \
--subnet-mode=custom
gcloud compute networks subnets create "${vpc_spoke_subnet_name}" \
--network="${vpc_spoke_network_name}" \
--range="${vpc_spoke_subnet_ip_range}" \
--region="${region}"
Crea la VPC de enrutamiento y una subred
NCC admite todos los rangos de subred IPv4 válidos, excepto las direcciones IP públicas de uso privado.
routing_vpc_network_name="routing-vpc"
routing_vpc_subnet_name="routing-vpc-subnet"
routing_vpc_subnet_range="10.0.2.0/24"
gcloud compute networks create "${routing_vpc_network_name}" \
--subnet-mode=custom
gcloud compute networks subnets create "${routing_vpc_subnet_name}" \
--region="${region}" \
--network="${routing_vpc_network_name}" \
--range="${routing_vpc_subnet_range}"
Crea la VPC local y una subred
NCC admite todos los rangos de subred IPv4 válidos, excepto las direcciones IP públicas de uso privado.
on_prem_network_name="on-prem-net-vpc"
on_prem_subnet_name="on-prem-subnet"
on_prem_subnet_range="10.0.3.0/24"
gcloud compute networks create "${on_prem_network_name}" \
--subnet-mode=custom
gcloud compute networks subnets create "${on_prem_subnet_name}" \
--region="${region}" \
--network="${on_prem_network_name}" \
--range="${on_prem_subnet_range}"
Configura reglas de firewall de VPC de carga de trabajo
workload_vpc_firewall_name="workload-protocol-fw-vpc"
workload_port_firewall_name="workload-port-firewall-vpc"
gcloud compute firewall-rules create "${workload_vpc_firewall_name}" \
--network=${vpc_spoke_network_name} \
--allow="tcp,udp,icmp"
gcloud compute firewall-rules create "${workload_port_firewall_name}" \
--network=${vpc_spoke_network_name} \
--allow="tcp:22,tcp:3389,tcp:11180,icmp"
Configura el enrutamiento de VPC y las reglas de firewall de VPC
routing_vpc_fw_name="routing-vpc-protocol-fw"
routing_vpc_port_fw_name="routing-vpc--port-fw"
gcloud compute firewall-rules create "${routing_vpc_fw_name}" \
--network=${routing_vpc_network_name} \
--allow="tcp,udp,icmp"
gcloud compute firewall-rules create "${routing_vpc_port_fw_name}" \
--network=${routing_vpc_network_name} \
--allow="tcp:22,tcp:3389,tcp:11180,icmp"
Configura la VPC local y las reglas de firewall de la VPC
prem_protocol_fw_name="onprem-vpc-protocol-firewall"
prem_port_firewall_name="onprem-vpc-port-firewall-prem"
gcloud compute firewall-rules create "${prem_protocol_fw_name}" \
--network=${on_prem_network_name} \
--allow="tcp,udp,icmp"
gcloud compute firewall-rules create "${prem_port_firewall_name}" \
--network=${on_prem_network_name} \
--allow="tcp:22,tcp:3389,tcp:11180,icmp"
Configura una VM de GCE en cada VPC
Necesitarás acceso temporal a Internet para instalar paquetes en "vm1-vpc1-ncc".
Crea tres máquinas virtuales. Cada una se asignará a una de las VPC creadas anteriormente.
gcloud compute instances create vm1-vpc-workload \
--zone us-central1-a \
--subnet="${vpc_spoke_subnet_name}" \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install apache2 -y
apt-get install tcpdump -y
service apache2 restart
echo "
<h3>Web Server: www-vm1</h3>" | tee /var/www/html/index.html'
gcloud compute instances create vm2-vpc-routing \
--zone us-central1-a \
--subnet="${routing_vpc_subnet_name}" \
--no-address
gcloud compute instances create vm3-onprem \
--zone us-central1-a \
--subnet="${on_prem_subnet_name}" \
--no-address
3. Configura la conectividad híbrida
En esta sección, configuraremos un túnel VPN con alta disponibilidad para conectar la red de VPC local y la de enrutamiento.

Configura un Cloud Router con BGP en la VPC de enrutamiento
routing_vpc_router_name="routing-vpc-cr"
routing_vpc_router_asn=64525
gcloud compute routers create "${routing_vpc_router_name}" \
--region="${region}" \
--network="${routing_vpc_network_name}" \
--asn="${routing_vpc_router_asn}"
Configura un Cloud Router con BGP en la VPC local
on_prem_router_name="on-prem-router"
on_prem_router_asn=64526
gcloud compute routers create "${on_prem_router_name}" \
--region="${region}" \
--network="${on_prem_network_name}" \
--asn="${on_prem_router_asn}"
Configura una puerta de enlace de VPN en la VPC de enrutamiento
routing_vpn_gateway_name="routing-vpc-vpn-gateway"
gcloud compute vpn-gateways create "${routing_vpn_gateway_name}" \
--region="${region}" \
--network="${routing_vpc_network_name}"
Configura una puerta de enlace de VPN en la VPC local
on_prem_gateway_name="on-prem-vpn-gateway"
gcloud compute vpn-gateways create "${on_prem_gateway_name}" \
--region="${region}" \
--network="${on_prem_network_name}"
Configura un túnel VPN en la VPC de enrutamiento y la VPC local
secret_key=$(openssl rand -base64 24)
routing_vpc_tunnel_name="routing-vpc-tunnel"
on_prem_tunnel_name="on-prem-tunnel"
gcloud compute vpn-tunnels create "${routing_vpc_tunnel_name}" \
--vpn-gateway="${routing_vpn_gateway_name}" \
--peer-gcp-gateway="${on_prem_gateway_name}" \
--router="${routing_vpc_router_name}" \
--region="${region}" \
--interface=0 \
--shared-secret="${secret_key}"
gcloud compute vpn-tunnels create "${on_prem_tunnel_name}" \
--vpn-gateway="${on_prem_gateway_name}" \
--peer-gcp-gateway="${routing_vpn_gateway_name}" \
--router="${on_prem_router_name}" \
--region="${region}" \
--interface=0 \
--shared-secret="${secret_key}"
Crea sesiones de BGP para intercambiar tráfico de BGP con la VPC de enrutamiento y los Cloud Routers locales
interface_hub_name="if-hub-to-prem"
hub_router_ip="169.254.1.1"
gcloud compute routers add-interface "${routing_vpc_router_name}" \
--interface-name="${interface_hub_name}" \
--ip-address="${hub_router_ip}" \
--mask-length=30 \
--vpn-tunnel="${routing_vpc_tunnel_name}" \
--region="${region}"
bgp_hub_name="bgp-hub-to-prem"
prem_router_ip="169.254.1.2"
gcloud compute routers add-bgp-peer "${routing_vpc_router_name}" \
--peer-name="${bgp_hub_name}" \
--peer-ip-address="${prem_router_ip}" \
--interface="${interface_hub_name}" \
--peer-asn="${on_prem_router_asn}" \
--region="${region}"
interface_prem_name="if-prem-to-hub"
gcloud compute routers add-interface "${on_prem_router_name}" \
--interface-name="${interface_prem_name}" \
--ip-address="${prem_router_ip}" \
--mask-length=30 \
--vpn-tunnel="${on_prem_tunnel_name}" \
--region="${region}"
bgp_prem_name="bgp-prem-to-hub"
gcloud compute routers add-bgp-peer "${on_prem_router_name}" \
--peer-name="${bgp_prem_name}" \
--peer-ip-address="${hub_router_ip}" \
--interface="${interface_prem_name}" \
--peer-asn="${routing_vpc_router_asn}" \
--region="${region}"
De forma predeterminada, las subredes del Concentrador de NCC no se anuncian a los radios híbridos. En el siguiente paso, configura el Cloud Router para anunciar las rutas de subred de NCC a la red local.
Anuncia subredes de radio de VPC al Cloud Router local
gcloud compute routers update "${routing_vpc_router_name}" \
--advertisement-mode custom \
--set-advertisement-groups=all_subnets \
--set-advertisement-ranges="${vpc_spoke_subnet_ip_range}" \
--region="${region}"
Anuncia subredes locales al Cloud Router de la VPC de enrutamiento
gcloud compute routers update "${on_prem_router_name}" \
--advertisement-mode custom \
--set-advertisement-groups=all_subnets \
--region="${region}"
Actualiza la configuración de intercambio de tráfico de BGP del Cloud Router local para anunciar prefijos con un valor MED de “111”. En una sección posterior, observaremos el comportamiento de NCC con los valores Med de BGP.
on_prem_router_name="on-prem-router"
bgp_prem_name="bgp-prem-to-hub"
gcloud compute routers update-bgp-peer "${on_prem_router_name}" \
--peer-name="${bgp_prem_name}" \
--advertised-route-priority="111" \
--region="${region}"
Verifica el estado del túnel de la VPC de enrutamiento
gcloud compute vpn-tunnels describe routing-vpc-tunnel \
--region=us-central1 \
--format='flattened(status,detailedStatus)'
Verifica el estado del Cloud Router de la VPC de enrutamiento
Usa el comando de gcloud para enumerar las rutas aprendidas por BGP del Cloud Router de la VPC de enrutamiento.
gcloud compute routers get-status routing-vpc-cr \
--region=us-central1
4. Concentrador de Network Connectivity Center
Descripción general
En esta sección, configuraremos un concentrador de NCC con comandos de gcloud. El Concentrador de NCC actuará como el plano de control responsable de crear la configuración de enrutamiento entre cada radio de VPC.

Habilita los servicios de API
Habilita la API de Network Connectivity en caso de que aún no esté habilitada:
gcloud services enable networkconnectivity.googleapis.com
Crea un concentrador de NCC
Crea un concentrador de NCC con el comando de gcloud
hub_name="mesh-hub"
gcloud network-connectivity hubs create "${hub_name}"
Ejemplo de resultado:
Create request issued for: [mesh-hub]
Waiting for operation [projects/ncc/locations/global/operations/operation-1719930559145-61c448a0426e4-2d18c8dd-7107edbe] to complete...done.
Created hub [mesh-hub].
Describe el Concentrador de NCC recién creado. Anota el nombre y la ruta asociada.
gcloud network-connectivity hubs describe mesh-hub
createTime: '2024-07-02T14:29:19.260054897Z'
exportPsc: false
name: projects/ncc/locations/global/hubs/mesh-hub
policyMode: PRESET
presetTopology: MESH
routeTables:
- projects/ncc/locations/global/hubs/mesh-hub/routeTables/default
state: ACTIVE
uniqueId: 08f9ae88-f76f-432b-92b2-357a85fc83aa
updateTime: '2024-07-02T14:29:32.583206925Z'
El Concentrador de NCC introdujo una tabla de enrutamiento que define el plano de control para crear la conectividad de datos. Busca el nombre de la tabla de enrutamiento del Concentrador de NCC
gcloud network-connectivity hubs route-tables list --hub=mesh-hub
NAME HUB DESCRIPTION
default mesh-hub
Encuentra el URI de la tabla de rutas predeterminada de NCC.
gcloud network-connectivity hubs route-tables describe default --hub=mesh-hub
createTime: '2024-07-02T14:29:22.340190411Z'
name: projects/ncc/locations/global/hubs/mesh-hub/routeTables/default
state: ACTIVE
uid: fa2af78b-d416-41aa-b442-b8ebdf84f799
Enumera el contenido de la tabla de enrutamiento predeterminada del Concentrador de NCC. Nota*: La tabla de rutas del Concentrador de NCC estará vacía hasta que se definan radios híbridos de NCC o radios de VPC.
gcloud network-connectivity hubs route-tables routes list --hub=mesh-hub --route_table=default
La tabla de rutas del Concentrador de NCC debería estar vacía.
5. NCC con radios híbridos y de VPC
Descripción general
En esta sección, configurarás dos radios de NCC con comandos de gcloud. Un radio será un radio de VPC y el segundo será un radio híbrido (de VPN).

Configura las VPC de carga de trabajo como radios de NCC
Configura la VPC de carga de trabajo como un radio de NCC y asígnale el concentrador de NCC que se creó anteriormente. Las llamadas a la API de NCC Speech requieren que se especifique una ubicación. La marca "–global" permite que el usuario evite especificar una ruta de URI completa cuando configura un nuevo radio de NCC.
vpc_spoke_name="workload-vpc-spoke"
vpc_spoke_network_name="workload-vpc"
gcloud network-connectivity spokes linked-vpc-network create "${vpc_spoke_name}" \
--hub="${hub_name}" \
--vpc-network="${vpc_spoke_network_name}" \
--global
Create request issued for: [workload-vpc-spoke]
Waiting for operation [projects/ncc/locations/global/operations/operation-1719931097138-61c44aa15463f-90de22c7-40c10e6b] to complete...done.
Created spoke [workload-vpc-spoke].
createTime: '2024-07-02T14:38:17.315200822Z'
group: projects/ncc/locations/global/hubs/mesh-hub/groups/default
hub: projects/ncc/locations/global/hubs/mesh-hub
linkedVpcNetwork:
uri: https://www.googleapis.com/compute/v1/projects/ncc/global/networks/workload-vpc
name: projects/ncc/locations/global/spokes/workload-vpc-spoke
spokeType: VPC_NETWORK
state: ACTIVE
uniqueId: 33e50612-9b62-4ec7-be6c-962077fd47dc
updateTime: '2024-07-02T14:38:44.196850231Z'
Configura el túnel VPN en la VPC de enrutamiento como un radio híbrido
Usa este comando de gcloud para configurar el túnel VPN como un radio híbrido para unirse a mesh-hub.
vpn_spoke_name="hybrid-spoke"
routing_vpc_tunnel_name="routing-vpc-tunnel"
region="us-central1"
hub_name="mesh-hub"
gcloud network-connectivity spokes linked-vpn-tunnels create "${vpn_spoke_name}" \
--region="${region}" \
--hub="${hub_name}" \
--vpn-tunnels="${routing_vpc_tunnel_name}"
Resultado de muestra
Create request issued for: [hybrid-spoke]
Waiting for operation [projects/ncc/locations/us-central1/operations/operation-1719932916561-61c45168774be-0a06ae03-88192175] to complete...done.
Created spoke [hybrid-spoke].
Verifica la configuración de radio de mesh-hub
Usa el comando de gcloud para enumerar el contenido de la tabla de enrutamiento predeterminada del concentrador de NCC.
gcloud network-connectivity hubs list-spokes mesh-hub
Analiza la tabla de enrutamiento predeterminada de mesh-hub
Usa el comando de gcloud para enumerar el contenido de la tabla de enrutamiento predeterminada del concentrador de NCC.
gcloud network-connectivity hubs route-tables routes list --hub=mesh-hub \
--route_table=default
Los prefijos obtenidos por Cloud Router con valores MED de BGP se propagan en los radios de NCC cuando se usa el intercambio dinámico de rutas con radios híbridos de NCC.
Usa el comando de gcloud para ver el valor de prioridad de “111”.
gcloud network-connectivity hubs route-tables routes list \
--hub=mesh-hub \
--route_table=default \
--effective-location=us-central1 \
--filter=10.0.3.0/24
6. Verifica la ruta de datos
En este paso, validaremos la ruta de datos entre el radio híbrido y el de VPC de NCC. 
Usa el resultado de estos comandos de gcloud para acceder a la VM local.
gcloud compute instances list --filter="name=vm3-onprem"
Accede a la instancia de VM que reside en la red local.
gcloud compute ssh vm3-onprem --zone=us-central1-a
En la terminal de vm3-onprem, usa el comando curl para establecer una sesión web en la VM alojada en workload-vpc.
curl 10.0.1.2 -v
* Trying 10.0.1.2:80...
* Connected to 10.0.1.2 (10.0.1.2) port 80 (#0)
> GET / HTTP/1.1
> Host: 10.0.1.2
> User-Agent: curl/7.74.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Wed, 03 Jul 2024 15:41:34 GMT
< Server: Apache/2.4.59 (Debian)
< Last-Modified: Mon, 01 Jul 2024 20:36:16 GMT
< ETag: "1e-61c358c8272ba"
< Accept-Ranges: bytes
< Content-Length: 30
< Content-Type: text/html
<
<h3>Web Server: www-vm1</h3>
* Connection #0 to host 10.0.1.2 left intact
7. Limpieza
Accede a Cloud Shell y borra los recursos de GCP.
Borra los radios de NCC
gcloud network-connectivity spokes delete workload-vpc-spoke --global \
--quiet
gcloud network-connectivity spokes delete hybrid-spoke \
--quiet \
--region us-central1
Borrar el concentrador de NCC
gcloud network-connectivity hubs delete mesh-hub --quiet
Cómo borrar reglas de firewall
gcloud compute firewall-rules delete onprem-vpc-port-firewall-prem onprem-vpc-protocol-firewall routing-vpc--port-fw routing-vpc-protocol-fw workload-port-firewall-vpc workload-protocol-fw-vpc --quiet
Borra el túnel de VPN con alta disponibilidad
gcloud compute vpn-tunnels delete on-prem-tunnel \
--region=us-central1 \
--quiet
gcloud compute vpn-tunnels delete routing-vpc-tunnel \
--region=us-central1 \
--quiet
Borrar puerta de enlace de VPN
gcloud compute vpn-gateways delete on-prem-vpn-gateway \
--region=us-central1 --quiet
gcloud compute vpn-gateways delete routing-vpc-vpn-gateway \
--region us-central1 --quiet
Borra un Cloud Router
gcloud compute routers delete routing-vpc-cr --region us-central1 --quiet
gcloud compute routers delete on-prem-router --region us-central1 --quiet
Borra instancias de GCE
gcloud compute instances delete vm1-vpc-workload \
--zone=us-central1-a \
--quiet
gcloud compute instances delete vm2-vpc-routing \
--zone=us-central1-a \
--quiet
gcloud compute instances delete vm3-onprem \
--zone=us-central1-a \
--quiet
Borra subredes de VPC
gcloud compute networks subnets delete workload-subnet --region us-central1 --quiet
gcloud compute networks subnets delete on-prem-subnet --region us-central1 --quiet
gcloud compute networks subnets delete routing-vpc-subnet --region us-central1 --quiet
Borrar VPC
gcloud compute networks delete on-prem-net-vpcworkload-vpc routing-vpc
--quiet
8. ¡Felicitaciones!
Completaste el lab de Network Connectivity Center sobre el intercambio de rutas dinámicas.
Temas que se abordaron
- Intercambio de rutas dinámico con Network Connectivity Center
Próximos pasos
©Google LLC o sus afiliados. Todos los derechos reservados. Do not distribute.