Moduł: propagacja NCC PSC

1. Wprowadzenie

Przegląd

W tym module użytkownicy dowiedzą się, jak centrum Network Connectivity Center propaguje punkt końcowy Private Service Connect do promieni VPC.

Zasób centrum zapewnia scentralizowany model zarządzania połączeniami, który umożliwia łączenie ruchu promieni VPC z punktami końcowymi PSC.

Co utworzysz

W tym module dowiesz się, jak utworzyć sieć NCC, która będzie propagować punkt końcowy Private Service Connect do instancji Cloud SQL.

74bf390e323ea3bb.png

Czego się nauczysz

  • Nawiązywanie połączenia z instancją Cloud SQL za pomocą usługi Private Service Connect
  • Użyj centrum NCC, aby rozpowszechnić podsieć PSC na wszystkie promienie VPC, co umożliwi połączenie sieciowe z wielu sieci VPC.

Czego potrzebujesz

  • Znajomość sieci w Google Cloud Platform
  • Podstawowa wiedza o Cloud SQL
  • Projekt Google Cloud
  • Sprawdź limit:sieci i w razie potrzeby poproś o dodanie kolejnych sieci (zrzut ekranu poniżej):

6bc606cb34bce7e8.png

Cele

  • Konfigurowanie środowiska GCP
  • Konfigurowanie instancji Cloud SQL for MySQL z funkcją Private Service Connect
  • Konfigurowanie centrum Network Connectivity Center do propagowania punktów końcowych PSC
  • Konfigurowanie Network Connectivity Center z siecią VPC jako promieniem
  • Sprawdzanie ścieżki danych
  • Poznaj funkcje serwisowania NCC
  • Zwalnianie miejsca

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.

Konsola Google Cloud projektu centrum NCC

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 Google Cloud.

Uruchom Cloud Shell. W tym laboratorium wykorzystywane są zmienne $variables, które ułatwiają wdrażanie konfiguracji gcloud w Cloud Shell.

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

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 hubami i sieciami typu spoke.

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 koncentratorów i szprych.

networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList

2. Konfigurowanie środowiska sieciowego

Przegląd

W tej sekcji wdrożymy 2 sieci VPC i reguły zapory sieciowej w jednym projekcie. Diagram logiczny przedstawia środowisko sieciowe, które zostanie skonfigurowane w tym kroku.

8884a55988881e17.png

Tworzenie sieci VPC1 i podsieci

Sieć VPC zawiera podsieci, w których zainstalujesz maszynę wirtualną GCE do weryfikacji ścieżki danych.

vpc_spoke_network_name="vpc1-spoke"
vpc_spoke_subnet_name="subnet1"
vpc_spoke_subnet_ip_range="10.0.1.0/24"
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}" 

Tworzenie podsieci PSC w VPC

Użyj poniższego polecenia, aby utworzyć w sieci VPC typu spoke podsieć, która zostanie przydzielona do punktu końcowego usługi PSC.

vpc_spoke_network_name="vpc1-spoke"
vpc_spoke_subnet_name="csql-psc-subnet"
region="us-central1"
vpc_spoke_subnet_ip_range="192.168.0.0/24"

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

Utwórz VPC3 i podsieć

vpc_spoke_network_name="vpc3-spoke"
vpc_spoke_subnet_name="subnet3"
vpc_spoke_subnet_ip_range="10.0.3.0/24"
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}"

Konfigurowanie reguł zapory sieciowej VPC1

Te reguły zezwalają na łączność sieciową z zakresów RFC1918 i Identity Access Proxy.

vpc_spoke_network_name="vpc1-spoke"

gcloud compute firewall-rules create vpc1-allow-all \
--network="${vpc_spoke_network_name}" \
--allow=all \
--source-ranges=10.0.0.0/8,172.16.0.0/12,192.168.0.0/16

gcloud compute firewall-rules create vpc1-allow-iap \
--network="${vpc_spoke_network_name}" \
--allow all \
--source-ranges 35.235.240.0/20

Konfigurowanie sieci VPC routingu i reguł zapory sieciowej VPC

vpc_spoke_network_name="vpc3-spoke"

gcloud compute firewall-rules create vpc3-allow-all \
--network="${vpc_spoke_network_name}" \
--allow=all \
--source-ranges=10.0.0.0/8,172.16.0.0/12,192.168.0.0/16

