CodeLab: Dynamischer Routenaustausch mit NCC

1. Einführung

Übersicht

In diesem Lab erfahren Sie, wie Sie mit Network Connectivity Center (NCC) und mithilfe von VPC-Spokes sowie dynamischen Routenaustausch lokale skalierbare Konnektivität herstellen können. Wenn Nutzer eine VPC als VPC-Spoke definieren, kann sie über den NCC-Hub mit mehreren VPC-Netzwerken verbunden werden. Um eine Netzwerkverbindung zum lokalen Netzwerk eines Nutzers bzw. einer Nutzerin herzustellen, können sie virtuelle NIC, HA VPN-Tunnel oder Interconnect-VLAN-Anhänge der Router-Appliance an denselben NCC-Hub wie NCC-VPC-Spokes anhängen.

Die Hub-Ressource ist ein Modell für die zentrale Konnektivitätsverwaltung miteinander verbundener Spokes.

Umfang

In diesem Codelab erstellen Sie mit dem NCC-Hub eine logische Hub-and-Spoke-Topologie, die eine Hybridverbindung zwischen dem lokalen Netzwerk und einer Arbeitslast-VPC implementiert.

21d100d48eee31f1.png

Lerninhalte

  • Unterscheidung zwischen Arbeitslast-VPC und Routing-VPC
  • NCC-Integration von VPC-Spoke und Hybrid-Spoke

Voraussetzungen

6d1b99c6da87fd84.png

Ziele

  • GCP-Umgebung einrichten
  • Network Connectivity Center mit VPC als Spoke konfigurieren
  • Network Connectivity Center mit HA VPN-Tunneln als Hybrid-Spoke konfigurieren
  • Datenpfad validieren
  • Funktionen für die NCC-Wartung
  • Verwendete Ressourcen bereinigen

Hinweis

Google Cloud Console und Cloud Shell

In diesem Lab verwenden wir sowohl die Google Cloud Console als auch Cloud Shell, um mit GCP zu interagieren.

NCC Hub-Projekt Google Cloud Console

Die Cloud Console ist unter https://console.cloud.google.com erreichbar.

Richten Sie die folgenden Elemente in Google Cloud ein, um die Konfiguration des Network Connectivity Centers zu vereinfachen:

Wählen Sie in der Google Cloud Console auf der Seite zur Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

Starten Sie Cloud Shell. In diesem Codelab werden $Variablen verwendet, um die Implementierung der gcloud-Konfiguration in Cloud Shell zu erleichtern.

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"

IAM-Rollen

Für den Zugriff auf bestimmte APIs sind IAM-Rollen erforderlich. Konfigurieren Sie Ihren Nutzer mit den erforderlichen NCC-IAM-Rollen.

Rolle/Beschreibung

Berechtigungen

networkconnectivity.editor: Ermöglicht Netzwerkadministratoren, Hubs und Spokes zu verwalten.

networkconnectivity.hubs.networkconnectivity.spokes.networkconnectivity.gatewaynetworkconnectivity.locations.

networkconnectivity.HubAdmin: Ermöglicht vollständigen Zugriff auf Hub- und Spoke-Ressourcen.

networkconnectivity.gatewayAdvertisedRoutes.networkconnectivity.groups. networkconnectivity.hubRouteTables.networkconnectivity.hubRoutes.networkconnectivity.hubs. networkconnectivity.locations. networkconnectivity.operations.* networkconnectivity.spokes.*resourcemanager.projects.getresourcemanager.projects.list

networkconnectivity.hubViewer - Ermöglicht Lesezugriff auf Hub- und Spoke-Ressourcen.

