1. Wprowadzenie
Omówienie
W tym module dowiesz się, jak za pomocą Network Connectivity Center(NCC) można na dużą skalę nawiązywać połączenia między sieciami VPC dzięki obsłudze węzłów VPC. Gdy użytkownicy zdefiniują sieć VPC jako promień VPC, będą mogli połączyć ją z wieloma sieciami VPC za pomocą centrum NCC. NCC z konfiguracją promienia VPC zmniejsza złożoność operacyjną zarządzania parami połączeń między sieciami VPC za pomocą połączenia równorzędnego VPC, zamiast tego używając scentralizowanego modelu zarządzania połączeniami.
Pamiętaj, że Network Connectivity Center (NCC) to model platformy sterującej typu „centrum i promienie” do zarządzania połączeniami sieciowymi w Google Cloud. Zasób centrum zapewnia scentralizowany model zarządzania połączeniami do łączenia promieni.
Co utworzysz
W tym ćwiczeniu utworzysz logiczną topologię typu „gwiazda” z centrum NCC, która będzie implementować w pełni połączoną sieć połączeń VPC w 3 różnych sieciach VPC.
Czego się nauczysz
- Łączność VPC w pełnej sieci typu mesh za pomocą NCC
- Prywatny NAT w sieci VPC
Czego potrzebujesz
- znajomość sieci VPC GCP,
- Znajomość routera Cloud Router i routingu BGP
- 2 osobne projekty GCP
- To ćwiczenie wymaga 5 środowisk VPC. Jedna z tych sieci VPC musi znajdować się w innym projekcie niż centrum NCC.
- Sprawdź limit:sieci i w razie potrzeby poproś o dodanie kolejnych sieci (zrzut ekranu poniżej):

Cele
- Konfigurowanie środowiska GCP
- Konfigurowanie Network Connectivity Center z siecią VPC jako promieniem
- Sprawdzanie ścieżki danych
- Poznaj funkcje serwisowania NCC
- Zwalnianie miejsca używanych zasobów
Zanim zaczniesz
Konsola Google Cloud i Cloud Shell
Aby korzystać z GCP, w tym module będziemy używać zarówno konsoli Google Cloud, jak i Cloud Shell.
Projekt centrum NCC konsola Google Cloud
Konsola Cloud jest dostępna pod adresem https://console.cloud.google.com.
Skonfiguruj w Google Cloud te elementy, aby ułatwić sobie konfigurowanie Network Connectivity Center:
W konsoli Google Cloud na stronie selektora projektów wybierz lub utwórz projekt w chmurze Google Cloud.
Uruchom Cloud Shell. To ćwiczenie wykorzystuje $zmienne, aby ułatwić implementację konfiguracji gcloud w Cloud Shell.
gcloud auth list
gcloud config list project
gcloud config set project [HUB-PROJECT-NAME]
projectname=[HUB-PROJECT-NAME]
echo $projectname
gcloud config set compute/zone us-central1-a
gcloud config set compute/region us-central1
Role uprawnień
Aby uzyskać dostęp do określonych interfejsów API, NCC wymaga ról uprawnień. W razie potrzeby skonfiguruj użytkownika z rolami IAM usługi NCC.
Rola/opis | Uprawnienia |
networkconnectivity.networkAdmin – umożliwia administratorom sieci zarządzanie centrum i sieciami lokalnymi. | networkconnectivity.hubs.networkconnectivity.spokes. |
networkconnectivity.networkSpokeManager – umożliwia dodawanie promieni w centrum i zarządzanie nimi. Do użycia we współdzielonym środowisku VPC, w którym główny projekt jest właścicielem centrum, ale inni administratorzy w innych projektach mogą dodawać promienie do swoich połączeń z centrum. | networkconnectivity.spokes.** |
networkconnectivity.networkUsernetworkconnectivity.networkViewer – umożliwia użytkownikom sieci wyświetlanie różnych atrybutów centrum i promieni. | networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList |
2. Konfigurowanie środowiska sieciowego
Omówienie
W tej sekcji wdrożymy sieci VPC i reguły zapory sieciowej w jednym projekcie. Diagram logiczny przedstawia środowisko sieciowe, które zostanie skonfigurowane w tym kroku.
Aby zademonstrować obsługę promieni między projektami, w dalszym kroku wdrożymy sieć VPC i reguły zapory sieciowej w innym projekcie.

