1. Введение
Обзор
В этой лабораторной работе пользователи изучат, как центральный узел Network Connect Center передает конечную точку Private Service Connect на периферийные узлы VPC.
Центральный ресурс обеспечивает централизованную модель управления связностью для соединения трафика периферийных узлов VPC с конечными точками PSC.
Что вы построите
В этом практическом задании вы создадите сеть NCC, которая будет передавать конечную точку подключения частного сервиса в экземпляр Cloud SQL.

Что вы узнаете
- Используйте Private Service Connect для подключения к экземпляру Cloud SQL.
- Используйте NCC Hub для распространения подсети PSC на все периферийные сети VPC, чтобы обеспечить сетевое соединение из нескольких сетей VPC.
Что вам понадобится
- Знание сетевых технологий облачной среды GCP.
- Базовые знания Cloud SQL
- Проект Google Cloud
- Проверьте свою квоту по сетям и при необходимости запросите дополнительные сети (см. скриншот ниже):

Цели
- Настройка среды GCP
- Настройка экземпляра Cloud SQL для MySQL с использованием частного сервиса Sonnect.
- Настройте центр управления сетевым подключением (Network Connectivity Center Hub) для распространения сигнала на конечные точки PSC.
- Настройте Центр сетевого подключения, используя VPC в качестве периферийной сети.
- Проверить путь к данным
- Изучите характеристики ремонтопригодности NCC.
- Очистка ресурсов
Прежде чем начать
Консоль Google Cloud и Cloud Shell
Для взаимодействия с GCP в ходе этой лабораторной работы мы будем использовать как консоль Google Cloud, так и Cloud Shell.
Консоль Google Cloud для проекта NCC Hub
Доступ к консоли Cloud Console можно получить по адресу https://console.cloud.google.com .
Для упрощения настройки Центра сетевого подключения настройте следующие элементы в Google Cloud:
В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud.
Запустите Cloud Shell . В этом практическом занятии используются переменные `$variables` для упрощения настройки gcloud в Cloud Shell.
gcloud auth list
gcloud config list project
gcloud config set project $project
project=[YOUR-PROJECT-NAME]
echo $project
Роли IAM
Для доступа к определенным API в NCC требуются роли IAM. Убедитесь, что вы настроили пользователя с необходимыми ролями IAM в NCC.
Роль/Описание | Разрешения |
networkconnectivity.networkAdmin — позволяет сетевым администраторам управлять центральной и периферийной сетью. | networkconnectivity.hubs. networkconnectivity.spokes. |
networkconnectivity.networkSpokeManager — позволяет добавлять и управлять периферийными узлами в хабе. Используется в общей виртуальной частной сети (Shared VPC), где хаб принадлежит хост-проекту, но другие администраторы в других проектах могут добавлять периферийные узлы для своих подключений к хабу. | networkconnectivity.spokes.** |
networkconnectivity.networkUsernetworkconnectivity.networkViewer — позволяет пользователям сети просматривать различные атрибуты центрального и периферийного узлов. | networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList |
2. Настройка сетевой среды
Обзор
В этом разделе мы развернем две сети VPC и правила брандмауэра в рамках одного проекта. Логическая схема иллюстрирует сетевую среду, которая будет настроена на этом этапе.