networkconnectivity.gatewayAdvertisedRoutes.getnetworkconnectivity.gatewayAdvertisedRoutes.listnetworkconnectivity.groups.getnetworkconnectivity.groups.getIamPolicynetworkconnectivity.groups.listnetworkconnectivity.hubRouteTables.getnetworkconnectivity.hubRouteTables.getIamPolicynetworkconnectivity.hubRouteTables.listnetworkconnectivity.hubRoutes.getnetworkconnectivity.hubRoutes.getIamPolicynetworkconnectivity.hubRoutes.listnetworkconnectivity.hubs.getnetworkconnectivity.hubs.getIamPolicynetworkconnectivity.hubs.listnetworkconnectivity.hubs.listSpokesnetworkconnectivity.hubs.queryStatus networkconnectivity.locations.*networkconnectivity.spokes.getnetworkconnectivity.spokes.getIamPolicynetworkconnectivity.spokes.listresourcemanager.projects.getresourcemanager.projects.list

2. Netzwerkumgebung einrichten

Übersicht

In diesem Abschnitt stellen wir die drei VPC-Netzwerke und Firewallregeln in einem einzelnen Projekt bereit. Das logische Diagramm veranschaulicht die Netzwerkumgebung, die in diesem Schritt eingerichtet wird. In diesem Codelab wird eine VPC verwendet, um ein lokales Netzwerk zu simulieren.

732e31532d8f6edb.png

Wichtiges Konzept 1

Die globale VPC von Google Cloud bietet Datenpfadverbindungen zwischen mehr als 44 GCP-Regionen. Cloud Router, ein regionaler Dienst, bewirbt dynamisch Subnetze und leitet erkannte Routen in der Region, in der der Router konfiguriert ist, oder im gesamten VPC-Netzwerk weiter. Ob der Cloud Router Routen regional oder global weiterleitet, hängt davon ab, ob der Nutzer den dynamischen Routingmodus als regional oder global definiert.

In diesem Abschnitt konfigurieren wir zuerst jede VPC mit dem regionalen Routingmodus. Im restlichen Codelab gilt Folgendes:

  • „Routing-VPC“ bezeichnet eine VPC, die NICHT als NCC-VPC-Spoke konfiguriert ist.
  • „Arbeitslast-VPC“ bezeichnet eine VPC, die als NCC-Spoke konfiguriert ist.

VPC und Subnetz für die Arbeitslast erstellen

Das VPC-Netzwerk enthält Subnetze, in denen Sie die GCE-VM für die Validierung des Datenpfads installieren.

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

Routing-VPC und Subnetz erstellen

NCC unterstützt alle gültigen IPv4-Subnetzbereiche mit Ausnahme von privat verwendeten öffentlichen IP-Adressen.

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

On-prem-VPC und ein Subnetz erstellen

NCC unterstützt alle gültigen IPv4-Subnetzbereiche mit Ausnahme von privat verwendeten öffentlichen IP-Adressen.

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

VPC-Firewallregeln für Arbeitslasten konfigurieren

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"

Routing-VPC und VPC-Firewallregeln konfigurieren

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"

Lokale VPC und VPC-Firewallregeln konfigurieren

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"

GCE-VM in jeder VPC konfigurieren

Sie benötigen vorübergehenden Internetzugriff, um Pakete auf „vm1-vpc1-ncc“ zu installieren.

Erstellen Sie drei virtuelle Maschinen. Jede VM wird einer der zuvor erstellten VPCs zugewiesen.

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. Hybridkonnektivität einrichten

In diesem Abschnitt konfigurieren wir einen HA VPN-Tunnel, um das lokale VPC-Netzwerk mit dem Routing-VPC-Netzwerk zu verbinden.

161d9e6b19ce53a1.png

Cloud Router mit BGP in der Routing-VPC konfigurieren

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

Cloud Router mit BGP in der lokalen VPC konfigurieren

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

VPN-Gateway in der Routing-VPC konfigurieren

routing_vpn_gateway_name="routing-vpc-vpn-gateway"

gcloud compute vpn-gateways create "${routing_vpn_gateway_name}" \
--region="${region}" \
--network="${routing_vpc_network_name}"

VPN-Gateway in der lokalen VPC konfigurieren

on_prem_gateway_name="on-prem-vpn-gateway"