Tworzenie sieci VPC i podsieci
Sieć VPC zawiera podsieci, w których zainstalujesz maszynę wirtualną GCE na potrzeby weryfikacji ścieżki danych.
gcloud compute networks create vpc1-ncc --subnet-mode custom
gcloud compute networks create vpc2-ncc --subnet-mode custom
gcloud compute networks create vpc3-ncc --subnet-mode custom
gcloud compute networks create vpc4-ncc --subnet-mode custom
gcloud compute networks subnets create vpc1-ncc-subnet1 \
--network vpc1-ncc --range 10.1.1.0/24 --region us-central1
gcloud compute networks subnets create vpc1-ncc-subnet2 \
--network vpc1-ncc --range 10.1.2.0/25 --region us-central1
gcloud compute networks subnets create vpc1-ncc-subnet3 \
--network vpc1-ncc --range 10.1.2.128/25 --region us-central1
gcloud compute networks subnets create vpc2-ncc-subnet1 \
--network vpc2-ncc --range 10.2.2.0/24 --region us-central1
Zakresy podsieci obsługiwane przez VPC
NCC obsługuje wszystkie prawidłowe zakresy podsieci IPv4 z wyjątkiem używanych prywatnie publicznych adresów IP. W tym kroku utwórz w sieci VPC4 prawidłowe zakresy adresów IP, które zostaną zaimportowane do tabeli tras centrum.
gcloud compute networks subnets create benchmark-testing-rfc2544 \
--network vpc4-ncc --range 198.18.0.0/15 --region us-east1
gcloud compute networks subnets create class-e-rfc5735 \
--network vpc4-ncc --range 240.0.0.0/4 --region us-east1
gcloud compute networks subnets create ietf-protcol-assignment-rfc6890 \
--network vpc4-ncc --range 192.0.0.0/24 --region us-east1
gcloud compute networks subnets create ipv6-4-relay-rfc7526 \
--network vpc4-ncc --range 192.88.99.0/24 --region us-east1
gcloud compute networks subnets create pupi \
--network vpc4-ncc --range 50.50.50.0/24 --region us-east1
gcloud compute networks subnets create test-net-1-rfc5737 \
--network vpc4-ncc --range 192.0.2.0/24 --region us-east1
gcloud compute networks subnets create test-net-2-rfc5737 \
--network vpc4-ncc --range 198.51.100.0/24 --region us-east1
gcloud compute networks subnets create test-net-3-rfc5737 \
--network vpc4-ncc --range 203.0.113.0/24 --region us-east1
Tworzenie nakładających się zakresów podsieci
NCC nie zaimportuje do tabeli tras centrum nakładających się zakresów adresów IP. Użytkownicy obejdą to ograniczenie w późniejszym kroku. Na razie utwórz 2 nakładające się zakresy adresów IP dla sieci VPC2 i VPC3.
gcloud compute networks subnets create overlapping-vpc2 \
--network vpc3-ncc --range 10.3.3.0/24 --region us-central1
gcloud compute networks subnets create overlapping-vpc3 \
--network vpc2-ncc --range 10.3.3.0/24 --region us-central1
Konfigurowanie reguł zapory sieciowej VPC
Skonfiguruj reguły zapory sieciowej w każdej sieci VPC, aby zezwalać na:
- SSH
- Wewnętrzne zakupy w aplikacji
- Zakres 10.0.0.0/8
gcloud compute firewall-rules create ncc1-vpc-internal \
--network vpc1-ncc \
--allow all \
--source-ranges 10.0.0.0/8
gcloud compute firewall-rules create ncc2-vpc-internal \
--network vpc2-ncc \
--allow all \
--source-ranges 10.0.0.0/8
gcloud compute firewall-rules create ncc3-vpc-internal \
--network vpc3-ncc \
--allow all \
--source-ranges 10.0.0.0/8
gcloud compute firewall-rules create ncc4-vpc-internal \
--network vpc4-ncc \
--allow all \
--source-ranges 10.0.0.0/8
gcloud compute firewall-rules create ncc1-vpc-iap \
--network vpc1-ncc \
--allow all \
--source-ranges 35.235.240.0/20
gcloud compute firewall-rules create ncc2-vpc-iap \
--network vpc2-ncc \
--allow=tcp:22 \
--source-ranges 35.235.240.0/20
gcloud compute firewall-rules create ncc3-vpc-iap \
--network vpc3-ncc \
--allow=tcp:22 \
--source-ranges 35.235.240.0/20
gcloud compute firewall-rules create ncc4-vpc-iap \
--network vpc4-ncc \
--allow=tcp:22 \
--source-ranges 35.235.240.0/20
Konfigurowanie maszyny wirtualnej GCE w każdej sieci VPC
Aby zainstalować pakiety na „vm1-vpc1-ncc”, potrzebujesz tymczasowego dostępu do internetu.
Utwórz 4 maszyny wirtualne, z których każda będzie przypisana do jednej z wcześniej utworzonych sieci VPC.
gcloud compute instances create vm1-vpc1-ncc \
--subnet vpc1-ncc-subnet1 \
--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-vpc2-ncc \
--zone us-central1-a \
--subnet vpc2-ncc-subnet1 \
--no-address
gcloud compute instances create pnat-vm-vpc2 \
--zone us-central1-a \
--subnet overlapping-vpc3 \
--no-address
gcloud compute instances create vm1-vpc4-ncc \
--zone us-east1-b \
--subnet class-e-rfc5735 \
--no-address
3. Centrum Network Connectivity Center
Omówienie
W tej sekcji skonfigurujemy centrum NCC za pomocą poleceń gcloud. Centrum NCC będzie pełnić funkcję platformy sterującej odpowiedzialnej za tworzenie konfiguracji routingu między poszczególnymi promieniami VPC.

Włączanie usług API
Włącz interfejs Network Connectivity API, jeśli nie jest jeszcze włączony:
gcloud services enable networkconnectivity.googleapis.com
Tworzenie centrum NCC
Tworzenie huba NCC za pomocą polecenia gcloud
gcloud network-connectivity hubs create ncc-hub
Przykładowe dane wyjściowe
Create request issued for: [ncc-hub]
Waiting for operation [projects/user-3p-dev/locations/global/operations/operation-1668793629598-5edc24b7ee3ce-dd4c765b-5ca79556] to complete...done.
Created hub [ncc-hub]
Opisz nowo utworzone centrum NCC. Zanotuj nazwę i powiązaną ścieżkę.
gcloud network-connectivity hubs describe ncc-hub
gcloud network-connectivity hubs describe ncc-hub
createTime: '2023-11-02T02:28:34.890423230Z'
name: projects/user-3p-dev/locations/global/hubs/ncc-hub
routeTables:
- projects/user-3p-dev/locations/global/hubs/ncc-hub/routeTables/default
state: ACTIVE
uniqueId: de749c4c-0ef8-4888-8622-1ea2d67450f8
updateTime: '2023-11-02T02:28:48.613853463Z'
W centrum NCC wprowadzono tabelę routingu, która definiuje platformę sterującą do tworzenia łączności danych. Znajdowanie nazwy tabeli routingu centrum NCC
gcloud network-connectivity hubs route-tables list --hub=ncc-hub
NAME: default
HUB: ncc-hub
DESCRIPTION:
Znajdź identyfikator URI domyślnej tabeli tras NCC.
gcloud network-connectivity hubs route-tables describe default --hub=ncc-hub
createTime: '2023-02-24T17:32:58.786269098Z'
name: projects/user-3p-dev/locations/global/hubs/ncc-hub/routeTables/default
state: ACTIVE
uid: eb1fdc35-2209-46f3-a8d6-ad7245bfae0b
updateTime: '2023-02-24T17:33:01.852456186Z'
Wyświetl zawartość domyślnej tabeli routingu centrum NCC. Uwaga: tabela tras centrum NCC będzie pusta, dopóki nie zostaną
gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default
Tabela tras centrum NCC powinna być pusta.
4. NCC z promieniami VPC
Omówienie
W tej sekcji skonfigurujesz 3 sieci VPC jako odgałęzienia NCC za pomocą poleceń gcloud.