Создайте VPC1 и подсеть.
Сеть VPC содержит подсети, в которых вы установите виртуальную машину GCE для проверки пути передачи данных.
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}"
Создайте подсеть PSC в VPC.
Используйте приведенную ниже команду для создания подсети в периферийной сети VPC, которая будет выделена для PSC-EP.
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}"
Создайте VPC3 и подсеть.
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}"
Настройте правила брандмауэра VPC1.
Эти правила позволят осуществлять сетевое подключение из диапазонов RFC1918 и 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
Настройка маршрутизации VPC и правил брандмауэра 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
Настройка виртуальной машины GCE в VPC1
Для установки пакетов вам потребуется временный доступ в интернет, поэтому настройте экземпляр на использование внешнего 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'
Настройка виртуальной машины GCE в VPC3
Для установки пакетов вам потребуется временный доступ в интернет, поэтому настройте экземпляр на использование внешнего 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. Создайте экземпляр Cloud SQL.
Используйте приведенные ниже команды для создания экземпляра и включения функции Private Service Connect.
Это займет несколько минут.
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
Определите URI подключения сервиса к экземпляру Cloud SQL.
Используйте команду gcloud sql instances describe, чтобы просмотреть информацию об экземпляре с включенным Private Service Connect. Обратите внимание на поле pscServiceAttachmentLink, которое отображает URI, указывающий на подключение службы к экземпляру. Оно понадобится нам в следующем разделе.
gcloud sql instances describe mysql-instance \
--format='value(pscServiceAttachmentLink)'
4. Конечная точка PSC для связи с CloudSQL
Зарезервировать внутренний IP-адрес для конечной точки PSC
Используйте приведенную ниже команду, чтобы зарезервировать внутренний IP-адрес для конечной точки 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
Найдите имя, связанное с зарезервированным IP-адресом. Оно будет использоваться в конфигурации правила переадресации.
gcloud compute addresses list \
--filter="name=csql-psc-ip"
Создайте правило переадресации подключения частной службы в VPC1.
Используйте приведенную ниже команду для создания конечной точки Private Service Connect и укажите в ней путь к подключению к службе 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
Используйте приведенную ниже команду, чтобы убедиться, что подключение к службе cSQL принимает указанную конечную точку.
gcloud compute forwarding-rules describe csql-psc-ep \
--region=us-central1 \
--format='value(pscConnectionStatus)'
Проверьте путь к данным MySQL из VPC1.
При создании нового экземпляра Cloud SQL необходимо установить пароль для учетной записи пользователя по умолчанию, прежде чем вы сможете подключиться к экземпляру.
gcloud sql users set-password root \
--host=% \
--instance=mysql-instance \
--prompt-for-password
Используйте приведенную ниже команду, чтобы определить IP-адрес конечной точки PSC, связанной с подключением к сервису Cloud SQL.
gcloud compute addresses describe csql-psc-ip \
--region=us-central1 \
--format='value(address)'
Подключение к экземпляру CloudSQL с виртуальной машины в VPC1
Откройте SSH-сессию к csql-vpc1-vm
gcloud compute ssh csql-vpc1-vm \
--zone=us-central1-a \
--tunnel-through-iap
Используйте приведенную ниже команду для подключения к экземпляру CloudSQL. При появлении запроса введите пароль, созданный на предыдущем шаге.
mysql -h 192.168.0.253 -u root -p
При успешном входе в систему отображается следующий результат:
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)]>
Используйте команду show databases; для проверки баз данных, созданных по умолчанию в MySQL.
MySQL [(none)]> show databases;
Подключение к экземпляру Cloud SQL с виртуальной машины в VPC3
Откройте SSH-сессию к csql-vpc3-vm.
gcloud compute ssh csql-vpc3-vm \
--zone=us-central1-a \
--tunnel-through-iap
Используйте приведенную ниже команду для подключения к экземпляру CloudSQL. При появлении запроса введите пароль, созданный на предыдущем шаге.
mysql -h 192.168.0.253 -u root -p
Сеанс с виртуальной машины, расположенной в VPC3, завершается с ошибкой, поскольку отсутствует канал передачи данных от VPC3 к конечной точке подключения частной службы. Используйте сочетание клавиш для выхода из сеанса.
Ctrl + C
5. Центр сетевого подключения
Обзор
В этом разделе мы настроим NCC Hub с помощью команд gcloud. NCC Hub будет выступать в качестве управляющей плоскости, отвечающей за построение пути передачи данных от периферийных узлов VPC к конечной точке Private Service Connect.

Включить API-сервисы
Включите API для подключения к сети, если он еще не включен:
gcloud services enable networkconnectivity.googleapis.com
Создать центр NCC
Используйте приведенную ниже команду gcloud для создания хаба NCC. Флаг "–export-psc" указывает хабу NCC распространять информацию об известных конечных точках PSC на все периферийные узлы VPC.
hub_name="ncc-hub"
gcloud network-connectivity hubs create "${hub_name}" \
--export-psc
Опишите недавно созданный NCC Hub. Укажите его название и связанный с ним путь.
gcloud network-connectivity hubs describe ncc-hub
Настройте VPC1 как периферийную сеть 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
Настройте VPC3 в качестве периферийного узла 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
Используйте приведенную ниже команду, чтобы проверить таблицу маршрутизации NCC Hub на наличие маршрута к подсети PSC.
gcloud network-connectivity hubs route-tables routes list \
--route_table=default \
--hub=ncc-hub
6. Проверьте путь передачи данных NCC.
На этом этапе мы проверим цепочку передачи данных между гибридной сетью NCC и периферийной сетью VPC.
Проверьте настроенный NCC путь передачи данных к конечной точке Cloud SQL Instances PSC.
Используйте результаты выполнения этих команд gcloud для входа в локальную виртуальную машину.
gcloud compute instances list --filter="name=csql-vpc3-vm"
Войдите в систему виртуальной машины, расположенной в локальной сети.
gcloud compute ssh csql-vpc3-vm \
--zone=us-central1-a \
--tunnel-through-iap
Используйте приведенную ниже команду mysql для подключения к экземпляру CloudSQL. При появлении запроса введите пароль, созданный на предыдущем шаге.
mysql -h 192.168.0.253 -u root -p
При успешном входе в систему отображается следующий результат:
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)
Используйте команду `show databases;` для проверки баз данных, созданных по умолчанию в MySQL.
MySQL [(none)]> show databases;
7. Уборка
Войдите в облачную оболочку и удалите ресурсы GCP.
Удалите конечные точки 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
Удалите экземпляр CloudSQL.
gcloud sql instances delete mysql-instance --quiet
Удалить правила брандмауэра
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}"
Удалите экземпляры GCE в VPC1 и 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
Удалите спицы 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
Удалить NCC Hub
hub_name="ncc-hub"
gcloud network-connectivity hubs delete "${hub_name}" \
--project=${project}
Удалите подсети во всех 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
Удалите VPC1 и VPC3.
gcloud compute networks delete vpc1-spoke vpc3-spoke
8. Поздравляем!
Вы завершили распространение сигнала Private Service Connect в Network Connectivity Center Lab!
Что вы осветили
- Распространение сигнала на конечные точки Private Service Connect через Network Connectivity Center
Следующие шаги