gcloud compute vpn-gateways create "${on_prem_gateway_name}" \
--region="${region}" \
--network="${on_prem_network_name}"

VPN-Tunnel in der Routing-VPC und der lokalen VPC konfigurieren

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

Erstellen Sie BGP-Sitzungen für BGP-Peering zwischen der Routing-VPC und den lokalen Cloud Routern:

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

Standardmäßig werden Hybrid-Spokes keine NCC-Hub-Subnetze angekündigt. Konfigurieren Sie im nächsten Schritt den Cloud Router so, dass er dem lokalen Netzwerk NCC-Subnetzrouten ankündigt.

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}"
gcloud compute routers update "${on_prem_router_name}" \
--advertisement-mode custom \
--set-advertisement-groups=all_subnets \
--region="${region}"

Aktualisieren Sie die BGP-Peering-Konfiguration des lokalen Cloud Routers, um Präfixe mit einem MED-Wert von 111 anzukündigen. In einem späteren Abschnitt sehen wir uns das Verhalten des NCC mit BGP-Med-Werten an.

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

Status des Routing-VPC-Tunnels prüfen

gcloud compute vpn-tunnels describe routing-vpc-tunnel \
--region=us-central1 \
--format='flattened(status,detailedStatus)'

Status des Cloud Routers für die VPC-Weiterleitung prüfen

Verwenden Sie den gcloud-Befehl, um die von BGP erlernten Routen des Cloud Routers für das Routing-VPC aufzulisten.

gcloud compute routers get-status routing-vpc-cr \
--region=us-central1

4. Network Connectivity Center-Hub

Übersicht

In diesem Abschnitt konfigurieren wir einen NCC-Hub mit gcloud-Befehlen. Der NCC-Hub dient als Steuerungsebene, die für die Erstellung der Routingkonfiguration zwischen den einzelnen VPC-Spokes verantwortlich ist.

6a26627c680ddac5.png

API-Dienste aktivieren

Aktivieren Sie die Network Connectivity API, falls sie noch nicht aktiviert ist:

gcloud services enable networkconnectivity.googleapis.com

NCC-Hub erstellen

NCC-Hub mit dem gCloud-Befehl erstellen

hub_name="mesh-hub"
gcloud network-connectivity hubs create "${hub_name}"

Beispielausgabe

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

Beschreiben Sie den neu erstellten NCC-Hub. Notieren Sie sich den Namen und zugehörigen Pfad.

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'

Mit dem NCC-Hub wurde eine Routingtabelle eingeführt, die die Steuerungsebene zur Herstellung von Datenverbindungen definiert. Namen der Routingtabelle des NCC-Hubs finden

 gcloud network-connectivity hubs route-tables list --hub=mesh-hub
NAME     HUB       DESCRIPTION
default  mesh-hub

Suchen Sie den URI der Standardroutingtabelle des 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

Listen Sie den Inhalt der Standardroutingtabelle des NCC-Hubs auf. Hinweis*: Die Routingtabelle des NCC-Hubs ist leer, bis NCC-Hybrid-Spokes oder VPC-Spokes definiert werden.

gcloud network-connectivity hubs route-tables routes list --hub=mesh-hub --route_table=default

Die Routingtabelle des NCC-Hubs sollte leer sein.

5. NCC mit Hybrid- und VPC-Spokes

Übersicht

In diesem Abschnitt konfigurieren Sie zwei NCC-Spokes mit gcloud-Befehlen. Ein Spoke ist ein VPC-Spoke, der andere ein Hybrid-Spoke (VPN).

f234ce75342022d8.png

Arbeitslast-VPC(s) als NCC-Spoke konfigurieren

Konfigurieren Sie die Arbeitslast-VPC als NCC-Spoke und weisen Sie sie dem zuvor erstellten NCC-Hub zu. Für NCC-API-Aufrufe muss ein Standort angegeben werden. Mit dem Flag „–global“ kann beim Konfigurieren eines neuen NCC-Spokes die Angabe eines vollständigen URI-Pfads vermieden werden.

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'