Konfigurowanie sieci VPC jako promienia NCC
Skonfiguruj te sieci VPC jako promień NCC w tej kolejności:
- VPC4
- VPC1
- VPC2
- VPC3
Skonfiguruj sieć VPC4 jako promień NCC i przypisz ją do utworzonego wcześniej centrum NCC. Wywołania interfejsu API NCC spoke wymagają podania lokalizacji. Flaga „–global” upraszcza składnię gcloud, ponieważ pozwala użytkownikowi uniknąć podawania pełnej ścieżki URI podczas konfigurowania nowego węzła NCC.
gcloud network-connectivity spokes linked-vpc-network create vpc4-spoke4 \
--hub=ncc-hub \
--vpc-network=vpc4-ncc \
--global
Skonfiguruj VPC1 jako promień NCC.
Administratorzy mogą wykluczyć trasy podsieci z eksportowania z sieci VPC typu spoke do tabeli tras centrum NCC. W tej części ćwiczenia utworzysz regułę wykluczania eksportu na podstawie prefiksu podsumowania, aby zapobiec eksportowaniu podsieci VPC1 do tabeli tras centrum NCC.
Aby wyświetlić listę wszystkich podsieci należących do sieci VPC1, użyj tego polecenia gcloud.
gcloud config set accessibility/screen_reader false
gcloud compute networks subnets list --network=vpc1-ncc
Zwróć uwagę na parę podsieci /25 utworzonych wcześniej w sekcji konfiguracji.
NAME REGION NETWORK RANGE STACK_TYPE
vpc1-ncc-subnet1 us-central1 vpc1-ncc 10.1.1.0/24 IPV4_ONLY
vpc1-ncc-subnet2 us-central1 vpc1-ncc 10.1.2.0/25 IPV4_ONLY
vpc1-ncc-subnet3 us-central1 vpc1-ncc 10.1.2.128/25 IPV4_ONLY
Skonfiguruj sieć VPC1 jako promień NCC i wyklucz parę podsieci /25 z importowania do tabeli routingu centrum, używając słowa kluczowego „export-exclude-ranges” do odfiltrowania trasy zbiorczej /24 z tego konkretnego zakresu.
gcloud network-connectivity spokes linked-vpc-network create vpc1-spoke1 \
--hub=ncc-hub \
--vpc-network=vpc1-ncc \
--exclude-export-ranges=10.1.2.0/24 \
--global
Uwaga: użytkownicy mogą filtrować maksymalnie 16 unikalnych zakresów adresów IP na każdy promień NCC.
Wyświetl zawartość domyślnej tabeli routingu centrum NCC. Co się stało z parą podsieci /25 w tabeli routingu centrum NCC?
gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route-table=default --filter="NEXT_HOP:vpc1-ncc"
IP_CIDR_RANGE STATE TYPE NEXT_HOP HUB ROUTE_TABLE
10.1.1.0/24 ACTIVE VPC_PRIMARY_SUBNET vpc1-ncc ncc-hub default
Konfigurowanie sieci VPC2 jako promienia NCC
gcloud network-connectivity spokes linked-vpc-network create vpc2-spoke2 \
--hub=ncc-hub \
--vpc-network=vpc2-ncc \
--global
Skonfiguruj sieć VPC3 jako promień NCC i przypisz ją do utworzonego wcześniej centrum NCC.
gcloud network-connectivity spokes linked-vpc-network create vpc3-spoke3 \
--hub=ncc-hub \
--vpc-network=vpc3-ncc \
--global
Co się stało?
ERROR: (gcloud.network-connectivity.spokes.linked-vpc-network.create) Invalid resource state for "https://www.googleapis.com/compute/v1/projects/xxxxxxxx/global/networks/vpc3-ncc": 10.3.3.0/24 (SUBNETWORK) overlaps with 10.3.3.0/24 (SUBNETWORK) from "projects/user-3p-dev/global/networks/vpc2-ncc" (peer)
Centrum NCC wykryło nakładający się zakres adresów IP z siecią VPC2. Pamiętaj, że sieci VPC2 i VPC3 zostały skonfigurowane z tą samą podsiecią IP 10.3.3.0/24.
Filtrowanie nakładających się zakresów adresów IP za pomocą wykluczania eksportu
W momencie pisania tego ćwiczenia w Codelabs jest to znany problem, który wymaga usunięcia i ponownego utworzenia promieni NCC, aby wprowadzić zmiany w filtrze eksportu.
gcloud network-connectivity spokes delete vpc2-spoke2 --global --quiet
Uwaga: usunięcie promienia VPC powiązanego z konkretną siecią VPC wymaga 10-minutowego okresu oczekiwania, aby można było ponownie utworzyć nowy promień odwołujący się do tej samej sieci VPC.
gcloud network-connectivity spokes linked-vpc-network create vpc2-spoke2 \
--hub=ncc-hub \
--vpc-network=vpc2-ncc \
--exclude-export-ranges=10.3.3.0/24 \
--global
Skonfiguruj sieć VPC3 jako promień NCC i przypisz ją do utworzonego wcześniej centrum NCC. Ta próba dodania sieci VPC3 jako promienia do NCC powinna się powieść.
gcloud network-connectivity spokes linked-vpc-network create vpc3-spoke3 \
--hub=ncc-hub \
--vpc-network=vpc3-ncc \
--exclude-export-ranges=10.3.3.0/24 \
--global
Wyświetl zawartość domyślnej tabeli routingu centrum NCC i sprawdź dane wyjściowe.
gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default
Nakładające się zakresy adresów IP z sieci VPC2 i VPC3 są wykluczone. Tabela routingu centrum NCC obsługuje wszystkie prawidłowe typy zakresów IPv4 z wyjątkiem używanych prywatnie publicznych adresów IP (PUPI).
5. NCC z promieniami międzyprojektowymi
Omówienie
Do tej pory skonfigurowano promienie NCC należące do tego samego projektu co centrum. W tej sekcji skonfigurujesz sieć VPC jako sieć podrzędną NCC z innego projektu niż centrum NCC za pomocą poleceń gcloud.
Umożliwia to właścicielom projektów, którzy zarządzają własnymi sieciami VPC, uczestniczenie w łączności sieciowej z centrum NCC.

