Moduł: propagacja NCC PSC

1. Wprowadzenie

Omówienie

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

Zasób centrum zapewnia scentralizowany model zarządzania łącznością, który umożliwia łączenie ruchu z wiązek VPC z punktami końcowymi PSC.

Co utworzysz

W tym laboratorium programistycznym utworzysz sieć NCC, która będzie propagować punkt końcowy usługi Private Service Connect do instancji Cloud SQL.

74bf390e323ea3bb.png

Czego się nauczysz

  • Łączenie się z instancją Cloud SQL za pomocą Private Service Connect
  • Użyj centrum NCC, aby propagować podsieć PSC do wszystkich wiązek VPC, aby umożliwić łączność sieci z wielu sieci VPC.

Czego potrzebujesz

  • Znajomość sieci Google Cloud
  • Podstawowa znajomość Cloud SQL
  • Projekt Google Cloud
  • Sprawdź Limit:sieci i w razie potrzeby poproś o dodatkowe sieci. Zrzut ekranu poniżej:

6bc606cb34bce7e8.png

Cele

  • Konfigurowanie środowiska GCP
  • Konfigurowanie instancji Cloud SQL dla MySql z Private Service Connect
  • Konfigurowanie centrum Network Connectivity Center w celu propagowania punktów końcowych PSC
  • Konfigurowanie Network Connectivity Center z siecią VPC jako promieniową
  • Sprawdzanie ścieżki danych
  • Poznaj funkcje obsługi NCC
  • Czyszczenie zasobów

Zanim zaczniesz

Google Cloud Console i Cloud Shell

W tym module będziemy korzystać z konsoli Google Cloud Platform i Cloud Shell.

Konsola Google Cloud – projekt NCC Hub

Konsolę Cloud Console można otworzyć na stronie https://console.cloud.google.com.

Aby ułatwić konfigurowanie Centrum łączności sieciowej, skonfiguruj w Google Cloud te elementy:

W konsoli Google Cloud na stronie selektora projektu wybierz lub utwórz projekt Google Cloud.

Uruchom Cloud Shell. Ten samouczek Codelab wykorzystuje zmienne $variables, aby ułatwić implementację 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ń

NCC wymaga ról uprawnień do uzyskiwania dostępu do określonych interfejsów API. Pamiętaj, aby skonfigurować użytkownika z wymaganymi rolami NCC w IAM.

Rola/opis

Uprawnienia

networkconnectivity.networkAdmin – umożliwia administratorom sieci zarządzanie węzłami i ramieniem.

networkconnectivity.hubs.networkconnectivity.spokes.

networkconnectivity.networkSpokeManager – umożliwia dodawanie promieni i zarządzanie nimi w centrum. Do korzystania w współdzielonym środowisku VPC, w którym projekt główny jest właścicielem centrum, ale inni administratorzy w innych projektach mogą dodawać do niego promienie dla swoich załączników.

networkconnectivity.spokes.**

networkconnectivity.networkUsernetworkconnectivity.networkViewer – umożliwia użytkownikom sieci wyświetlanie różnych atrybutów osi i ramion.

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

2. Konfigurowanie środowiska sieciowego

Omówienie

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 na tym etapie.

8884a55988881e17.png

Tworzenie VPC1 i podsieci

Sieć VPC zawiera podsieci, w których zainstalujesz maszynę wirtualną GCE na potrzeby walidacji ś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

Utwórz podsieć w węźle VPC, która zostanie przydzielona do PSC-EP, za pomocą podanego niżej polecenia.

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

Tworzenie VPC3 i podsieci

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 umożliwią łączność sieciową z zakresów RFC1918 i proxy dostępu tożsamości.

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

Znajdowanie 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 zawiera identyfikator URI wskazujący na załącznik usługi instancji. Będziemy tego potrzebować 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

Aby zarezerwować adres IP wewnętrzny dla punktu końcowego Private Service Connect, użyj tego polecenia:

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

Sprawdź nazwę powiązaną z zarezerwowanym adresem IP. Adres ten będzie używany w konfiguracji reguły przekierowania.

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

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

Użyj podanego niżej polecenia, aby utworzyć punkt końcowy Private Service Connect i skierować go na przyłącze 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 załącznik 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

Podczas tworzenia nowej instancji Cloud SQL musisz ustawić hasło dla domyślnego konta użytkownika, zanim będzie można połączyć 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)'

Łączenie z instancją Cloud SQL z poziomu maszyny wirtualnej w VPC1

Otwórz sesję SSH do 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 podanego niżej polecenia. Gdy pojawi się prośba, wpisz hasło utworzone w poprzednim kroku.

mysql -h 192.168.0.253 -u root -p 

Po pomyślnym zalogowaniu wyświetli się poniższy komunikat.

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 utworzone domyślnie w MySQL.

MySQL [(none)]> show databases;

Łączenie z instancją Cloud SQL z poziomu maszyny wirtualnej w VPC3

Otwórz sesję SSH do 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 podanego niżej 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 VPC3 kończy się niepowodzeniem, ponieważ nie ma ścieżki danych z VPC3 do punktu końcowego Private Service Connect. Aby zakończyć sesję, użyj kombinacji klawiszy.

Ctrl + C

5. Centrum Network Connectivity Center

Omówienie

W tej sekcji skonfigurujemy węzeł NCC za pomocą poleceń gcloud. Centrum NCC będzie pełnić rolę platformy sterującej odpowiedzialnej za tworzenie ścieżki danych z promień VPC do punktu końcowego Private Service Connect.

b615efa4bad5f86.png

Włączanie usług interfejsu 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ć węzeł NCC, użyj podanego niżej polecenia gcloud. Flaga „–export-psc” instruuje NCC Hub, aby propagował znane punkty końcowe PSC do wszystkich krat VPC.

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

Konfigurowanie VPC1 jako promienia 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

Konfigurowanie VPC3 jako promienia 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 tras NCC Hub jest 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 węzłem hybrydowym NCC a węzłem VPC.

Sprawdzanie ścieżki danych skonfigurowanej przez NCC do punktu końcowego PSC instancji Cloud SQL

Użyj danych wyjściowych z tych poleceń gcloud, aby zalogować się na maszynę wirtualną na miejscu.

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

Zaloguj się do instancji maszyny wirtualnej znajdującej 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 podanego niżej polecenia mysql. Gdy pojawi się prośba, wpisz hasło utworzone w poprzednim kroku.

mysql -h 192.168.0.253 -u root -p 

Po pomyślnym zalogowaniu wyświetli się poniższy komunikat.

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 utworzone domyślnie w MySQL.

MySQL [(none)]> show databases;

7. Czyszczenie

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

Usuwanie punktów końcowych Cloud SQL PSC

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 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 wiązek 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

Usuń VPC1 i VPC3

gcloud compute networks delete vpc1-spoke vpc3-spoke 

8. Gratulacje!

Ukończyłeś propagację Private Service Connect w Network Connectivity Center Lab.

Omówione kwestie

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

Następne kroki