gcloud compute firewall-rules create vpc3-allow-iap \
--network="${vpc_spoke_network_name}" \
--allow all \
--source-ranges 35.235.240.0/20

Konfigurowanie maszyny wirtualnej GCE w sieci VPC1

Aby zainstalować pakiety, musisz mieć tymczasowy dostęp do internetu, więc skonfiguruj instancję tak, aby używała zewnętrznego adresu IP.

vm_vpc1_spoke_name="csql-vpc1-vm"
vpc_spoke_network_name="vpc1-spoke"
vpc_spoke_subnet_name="subnet1"
region="us-central1"
zone="us-central1-a"

gcloud compute instances create "${vm_vpc1_spoke_name}" \
--machine-type="e2-medium" \
--subnet="${vpc_spoke_subnet_name}" \
--zone="${zone}" \
--image-family=debian-11 \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
sudo apt-get update
sudo apt-get install -y default-mysql-client'

Konfigurowanie maszyny wirtualnej GCE w sieci VPC3

Aby zainstalować pakiety, musisz mieć tymczasowy dostęp do internetu, więc skonfiguruj instancję tak, aby używała zewnętrznego adresu IP.

vm_vpc_spoke_name="csql-vpc3-vm"
vpc_spoke_network_name="vpc3-spoke"
vpc_spoke_subnet_name="subnet3"
region="us-central1"
zone="us-central1-a"

gcloud compute instances create "${vm_vpc_spoke_name}" \
--machine-type="e2-medium" \
--subnet="${vpc_spoke_subnet_name}" \
--zone="${zone}" \
--image-family=debian-11 \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
sudo apt-get update
sudo apt-get install -y default-mysql-client'

3. Tworzenie instancji Cloud SQL

Aby utworzyć instancję i włączyć Private Service Connect, użyj poniższych poleceń .

Zajmie to tylko kilka minut.

gcloud config set project ${project}

gcloud sql instances create mysql-instance \
--project="${project}" \
--region=us-central1 \
--enable-private-service-connect \
--allowed-psc-projects="${project}" \
--availability-type=zonal \
--no-assign-ip \
--tier=db-f1-micro \
--database-version=MYSQL_8_0 \
--enable-bin-log

Określanie identyfikatora URI przyłącza usługi instancji Cloud SQL

Aby wyświetlić informacje o instancji z włączoną usługą Private Service Connect, użyj polecenia gcloud sql instances describe. Zwróć uwagę na pole pscServiceAttachmentLink, które wyświetla identyfikator URI wskazujący przyłącze usługi instancji. Będzie nam to potrzebne w następnej sekcji.

gcloud sql instances describe mysql-instance \
--format='value(pscServiceAttachmentLink)'

4. Punkt końcowy PSC do Cloud SQL

Zarezerwuj wewnętrzny adres IP dla punktu końcowego PSC

Użyj poniższego polecenia, aby zarezerwować wewnętrzny adres IP dla punktu końcowego Private Service Connect.

region="us-central1"
vpc_spoke_subnet_name="csql-psc-subnet"

gcloud compute addresses create csql-psc-ip \
--subnet="${vpc_spoke_subnet_name}" \
--region="${region}" \
--addresses=192.168.0.253

Wyszukaj NAZWĘ powiązaną z zarezerwowanym adresem IP. Będzie on używany w konfiguracji reguły przekierowania.

gcloud compute addresses list \
--filter="name=csql-psc-ip"

Utwórz regułę przekierowania Private Service Connect w sieci VPC1

Użyj poniższego polecenia, aby utworzyć punkt końcowy Private Service Connect i skierować go do przyłącza usługi Cloud SQL.

vpc_spoke_network_name="vpc1-spoke"
vpc_spoke_subnet_name="csql-psc-subnet"
region="us-central1"
csql_psc_ep_name="csql-psc-ep"
sa_uri=$(gcloud sql instances describe mysql-instance \
  --format='value(pscServiceAttachmentLink)')
echo "$sa_uri"

gcloud compute forwarding-rules create "${csql_psc_ep_name}" \
--address=csql-psc-ip \
--region="${region}" \
--network="${vpc_spoke_network_name}" \
--target-service-attachment="${sa_uri}" \
--allow-psc-global-access