Wiele projektów: konsola Google Cloud i Cloud Shell
Aby korzystać z GCP, w tym module będziemy używać zarówno konsoli Google Cloud, jak i Cloud Shell.
Cross Project Spoke w konsoli Google Cloud
Konsola Cloud jest dostępna pod adresem https://console.cloud.google.com.
Skonfiguruj w Google Cloud te elementy, aby ułatwić sobie konfigurowanie Network Connectivity Center:
W konsoli Google Cloud na stronie selektora projektów wybierz lub utwórz projekt w chmurze Google Cloud.
Uruchom Cloud Shell. To ćwiczenie wykorzystuje $zmienne, aby ułatwić implementację konfiguracji gcloud w Cloud Shell.
gcloud auth list
gcloud config list project
gcloud config set project [YOUR-CROSSPROJECT-NAME]
xprojname=[YOUR-CROSSPROJECT-NAME]
echo $xprojname
gcloud config set compute/zone us-central1-a
gcloud config set compute/region us-central1
Role uprawnień
Aby uzyskać dostęp do określonych interfejsów API, NCC wymaga ról uprawnień. W razie potrzeby skonfiguruj użytkownika z rolami IAM usługi NCC.
Administrator sieci w projekcie musi mieć co najmniej rolę uprawnień: „networkconnectivity.networkSpokeManager”. ”
Tabela poniżej zawiera listę ról uprawnień wymaganych w przypadku administratora NCC Hub and Spoke.
Rola/opis | Uprawnienia |
networkconnectivity.networkAdmin – umożliwia administratorom sieci zarządzanie centrum i sieciami lokalnymi. | networkconnectivity.hubs.networkconnectivity.spokes. |
networkconnectivity.networkSpokeManager – umożliwia dodawanie promieni w centrum i zarządzanie nimi. Do użycia we współdzielonym środowisku VPC, w którym główny projekt jest właścicielem centrum, ale inni administratorzy w innych projektach mogą dodawać promienie do swoich połączeń z centrum. | networkconnectivity.spokes.** |
networkconnectivity.networkUsernetworkconnectivity.networkViewer – umożliwia użytkownikom sieci wyświetlanie różnych atrybutów centrum i promieni. | networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList |
Utwórz środowiska VPC i podsieci w projekcie międzyprojektowym
Sieć VPC zawiera podsieci, w których zainstalujesz maszynę wirtualną GCE na potrzeby weryfikacji ścieżki danych.
gcloud compute networks create xproject-vpc \
--subnet-mode custom
gcloud compute networks subnets create xprj-net-1 \
--network xproject-vpc \
--range 10.100.1.0/24 \
--region us-central1
gcloud compute networks subnets create xprj-net-2 \
--network xproject-vpc \
--range 10.100.2.0/24 \
--region us-central1
Identyfikator URI projektu centrum NCC
Aby znaleźć identyfikator URI centrum NCC, użyj tego polecenia gcloud. Ścieżka URI będzie potrzebna w następnym kroku do skonfigurowania węzła NCC w wielu projektach.
gcloud network-connectivity hubs describe ncc-hub
Sieć VPC w projekcie podrzędnym
Zaloguj się w innym projekcie, w którym sieć VPC NIE jest częścią projektu centrum NCC. W Cloud Shell użyj tego polecenia, aby skonfigurować sieć VPC jako odgałęzienie NCC.
- HUB_URI powinien być identyfikatorem URI huba w innym projekcie.
- VPC_URI powinien znajdować się w tym samym projekcie co promień.
- VPC-network określa sieć VPC w tym projekcie, która dołączy do centrum NCC w innym projekcie.
gcloud network-connectivity spokes linked-vpc-network create xproj-spoke \
--hub=projects/[YOUR-PROJECT-NAME]/locations/global/hubs/ncc-hub \
--global \
--vpc-network=xproject-vpc
.
Create request issued for: [xproj-spoke]
Waiting for operation [projects/xproject/locations/global/operations/operation-1689790411247-600dafd351158-2b862329-19b747f1] to complete...done.
Created spoke [xproj-spoke].
createTime: '2023-07-19T18:13:31.388500663Z'
hub: projects/[YOUR-PROJECT-NAME]/locations/global/hubs/ncc-hub
linkedVpcNetwork:
uri: https://www.googleapis.com/compute/v1/projects/xproject/global/networks/xproject-vpc
name: projects/xproject/locations/global/spokes/xproj-spoke
reasons:
- code: PENDING_REVIEW
message: Spoke is Pending Review
spokeType: VPC_NETWORK
state: INACTIVE
uniqueId: 46b4d091-89e2-4760-a15d-c244dcb7ad69
updateTime: '2023-07-19T18:13:38.652800902Z'
Jaki jest stan promienia NCC między projektami? Dlaczego?
6. Odrzucanie lub akceptowanie sieci spoke między projektami
Omówienie
Administratorzy centrum NCC muszą wyraźnie zaakceptować połączenie międzyprojektowe, aby dołączyć do centrum. Zapobiega to dołączaniu przez właścicieli projektów nieautoryzowanych promieni NCC do globalnej tabeli routingu NCC. Gdy połączenie zostanie zaakceptowane lub odrzucone, można je później odrzucać lub akceptować dowolną liczbę razy, wykonując powyższe polecenia.
Wróć do projektu, w którym znajduje się centrum NCC, logując się w Cloud Shell.
Określanie sieci Cross Project Spokes do sprawdzenia
gcloud network-connectivity hubs list-spokes ncc-hub \
--filter="reason:PENDING_REVIEW"
Akceptowanie promienia
gcloud network-connectivity hubs accept-spoke ncc-hub --spoke=xproj-spoke
Opcjonalnie: odrzucanie sieci
gcloud network-connectivity spokes reject-spoke ncc-hub --spoke=xproj-spoke
--details="some reason to reject"
Wyświetlanie aktywnych promieni w centrum
gcloud network-connectivity hubs list-spokes ncc-hub \
--filter="state:ACTIVE"
NAME PROJECT LOCATION TYPE STATE STATE REASON
Xproj-spoke xproj global VPC_NETWORK ACTIVE
vpc4-spoke4 user-3p-dev global VPC_NETWORK ACTIVE
vpc1-spoke1 user-3p-dev global VPC_NETWORK ACTIVE
vpc2-spoke2 user-3p-dev global VPC_NETWORK ACTIVE
vpc3-spoke3 user-3p-dev global VPC_NETWORK ACTIVE
Wyświetlanie tras podsieci w centrum
Czy w danych wyjściowych widzisz trasy podsieci z promienia w innej sieci VPC?
gcloud network-connectivity hubs route-tables routes list \
--route_table=default \
--hub=ncc-hub \
--filter="NEXT_HOP:xprj-vpc"
IP_CIDR_RANGE STATE TYPE NEXT_HOP HUB ROUTE_TABLE
10.100.1.0/24 ACTIVE VPC_PRIMARY_SUBNET xprj-vpc ncc-hub default
Aktualizowanie sieci VPC typu spoke w różnych projektach za pomocą filtra Include-Export
Zaloguj się w projekcie, w którym sieć VPC nie jest częścią projektu centrum NCC. W Cloud Shell użyj tego polecenia, aby skonfigurować sieć VPC jako odgałęzienie NCC.
- HUB_URI powinien być identyfikatorem URI huba w innym projekcie.
- VPC_URI powinien znajdować się w tym samym projekcie co promień.
- VPC-network określa sieć VPC w tym projekcie, która dołączy do centrum NCC w innym projekcie.
- Importuj do tabeli tras centrum NCC tylko zakres podsieci 10.100.2.0/24.
- Zanotuj wartość „ETAG” z danych wyjściowych. Ta wartość jest generowana przez NCC i musisz ją przekazać administratorowi centrum NCC. Administrator centrum NCC będzie musiał odwołać się do tej wartości podczas akceptowania prośby od sieci spoke w innym projekcie o dołączenie do centrum.
gcloud network-connectivity spokes linked-vpc-network update xproj-spoke \
--hub=projects/[YOUR-PROJECT-NAME]/locations/global/hubs/ncc-hub \
--global \
--include-export-ranges=10.100.2.0/24
Update request issued for: [xprj-vpc]
Waiting for operation [projects]/xproject/locations/global/operations/operation-1742936388803-6313100521cae-020ac5d2-58
52fbba] to complete...done.
Updated spoke [xprj-vpc].
createTime: '2025-02-14T14:25:41.996129250Z'
etag: '4'
fieldPathsPendingUpdate:
- linked_vpc_network.include_export_ranges
group: projects/xxxxxxxx/locations/global/hubs/ncc-hub/groups/default
hub: projects/xxxxxxxx/locations/global/hubs/ncc-hub
linkedVpcNetwork:
includeExportRanges:
- 10.100.2.0/24
uri: https://www.googleapis.com/compute/v1/projects/xproject/global/networks/vpc1-spoke
name: projects/xproject/locations/global/spokes/xprj-vpc
reasons:
- code: UPDATE_PENDING_REVIEW
message: Spoke update is Pending Review
spokeType: VPC_NETWORK
state: ACTIVE
uniqueId: 182e0f8f-91cf-481c-a081-ea6f7e40fb0a
updateTime: '2025-03-25T20:59:51.995734879Z'
Określanie zaktualizowanych węzłów międzyprojektowych do sprawdzenia
Zaloguj się w projekcie, który hostuje centrum NCC. W Cloud Shell użyj tego polecenia, aby sprawdzić stan aktualizacji sieci VPC w różnych projektach.
- Co to jest wartość ETAG? Ta wartość powinna być zgodna z wynikiem aktualizacji VPC.
gcloud network-connectivity hubs list-spokes ncc-hub \
--filter="reasons:UPDATE_PENDING_REVIEW" \
--format=yaml
Zaakceptuj zaktualizowane zmiany z połączonego projektu
Użyj tego polecenia, aby zaakceptować prośbę sieci spoke z innego projektu o dołączenie do centrum NCC.
gcloud network-connectivity hubs accept-spoke-update ncc-hub \
--spoke=https://www.googleapis.com/networkconnectivity/v1/projects/xproject/locations/global/spokes/xproj-spoke \
--spoke-etag={etag value}
Opcjonalnie odrzuć zaktualizowane zmiany z projektu podrzędnego
Użyj polecenia, aby odrzucić prośbę od gałęzi międzyprojektowej o dołączenie do centrum NCC.
gcloud network-connectivity hubs reject-spoke-update ncc-hub \
--spoke=https://www.googleapis.com/networkconnectivity/v1/projects/xproject/locations/global/spokes/xproj-spoke \
--details="not today" \
--spoke-etag={etag value}
Sprawdzanie, czy odgałęzienie międzyprojektowe zostało połączone z hubem NCC
gcloud network-connectivity hubs list-spokes ncc-hub \ --filter="name:xproj-spoke"
7. Prywatny NAT między sieciami VPC
Omówienie
W tej sekcji skonfigurujesz prywatny NAT dla nakładających się zakresów podsieci między 2 sieciami VPC. Pamiętaj, że Private NAT między sieciami VPC wymaga NCC.
W poprzedniej sekcji sieci VPC2 i VPC3 zostały skonfigurowane z nakładającym się zakresem podsieci „10.3.3.0/24”. Obie sieci VPC są skonfigurowane jako promień NCC, aby wykluczyć nakładającą się podsieć z tabeli tras centrum NCC, co oznacza, że nie ma ścieżki danych warstwy 3 do hostów znajdujących się w tej podsieci.
Użyj tych poleceń w projekcie centrum NCC, aby znaleźć nakładające się zakresy podsieci.
gcloud compute networks subnets list --network vpc2-ncc
gcloud compute networks subnets list --network vpc3-ncc
Jaka jest nazwa podsieci w sieci vpc2-ncc, która zawiera nakładający się zakres adresów IP?
*Zanotuj i zapisz gdzieś nazwę podsieci. Dla tego zakresu skonfigurujesz źródłowy NAT.
Konfigurowanie prywatnego NAT
Dedykuj zakres podsieci z możliwością routingu na potrzeby ruchu NAT źródłowego z nakładającej się podsieci VPC2. Konfigurując niepokrywający się zakres podsieci za pomocą flagi „–purpose=PRIVATE_NAT”.
gcloud beta compute networks subnets create ncc2-spoke-nat \
--network=vpc2-ncc \
--region=us-central1 \
--range=10.10.10.0/29 \
--purpose=PRIVATE_NAT
Utwórz dedykowany router chmurowy do wykonywania prywatnego NAT
gcloud compute routers create private-nat-cr \
--network vpc2-ncc \
--region us-central1
Skonfiguruj router Cloud Router tak, aby wykonywał NAT źródłowy nakładającego się zakresu 10.3.3.0/24 z sieci vpc2-ncc. W przykładowej konfiguracji poniżej „overlapping-vpc3” to nazwa nakładającej się podsieci. Słowo kluczowe „ALL” oznacza, że wszystkie zakresy adresów IP w podsieci będą podlegać translacji NAT źródła.
gcloud beta compute routers nats create ncc2-nat \
--router=private-nat-cr \
--type=PRIVATE \
--nat-custom-subnet-ip-ranges=overlapping-vpc3:ALL \
--router-region=us-central1
W poprzednich krokach utworzyliśmy pulę zakresów adresów IP NAT i konkretną podsieć, która będzie tłumaczona. W tym kroku utwórz regułę NAT „1”, która tłumaczy pakiety sieciowe pasujące do ruchu pochodzącego z nakładającego się zakresu podsieci, jeśli sieć docelowa korzysta z trasy z tabeli routingu centrum NCC.
gcloud beta compute routers nats rules create 1 \
--router=private-nat-cr \
--region=us-central1 \
--match='nexthop.hub == "//networkconnectivity.googleapis.com/projects/$projectname/locations/global/hubs/ncc-hub"' \
--source-nat-active-ranges=ncc2-spoke-nat \
--nat=ncc2-nat
Weryfikowanie ścieżki danych dla prywatnego NAT
gcloud beta compute routers nats describe ncc2-nat --router=private-nat-cr
Przykładowe dane wyjściowe
enableDynamicPortAllocation: true
enableEndpointIndependentMapping: false
endpointTypes:
- ENDPOINT_TYPE_VM
name: ncc2-nat
rules:
- action:
sourceNatActiveRanges:
- https://www.googleapis.com/compute/beta/projects/xxxxxxxx/regions/us-central1/subnetworks/ncc2-spoke-nat
match: nexthop.hub == "//networkconnectivity.googleapis.com/projects/xxxxxxxx/locations/global/hubs/ncc-hub"
ruleNumber: 1
sourceSubnetworkIpRangesToNat: LIST_OF_SUBNETWORKS
subnetworks:
- name: https://www.googleapis.com/compute/beta/projects/xxxxxxxx/regions/us-central1/subnetworks/overlapping-vpc3
sourceIpRangesToNat:
- ALL_IP_RANGES
type: PRIVATE
Opcjonalnie:
- Przełączanie na konsolę internetową
- otwórz „Usługi sieciowe > Cloud NAT > ncc2-nat”;
Sprawdź, czy dynamiczne przydzielanie portów jest domyślnie włączone.