VPN-Tunnel in der Routing-VPC als Hybrid-Spoke konfigurieren

Konfigurieren Sie mit diesem gcloud-Befehl den VPN-Tunnel als Hybrid-Spoke, um dem Mesh-Hub beizutreten.

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

Beispielausgabe

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

Der NCC-Hub lernt zwar alle VPC-Subnetzrouten, kündigt diese Präfixe aber standardmäßig nicht dem Hybrid-Spoke an. Damit der NCC-Hub VPC-Arbeitslast-Subnetze lokal bewirbt, müssen Netzwerkadministratoren das Flag include-import-ranges verwenden, um IPv4-Bereiche vom Hub in den Hybrid-Spoke zu importieren.

Verwenden Sie den Befehl, um den NCC-Hybrid-Spoke so zu aktualisieren, dass alle Präfixe der NCC-Hub-Routentabelle für das lokale Netzwerk angekündigt werden.

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 update "${vpn_spoke_name}" \
--region="${region}" \
--include-import-ranges=ALL_IPV4_RANGES

Spoke-Konfiguration des Mesh-Hubs prüfen

Verwenden Sie den gcloud-Befehl, um den Inhalt der Standardroutingtabelle des NCC-Hubs aufzulisten.

gcloud network-connectivity hubs list-spokes mesh-hub 

Standardroutingtabelle des Mesh-Hubs analysieren

Verwenden Sie den gcloud-Befehl, um den Inhalt der Standardroutingtabelle des NCC-Hubs aufzulisten.

gcloud network-connectivity hubs route-tables routes list --hub=mesh-hub \
--route_table=default

Vom Cloud Router gelernte Präfixe mit BGP-MED-Werten werden bei Verwendung des dynamischen Routenaustauschs mit NCC-Hybrid-Spokes über NCC-Spokes propagiert.

Rufen Sie den Prioritätswert „111“ mit dem Befehl gcloud auf.

gcloud network-connectivity hubs route-tables routes list \
--hub=mesh-hub \
--route_table=default \
--effective-location=us-central1 \
--filter=10.0.3.0/24

Zum lokalen Cloud Router wechseln

Verwenden Sie den gcloud-Befehl, um zu sehen, welche Routen vom lokalen Netzwerk gelernt wurden.

gcloud compute routers get-status on-prem-router \
--region=us-central1\
--format="yaml(result.bgpPeerStatus)" 

6. NCC-Hybrid-Spoke-Filter

In diesem Abschnitt erstellen wir zwei neue Subnetze, eines im lokalen Netzwerk und eines in der VPC-Arbeitslast, und beobachten das Verhalten der NCC-Hybrid-Spoke-Filter.

Verwenden Sie die Befehle, um ein neues Subnetz in der lokalen VPC zu erstellen.

on_prem_network_name="on-prem-net-vpc"
on_prem_subnet_name="on-prem-subnet30"
on_prem_subnet_range="10.30.30.0/24"
region="us-central1"

gcloud compute networks subnets create "${on_prem_subnet_name}" \
--region="${region}" \
--network="${on_prem_network_name}" \
--range="${on_prem_subnet_range}"

Verwenden Sie die Befehle, um ein neues Subnetz in der Workload-VPC zu erstellen.

vpc_spoke_network_name="workload-vpc"
vpc_spoke_subnet_name="workload-subnet10"
vpc_spoke_subnet_ip_range="10.10.10.0/24"
vpc_spoke_name="workload-vpc-spoke"
region="us-central1"

gcloud compute networks subnets create "${vpc_spoke_subnet_name}" \
--network="${vpc_spoke_network_name}" \
--range="${vpc_spoke_subnet_ip_range}" \
--region="${region}"

Administratoren können das Flag –exclude-export-ranges verwenden, um IP-Präfixe zu filtern, die in die Routentabelle des NCC-Hubs exportiert werden. So können Administratoren die Größe der Routentabelle des NCC-Hubs steuern. Standardmäßig werden alle IPv4-Präfixe aus dem lokalen Netzwerk gelernt und sind in der NCC-Hub-Routingtabelle zulässig.