Aby sprawdzić, czy przyłącze usługi cSQL akceptuje punkt końcowy, użyj tego polecenia:

gcloud compute forwarding-rules describe csql-psc-ep \
--region=us-central1 \
--format='value(pscConnectionStatus)'

Sprawdź ścieżkę danych do MySQL z VPC1

Gdy tworzysz nową instancję Cloud SQL, musisz ustawić hasło do domyślnego konta użytkownika, zanim będziesz mieć możliwość połączenia się z instancją.

gcloud sql users set-password root \
--host=% \
--instance=mysql-instance \
--prompt-for-password

Aby znaleźć adres IP punktu końcowego PSC powiązanego z przyłączem usługi Cloud SQL, użyj tego polecenia:

gcloud compute addresses describe csql-psc-ip \
--region=us-central1 \
--format='value(address)'

Nawiązywanie połączenia z instancją Cloud SQL z poziomu maszyny wirtualnej w sieci VPC1

Otwieranie sesji SSH na maszynie wirtualnej csql-vpc1-vm

gcloud compute ssh csql-vpc1-vm \
--zone=us-central1-a \
--tunnel-through-iap

Aby połączyć się z instancją Cloud SQL, użyj tego polecenia: Gdy pojawi się prośba, wpisz hasło utworzone w poprzednim kroku.

mysql -h 192.168.0.253 -u root -p 

Poniższe dane wyjściowe są wyświetlane po pomyślnym zalogowaniu.

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 8350
Server version: 8.0.31-google (Google)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> 

Użyj polecenia show databases;, aby sprawdzić bazy danych, które są domyślnie tworzone w MySQL.

MySQL [(none)]> show databases;

Nawiązywanie połączenia z instancją Cloud SQL z poziomu maszyny wirtualnej w sieci VPC3

Otwórz sesję SSH na maszynie wirtualnej csql-vpc3-vm.

gcloud compute ssh csql-vpc3-vm \
--zone=us-central1-a \
--tunnel-through-iap

Aby połączyć się z instancją Cloud SQL, użyj tego polecenia: Gdy pojawi się prośba, wpisz hasło utworzone w poprzednim kroku.

mysql -h 192.168.0.253 -u root -p 

Sesja z maszyny wirtualnej znajdującej się w sieci VPC3 kończy się niepowodzeniem, ponieważ nie ma ścieżki danych z sieci VPC3 do punktu końcowego Private Service Connect. Aby wyjść z sesji, użyj kombinacji klawiszy.

Ctrl + C

5. 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 ścieżki danych z promieni VPC do punktu końcowego Private Service Connect.

b615efa4bad5f86.png

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

Aby utworzyć hub NCC, użyj poniższego polecenia gcloud. Flaga „–export-psc” nakazuje NCC Hub propagowanie znanych punktów końcowych PSC do wszystkich sieci VPC typu promień.

hub_name="ncc-hub"
gcloud network-connectivity hubs create "${hub_name}" \
--export-psc

Opisz nowo utworzone centrum NCC. Zanotuj nazwę i powiązaną ścieżkę.

gcloud network-connectivity hubs describe ncc-hub

Skonfiguruj sieć VPC1 jako promień NCC

hub_name="ncc-hub"
vpc_spoke_name="sql-vpc1-spoke"
vpc_spoke_network_name="vpc1-spoke"

gcloud network-connectivity spokes linked-vpc-network create "${vpc_spoke_name}" \
--hub="${hub_name}" \
--vpc-network="${vpc_spoke_network_name}" \
--global

Skonfiguruj VPC3 jako promień NCC

hub_name="ncc-hub"
vpc_spoke_name="sql-vpc3-spoke"
vpc_spoke_network_name="vpc3-spoke"

gcloud network-connectivity spokes linked-vpc-network create "${vpc_spoke_name}" \
--hub="${hub_name}" \
--vpc-network="${vpc_spoke_network_name}" \
--global

Aby sprawdzić, czy w tabeli routingu centrum NCC znajduje się trasa do podsieci PSC, użyj tego polecenia:

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

6. Sprawdzanie ścieżki danych NCC

W tym kroku zweryfikujemy ścieżkę danych między NCC Hybrid a promieniem VPC.