Następnie sprawdzisz ścieżkę danych, która korzysta z prywatnej ścieżki NAT skonfigurowanej dla sieci VPC2.

Otwórz sesję SSH na „vm1-vpc1-ncc” i użyj polecenia tcpdump podanego poniżej, aby przechwycić pakiety pochodzące z zakresu puli NAT „10.10.10.0/29”.
vm1-vpc1-ncc
sudo tcpdump -i any net 10.10.10.0/29 -n
W momencie pisania tego ćwiczenia w Codelabs Private NAT nie obsługuje pakietów ICMP. Sesja SSH do pNat-vm-vpc2 i użycie polecenia curl, jak pokazano poniżej, aby połączyć się z vm1-vpc1-ncc na porcie TCP 80.
pnat-vm-vpc2
curl 10.1.1.2 -v
Sprawdź dane wyjściowe tcpdump na „vm1-vpc1-ncc”. Jaki jest źródłowy adres IP, z którego pochodzi sesja TCP na naszym serwerze WWW w sieci „vm1-vpc1-ncc”?
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
19:05:27.504761 ens4 In IP 10.10.10.2.1024 > 10.1.1.2:80: Flags [S], seq 2386228656, win 65320, options [mss 1420,sackOK,TS val 3955849029 ecr 0,nop,wscale 7], length 0
19:05:27.504805 ens4 Out IP 10.1.1.2:80 > 10.10.10.2.1024: Flags [S.], seq 48316785, ack 2386228657, win 64768, options [mss 1420,sackOK,TS val 1815983704 ecr 3955849029,nop,wscale 7], length 0
<output snipped>
8. Obsługa podsieci IPv6 w NCC
Network Connectivity Center obsługuje wymianę podsieci IPv6 i dynamicznych tras między promieniami VPC NCC a promieniami hybrydowymi. W tej sekcji skonfiguruj NCC tak, aby obsługiwał tryb wymiany tras podsieci tylko w IPv6 i w podwójnym stosie IPv4 i IPv6.