Verwenden Sie den Befehl, um den NCC-Hybrid-Spoke zu aktualisieren und das Präfix 10.30.30.0/24 aus der NCC-Hub-Routentabelle herauszufiltern.

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 update "${vpn_spoke_name}" \
--region="${region}" \
--exclude-export-ranges=10.30.30.0/24

Prüfen Sie mit dem gcloud-Befehl, ob das Präfix 10.30.30.0/24 NICHT in der NCC-Hub-Routingtabelle enthalten ist.

gcloud network-connectivity hubs route-tables routes list \
--hub=mesh-hub \
--route_table=default \
--effective-location=us-central1 \
--filter=10.30.30.0/24

Wechseln Sie zum lokalen Router und verwenden Sie den gcloud-Befehl, um zu sehen, dass er das 10.10.10.0/24-Subnetz der VPC der Arbeitslast gelernt hat.

gcloud compute routers get-status on-prem-router \
--region=us-central1\
--format="yaml(result.bgpPeerStatus)" 

Die folgenden Befehle verwenden das Flag –exclude-import-ranges, um zu verhindern, dass das Präfix 10.10.10.0/24 an den lokalen Router übertragen wird.

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 update "${vpn_spoke_name}" \
--region="${region}" \
--exclude-import-ranges=10.10.10.0/24

Wechseln Sie zum lokalen Router und prüfen Sie die Routingtabelle mit dem gcloud-Befehl. Das Präfix 10.10.10.0/24 sollte NICHT vorhanden sein.

gcloud compute routers get-status on-prem-router \
--region=us-central1\
--format="yaml(result.bgpPeerStatus)" 

7. Datenpfad prüfen

In diesem Schritt validieren wir den Datenpfad zwischen NCC-Hybrid und VPC-Spoke. 9eb9c4936851deb0.png

Melden Sie sich mit der Ausgabe dieser gcloud-Befehle bei der lokalen VM an.

gcloud compute instances list --filter="name=vm3-onprem"

Melden Sie sich bei der VM-Instanz im lokalen Netzwerk an.

gcloud compute ssh vm3-onprem --zone=us-central1-a

Stellen Sie im Terminal von „vm3-onprem“ mit dem Befehl „curl“ eine Websitzung mit der VM her, die in „workload-vpc“ gehostet wird.

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

8. Bereinigen

Melden Sie sich in Cloud Shell an und löschen Sie GCP-Ressourcen.

NCC-Spokes löschen

gcloud network-connectivity spokes delete workload-vpc-spoke --global \
--quiet

gcloud network-connectivity spokes delete hybrid-spoke \
--quiet \
--region us-central1

NCC-Hub löschen

gcloud network-connectivity hubs delete mesh-hub --quiet

Firewallregeln löschen

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

HA VPN-Tunnel löschen

gcloud compute vpn-tunnels delete on-prem-tunnel \
--region=us-central1 \
--quiet 

gcloud compute vpn-tunnels delete routing-vpc-tunnel \
--region=us-central1 \
--quiet 

VPN-Gateway löschen

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

Cloud Router löschen

gcloud compute routers delete routing-vpc-cr --region us-central1 --quiet

gcloud compute routers delete on-prem-router --region us-central1 --quiet

GCE-Instanzen löschen

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

VPC-Subnetze löschen

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

VPCs löschen

gcloud compute networks delete on-prem-net-vpcworkload-vpc routing-vpc 
--quiet 

9. Glückwunsch!

Sie haben das Lab „Dynamic Route Exchange Network Connectivity Center“ abgeschlossen.

Behandelte Themen

  • Dynamischer Routenaustausch mit Network Connectivity Center

Nächste Schritte

© Google LLC oder deren Tochtergesellschaften. Alle Rechte vorbehalten. Nicht weitergeben.