Sprawdź skonfigurowaną ścieżkę danych NCC do punktu końcowego PSC instancji Cloud SQL

Użyj danych wyjściowych tych poleceń gcloud, aby zalogować się na lokalnej maszynie wirtualnej.

 gcloud compute instances list --filter="name=csql-vpc3-vm" 

Zaloguj się na maszynę wirtualną znajdującą się w sieci lokalnej.

gcloud compute ssh csql-vpc3-vm \
--zone=us-central1-a \
--tunnel-through-iap

Aby połączyć się z instancją Cloud SQL, użyj polecenia mysql poniżej. Gdy pojawi się prośba, wpisz hasło utworzone w poprzednim kroku.

mysql -h 192.168.0.253 -u root -p 

Poniższe dane wyjściowe są wyświetlane po pomyślnym zalogowaniu.

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 8501
Server version: 8.0.31-google (Google)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.005 sec)

Użyj polecenia show databases;, aby sprawdzić bazy danych, które są domyślnie tworzone w MySQL.

MySQL [(none)]> show databases;

7. Czyszczenie

Zaloguj się w Cloud Shell i usuń zasoby GCP.

Usuń punkty końcowe PSC Cloud SQL

gcloud compute forwarding-rules delete csql-psc-ep \
--region=us-central1 \
--quiet

gcloud compute addresses delete csql-psc-ip \
--region=us-central1 \
--quiet

gcloud compute networks subnets delete csql-psc-subnet \
--region=us-central1 \
--quiet

Usuwanie instancji Cloud SQL

gcloud sql instances delete mysql-instance --quiet

Usuwanie reguł zapory sieciowej

vpc_spoke_network_name="vpc3-spoke"

gcloud compute firewall-rules delete vpc3-allow-all \ --network="${vpc_spoke_network_name}" 
gcloud compute firewall-rules delete vpc3-allow-iap \ --network="${vpc_spoke_network_name}"
vpc_spoke_network_name="vpc1-spoke"

gcloud compute firewall-rules delete vpc1-allow-all \ --network="${vpc_spoke_network_name}"
gcloud compute firewall-rules delete vpc1-allow-iap \ --network="${vpc_spoke_network_name}"

Usuwanie instancji GCE w sieciach VPC1 i VPC3

vm_vpc1_spoke_name="csql-vpc1-vm"
zone="us-central1-a"
gcloud compute instances delete "${vm_vpc1_spoke_name}" \
--zone="${zone}" \
--quiet


vm_vpc_spoke_name="csql-vpc3-vm"
zone="us-central1-a"
gcloud compute instances delete "${vm_vpc_spoke_name}" \
--zone="${zone}" --quiet

Usuwanie połączeń z siecią NCC

vpc_spoke_name="sql-vpc1-spoke"
gcloud network-connectivity spokes delete "${vpc_spoke_name}" \
--global \  
--quiet
vpc_spoke_name="sql-vpc3-spoke"
gcloud network-connectivity spokes delete "${vpc_spoke_name}" \
--global \  
--quiet

Usuwanie centrum NCC

hub_name="ncc-hub"
gcloud network-connectivity hubs delete "${hub_name}" \
  --project=${project}

Usuń podsieci we wszystkich sieciach VPC

vpc_spoke_subnet_name="csql-psc-subnet"
region="us-central1"

gcloud compute networks subnets delete "${vpc_spoke_subnet_name}" \ 
--region="${region}" \
--quiet
vpc_spoke_subnet_name="subnet1"
region="us-central1"

gcloud compute networks subnets delete "${vpc_spoke_subnet_name}" \ 
--region="${region}" \
--quiet
vpc_spoke_subnet_name="subnet3"
region="us-central1"

gcloud compute networks subnets delete "${vpc_spoke_subnet_name}" \ 
--region="${region}" \
--quiet

Usuwanie sieci VPC1 i VPC3

gcloud compute networks delete vpc1-spoke vpc3-spoke 

8. Gratulacje!

Laboratorium propagacji usługi Private Service Connect za pomocą Network Connectivity Center zostało ukończone.

Omówione kwestie

  • Propagacja punktu końcowego Private Service Connect za pomocą Network Connectivity Center

Następne kroki