Utwórz nową sieć VPC dla IPv6, która zostanie podłączona do centrum NCC jako promień VPC.
gcloud compute networks create vpc5-ncc \
--subnet-mode custom \
--enable-ula-internal-ipv6
gcloud compute networks subnets create vpc4-ipv4-subnet1 \
--network vpc5-ncc \
--range 10.5.5.0/24 \
--region us-central1
Użyj tego polecenia, aby skonfigurować VPC5 jako sieć podrzędną NCC i wykluczyć trasę podsieci IPv4 z eksportowania do tabeli tras centrum. Wyeksportuj sieć IPv6 ULA do tabeli tras centrum NCC.
gcloud network-connectivity spokes linked-vpc-network create vpc5-spoke5 \
--hub=ncc-hub \
--vpc-network=vpc5-ncc \
--include-export-ranges=ALL_IPV6_RANGES
--exclude-export-ranges=10.5.5.0/24
--global
Włącz VPC1 i VPC4 dla prywatnych unikalnych adresów lokalnych IPv6 (ULA). GCP automatycznie przypisze wszystkie adresy ULA z zakresu fd20::/20.
gcloud compute networks update vpc-ncc4 \
--enable-ula-internal-ipv6
gcloud compute networks update vpc-ncc1 \
--enable-ula-internal-ipv6
Utwórz w sieci VPC1 natywną podsieć IPv6 i podsieć IPv4_V6 o podwójnym stosie.
gcloud compute networks subnets create vpc1-ipv6-sn1 \
--network=vpc-ncc1 \
--stack-type=IPV6_ONLY \
--ipv6-access-type=INTERNAL \
--region=us-central1
gcloud compute networks subnets create vpc1-ipv64-sn2 \
--network=vpc-ncc1 \
--range=10.10.10.0/24 \
--stack-type=IPV4_IPV6 \
--ipv6-access-type=INTERNAL \
--region=us-east1
Utwórz w sieci VPC4 natywną podsieć IPv6 i podsieć IPv4_V6 o podwójnym stosie.
gcloud compute networks subnets create vpc4-ipv6-sn1 \
--network=vpc-ncc4 \
--stack-type=IPV6_ONLY \
--ipv6-access-type=INTERNAL \
--region=us-central1
gcloud compute networks subnets create vpc4-ipv64-sn2 \
--network=vpc-ncc4 \
--range=10.40.40.0/24 \
--stack-type=IPV4_IPV6 \
--ipv6-access-type=INTERNAL \
--region=us-east1
W sieci VPC1 utwórz regułę zapory sieciowej VPC IPv6, która zezwala na ruch pochodzący z zakresu adresów ULA IPv6.
gcloud compute firewall-rules create allow-icmpv6-ula-ncc1 \
--network=vpc-ncc1 \
--action=allow \
--direction=ingress \
--rules=all \
--source-ranges=fd20::/20
W sieci VPC4 utwórz regułę zapory sieciowej VPC dla protokołu IPv6, która zezwala na ruch pochodzący z zakresu adresów ULA IPv6.
gcloud compute firewall-rules create allow-icmpv6-ula-ncc4 \
--network=vpc-ncc4 \
--action=allow \
--direction=ingress \
--rules=all \
--source-ranges=fd20::/20
Utwórz 3 instancje GCE IPv6, aby w następnej sekcji sprawdzić łączność ścieżki danych.
gcloud compute instances create vpc4-ipv6-vm \
--zone us-central1-a \
--subnet=vpc4-ipv6-sn1 \
--stack-type=IPV6_ONLY
gcloud compute instances create vpc1-ipv6-vm \
--zone us-central1-a \
--subnet=vpc1-ipv6-sn1 \
--stack-type=IPV6_ONLY
gcloud compute instances create vpc1-dual-stack-vm \
--zone us-east1-b \
--network=vpc-ncc1 \
--subnet=vpc2-ipv64-sn2 \
--stack-type=IPV4_IPV6
Sprawdź podsieci IPv6 w centrum NCC
Sprawdź tabelę tras centrum NCC pod kątem podsieci IPv6 ULA.
gcloud network-connectivity hubs route-tables routes list --route_table=default \
--hub=ncc-hub \
--filter="IP_CIDR_RANGE:fd20"
Zwróć uwagę, że dane wyjściowe powyższego polecenia nie zawierają podsieci IPv6. Domyślnie podsieci IPv6 z promieni VPC NIE są uwzględniane w eksporcie do tabeli tras centrum NCC.
Listed 0 items.
Użyj poniższych poleceń gcloud, aby zaktualizować odgałęzienia VPC1 i VPC4, tak aby eksportowały podsieci IPv6 do tabeli tras centrum NCC.
gcloud network-connectivity spokes linked-vpc-network update vpc1-spoke1 \
--global \
--include-export-ranges=ALL_IPV6_RANGES
gcloud network-connectivity spokes linked-vpc-network update vpc4-spoke4 \
--global \
--include-export-ranges=ALL_IPV6_RANGES
Ponownie sprawdź tabelę tras centrum NCC pod kątem podsieci IPv6 ULA.
gcloud network-connectivity hubs route-tables routes list --route_table=default \
--hub=ncc-hub \
--filter="IP_CIDR_RANGE:fd20"
Przykładowe dane wyjściowe
IP_CIDR_RANGE PRIORITY LOCATION STATE TYPE SITE_TO_SITE NEXT_HOP HUB ROUTE_TABLE
fd20:c95:95d2:1:0:0:0:0/64 us-central1 ACTIVE VPC_PRIMARY_SUBNET N/A vpc-ncc4 ncc-hub default
fd20:90:6768:1000:0:0:0:0/64 us-east1 ACTIVE VPC_PRIMARY_SUBNET N/A vpc-ncc1 ncc-hub default
fd20:c95:95d2:1000:0:0:0:0/64 us-east1 ACTIVE VPC_PRIMARY_SUBNET N/A vpc-ncc4 ncc-hub default
fd20:90:6768:0:0:0:0:0/64 us-central1 ACTIVE VPC_PRIMARY_SUBNET N/A vpc-ncc1 ncc-hub default
9. Sprawdzanie łączności ścieżki danych
Połączenie ścieżki danych IPv4
Sprawdź ścieżkę danych IPv4 między poszczególnymi maszynami wirtualnymi, korzystając z diagramu.

Połącz się przez SSH z instancją vm1-vpc1-ncc i uruchom zrzut TCP, aby śledzić pakiety ICMP z instancji vm2-vpc2-ncc. Przypominamy, że ta maszyna wirtualna znajduje się w sieci VPC2.
vm1-vpc1-ncc
sudo tcpdump -i any icmp -v -e -n
Ustanów sesję SSH z instancją vm1-vpc2-ncc i wykonaj polecenie „ping” na adresie IP instancji vm1-vpc1-ncc.
vm1-vpc2-ncc
ping 10.1.1.2
Nawiąż połączenie SSH z instancją vm1-vpc2-ncc i wykonaj polecenie „ping” na adresie IP instancji vm1-vpc4-ncc.
vm1-vpc2-ncc
ping 240.0.0.2
Łączność ścieżki danych IPv6
Sprawdź na diagramie ścieżkę danych IP64 między poszczególnymi maszynami wirtualnymi.

Użyj polecenia gcloud, aby wyświetlić adres IP każdej instancji z włączonym protokołem IPv6.
gcloud compute instances list --filter="INTERNAL_IP:fd20"
Przykładowe dane wyjściowe
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
vpc1-ipv6-vm us-central1-a n1-standard-1 fd20:90:6768:0:0:1:0:0/96 RUNNING
vpc4-ipv6-vm us-central1-a n1-standard-1 fd20:c95:95d2:1:0:1:0:0/96 RUNNING
vpc1-dual-stack-vm us-east1-b n1-standard-1 10.10.10.3 XXX.196.137.107 RUNNING
fd20:90:6768:1000:0:1:0:0/96
Nawiąż sesję SSH z maszyną wirtualną „vpc1-dualstack-vm” i wykonaj polecenie „ping” na adres IPv6 maszyny wirtualnej „vpc1-ipv6-vm”, aby sprawdzić łączność IPv6 w globalnej sieci VPC.
ping fd20:90:6768:1000:0:1::
Nawiąż sesję SSH z maszyną wirtualną „vpc1-dualstack-vm” i wykonaj polecenie „ping” na adresie IPv6 maszyny wirtualnej „vpc4-ipv6-vm”, aby sprawdzić łączność IPv6 w ramach połączenia NCC.
ping fd20:c95:95d2:1:0:1::
10. Czyszczenie
Zaloguj się w Cloud Shell i usuń instancje maszyn wirtualnych w sieciach witryn centralnej i oddziału.
Usuwanie prywatnych konfiguracji NAT sieci VPC
gcloud beta compute routers nats rules delete 1 \
--nat=ncc2-nat \
--router=private-nat-cr \
--region=us-central1 \
--quiet
gcloud beta compute routers nats delete ncc2-nat \
--router=private-nat-cr \
--router-region=us-central1 \
--quiet
gcloud compute routers delete private-nat-cr \
--region=us-central1 \
--quiet
Usuwanie promieni ncc
gcloud network-connectivity spokes delete vpc1-spoke1 --global --quiet
gcloud network-connectivity spokes delete vpc2-spoke2 --global --quiet
gcloud network-connectivity spokes delete vpc3-spoke3 --global --quiet
gcloud network-connectivity spokes delete vpc4-spoke4 --global --quiet
Odrzucanie promienia między projektami
Odrzuć promień VPC między projektami z centrum NCC.
gcloud network-connectivity spokes reject projects/$xprojname/locations/global/spokes/xproj-spoke \--details="cleanup" \
--global
Usuwanie centrum NCC
gcloud network-connectivity hubs delete ncc-hub --quiet
Usuwanie reguł zapory sieciowej
gcloud compute firewall-rules delete ncc1-vpc-internal --quiet
gcloud compute firewall-rules delete ncc2-vpc-internal --quiet
gcloud compute firewall-rules delete ncc3-vpc-internal --quiet
gcloud compute firewall-rules delete ncc4-vpc-internal --quiet
gcloud compute firewall-rules delete ncc1-vpc-iap --quiet
gcloud compute firewall-rules delete ncc2-vpc-iap --quiet
gcloud compute firewall-rules delete ncc3-vpc-iap --quiet
gcloud compute firewall-rules delete ncc4-vpc-iap --quiet
gcloud compute firewall-rules delete allow-icmpv6-ula-ncc1
gcloud compute firewall-rules delete allow-icmpv6-ula-ncc4
Usuwanie instancji GCE
gcloud compute instances delete vm1-vpc1-ncc --zone=us-central1-a --quiet
gcloud compute instances delete vm2-vpc2-ncc --zone=us-central1-a --quiet
gcloud compute instances delete pnat-vm-vpc2 --zone=us-central1-a --quiet
gcloud compute instances delete vm1-vpc4-ncc --zone=us-east1-b --quiet
gcloud compute instances delete vpc4-ipv6-vm --zone us-central1-a --quiet
gcloud compute instances delete vpc2-dual-stack-vm --zone us-east1-b --quiet
gcloud compute instances delete vpc2-ipv6-vm --zone us-central1-a --quiet
Usuwanie podsieci VPC
gcloud compute networks subnets delete ncc2-spoke-nat --region us-central1 --quiet
gcloud compute networks subnets delete vpc1-ncc-subnet1 --region us-central1 --quiet
gcloud compute networks subnets delete vpc1-ncc-subnet2 --region us-central1 --quiet
gcloud compute networks subnets delete vpc1-ncc-subnet3 --region us-central1 --quiet
gcloud compute networks subnets delete vpc2-ncc-subnet1 --region us-central1 --quiet
gcloud compute networks subnets delete overlapping-vpc2 --region us-central1 --quiet
gcloud compute networks subnets delete overlapping-vpc3 --region us-central1 --quiet
gcloud compute networks subnets delete benchmark-testing-rfc2544 --region us-east1 --quiet
gcloud compute networks subnets delete class-e-rfc5735 --region us-east1 --quiet
gcloud compute networks subnets delete ietf-protcol-assignment-rfc6890 --region us-east1 --quiet
gcloud compute networks subnets delete ipv6-4-relay-rfc7526 --region us-east1 --quiet
gcloud compute networks subnets delete pupi --region us-east1 --quiet
gcloud compute networks subnets delete test-net-1-rfc5737 --region us-east1 --quiet
gcloud compute networks subnets delete test-net-2-rfc5737 --region us-east1 --quiet
gcloud compute networks subnets delete test-net-3-rfc5737 --region us-east1 --quiet
gcloud compute networks subnets delete vpc1-ipv64-sn2 --region=us-east1 --quiet
gcloud compute networks subnets delete vpc1-ipv6-sn1 --region=us-central1 --quiet
gcloud compute networks subnets delete vpc4-ipv64-sn2 --region=us-east1 --quiet
gcloud compute networks subnets delete vpc4-ipv6-sn1 --region=us-central1 --quiet
Usuwanie sieci VPC
gcloud compute networks delete vpc1-ncc vpc2-ncc vpc3-ncc vpc4-ncc
--quiet
11. Gratulacje!
Laboratorium Network Connectivity Center zostało ukończone.
Omówione kwestie
- Skonfigurowana sieć połączeń równorzędnych VPC typu pełna siatka z hubem NCC
- Filtr wykluczania promienia NCC
- Obsługa projektów promieni w wielu projektach
- Prywatny NAT między sieciami VPC
Następne kroki
© Google LLC lub jej podmioty stowarzyszone. Wszelkie prawa zastrzeżone. Nie rozpowszechniać.