Использование статических маршрутов IPv6: экземпляр следующего перехода (без тегов и тегов), адрес следующего перехода и шлюз следующего перехода.

1. Введение

Статические пользовательские маршруты влияют на поведение маршрутизации по умолчанию в VPC. Пользовательские маршруты IPv6 теперь поддерживают новые атрибуты следующего перехода: next-hop-gateway, next-hop-instance и next-hop-address. В этом практическом занятии описывается, как использовать пользовательские маршруты IPv6 с этими новыми параметрами следующего перехода, используя две VPC, соединенные экземпляром виртуальной машины с несколькими сетевыми адаптерами. Вы также продемонстрируете смешивание адресации ULA и GUA и обеспечение доступности VPC ULA для доступа к общедоступному интернету с помощью новой возможности пользовательских маршрутов.

Что вы узнаете

  • Как создать пользовательский маршрут IPv6 с указанием следующего экземпляра маршрута (next-hop-instance).
  • Как создать пользовательский маршрут IPv6 с указанием следующего шлюза (next-hop-gateway).
  • Как создать пользовательский маршрут IPv6 с указанием адреса следующего перехода.

Что вам понадобится

  • Проект Google Cloud

2. Прежде чем начать

Обновите проект, чтобы он поддерживал практическое занятие.

В этом практическом занятии используется переменная `$variables` для упрощения настройки gcloud в Cloud Shell.

Внутри Cloud Shell выполните следующие действия.

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
export projectname=$(gcloud config list --format="value(core.project)")

Общая архитектура лаборатории

eae86f3e371e74b8.png

Для демонстрации обоих типов пользовательских маршрутов перехода к следующему узлу вам потребуется создать 3 VPC: клиентскую VPC, использующую адресацию GUA, серверную VPC, использующую адресацию ULA, и вторую серверную VPC, также использующую адресацию GUA.

Для доступа клиентской VPC к серверу ULA необходимо использовать пользовательский маршрут, указывающий на экземпляр следующего перехода и адрес следующего перехода, на многосетевой шлюз. Для обеспечения доступа к серверу GUA (после удаления маршрута по умолчанию ::/0) необходимо использовать пользовательский маршрут с адресом следующего перехода, указывающим на шлюз по умолчанию в Интернете, для обеспечения маршрутизации через Интернет.

3. Настройка клиентской VPC

Создайте клиентскую VPC.

Внутри Cloud Shell выполните следующие действия:

gcloud compute networks create client-vpc \
    --project=$projectname \
    --subnet-mode=custom \
    --mtu=1500 --bgp-routing-mode=regional

Создайте клиентскую подсеть.

Внутри Cloud Shell выполните следующие действия:

gcloud compute networks subnets create client-subnet  \
    --network=client-vpc \
    --project=$projectname \
    --range=192.168.1.0/24 \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=external \
    --region=us-central1

Запишите назначенную подсеть GUA в переменную среды, используя эту команду.

export client_subnet=$(gcloud compute networks subnets \
    describe client-subnet \
    --project $projectname \
    --format="value(externalIpv6Prefix)" \
    --region us-central1)

Запуск экземпляра клиента

Внутри Cloud Shell выполните следующие действия:

gcloud compute instances create client-instance \
    --subnet client-subnet \
    --stack-type IPV4_IPV6 \
    --zone us-central1-a \
    --project=$projectname

Добавьте правило брандмауэра для трафика клиентских VPC.

Внутри Cloud Shell выполните следующие действия:

gcloud compute firewall-rules create allow-gateway-client \
    --direction=INGRESS --priority=1000 \
    --network=client-vpc --action=ALLOW \
    --rules=tcp --source-ranges=$client_subnet \
    --project=$projectname 

Добавьте правило брандмауэра, разрешающее IAP для экземпляра клиента.

Внутри Cloud Shell выполните следующие действия:

gcloud compute firewall-rules create allow-iap-client \
    --direction=INGRESS --priority=1000 \
    --network=client-vpc --action=ALLOW \
    --rules=tcp:22 --source-ranges=35.235.240.0/20 \
    --project=$projectname 

Подтвердите SSH-доступ к экземпляру клиента.

Внутри Cloud Shell войдите в клиентский экземпляр:

gcloud compute ssh client-instance \
    --project=$projectname \
    --zone=us-central1-a \
    --tunnel-through-iap

В случае успеха вы увидите окно терминала клиентского приложения. Выйдите из SSH-сессии, чтобы продолжить выполнение практического задания.

4. Настройка VPC на сервере ULA

Создайте VPC на сервере ULA.

Внутри Cloud Shell выполните следующие действия:

gcloud compute networks create server-vpc1 \
    --project=$projectname \
    --subnet-mode=custom --mtu=1500 \
    --bgp-routing-mode=regional \
    --enable-ula-internal-ipv6

Создайте подсети серверов ULA.

Внутри Cloud Shell выполните следующие действия:

gcloud compute networks subnets create server-subnet1 \
    --network=server-vpc1 \
    --project=$projectname \
    --range=192.168.0.0/24 \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=internal \
    --region=us-central1

Запишите назначенную подсеть ULA в переменную среды, используя эту команду.

export server_subnet1=$(gcloud compute networks subnets \
    describe server-subnet1 \
    --project $projectname \
    --format="value(internalIpv6Prefix)" \
    --region us-central1)

Запустите виртуальную машину сервера с внутренним IPv6-адресом ULA.

Внутри Cloud Shell выполните следующие действия:

gcloud compute instances create server-instance1 \
    --subnet server-subnet1 \
    --stack-type IPV4_IPV6 \
    --zone us-central1-a \
    --project=$projectname

Добавьте правило брандмауэра, разрешающее доступ к серверу с клиентских устройств.

Внутри Cloud Shell выполните следующие действия:

gcloud compute firewall-rules create allow-client-server1 \
    --direction=INGRESS --priority=1000 \
    --network=server-vpc1 --action=ALLOW \
    --rules=tcp --source-ranges=$client_subnet \
    --project=$projectname 

Добавьте правило брандмауэра для разрешения использования IAP.

Внутри Cloud Shell выполните следующие действия:

gcloud compute firewall-rules create allow-iap-server1 \
    --direction=INGRESS --priority=1000 \
    --network=server-vpc1 --action=ALLOW \
    --rules=tcp:22 \
    --source-ranges=35.235.240.0/20 \
    --project=$projectname 

Установите Apache в экземпляре сервера ULA.

Внутри Cloud Shell войдите в клиентский экземпляр:

gcloud compute ssh server-instance1 \
    --project=$projectname \
    --zone=us-central1-a \
    --tunnel-through-iap

Внутри оболочки виртуальной машины сервера выполните следующую команду.

sudo apt update && sudo apt -y install apache2

Убедитесь, что Apache запущен.

sudo systemctl status apache2

Замените веб-страницу по умолчанию.

echo '<!doctype html><html><body><h1>Hello World! From Server1!</h1></body></html>' | sudo tee /var/www/html/index.html

Чтобы продолжить выполнение практического задания, выйдите из SSH-сессии.

5. Настройка VPC на сервере GUA

Создайте VPC для GUA-сервера.

Внутри Cloud Shell выполните следующие действия:

gcloud compute networks create server-vpc2 \
    --project=$projectname \
    --subnet-mode=custom --mtu=1500 \
    --bgp-routing-mode=regional

Создайте подсети для серверов GUA.

Внутри Cloud Shell выполните следующие действия:

gcloud compute networks subnets create server-subnet2 \
    --network=server-vpc2 \
    --project=$projectname \
    --range=192.168.0.0/24 \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=external \
    --region=us-central1

Запишите назначенную подсеть GUA в переменную среды, используя эту команду.

export server_subnet2=$(gcloud compute networks subnets \
    describe server-subnet2 \
    --project $projectname \
    --format="value(externalIpv6Prefix)" \
    --region us-central1)

Запустите виртуальную машину сервера с IP-адресом GUA IPv6.

Внутри Cloud Shell выполните следующие действия:

gcloud compute instances create server-instance2 \
    --subnet server-subnet2 \
    --stack-type IPV4_IPV6 \
    --zone us-central1-a \
    --project=$projectname

Добавьте правило брандмауэра, разрешающее доступ внутри подсети.

Внутри Cloud Shell выполните следующие действия:

gcloud compute firewall-rules create allow-client-server2 \
    --direction=INGRESS \
    --priority=1000 \
    --network=server-vpc2 \
    --action=ALLOW \
    --rules=tcp --source-ranges=$client_subnet \
    --project=$projectname 

Добавьте правило брандмауэра для разрешения использования IAP.

Внутри Cloud Shell выполните следующие действия:

gcloud compute firewall-rules create allow-iap-server2 \
    --direction=INGRESS \
    --priority=1000 \
    --network=server-vpc2 \
    --action=ALLOW \
    --rules=tcp:22 \
    --source-ranges=35.235.240.0/20 \
    --project=$projectname 

Подтвердите SSH-доступ к экземпляру сервера GUA и установите Apache.

Внутри Cloud Shell войдите в клиентский экземпляр:

gcloud compute ssh server-instance2 \
    --project=$projectname \
    --zone=us-central1-a \
    --tunnel-through-iap

Внутри оболочки виртуальной машины сервера выполните следующую команду.

sudo apt update && sudo apt -y install apache2

Убедитесь, что Apache запущен.

sudo systemctl status apache2

Замените веб-страницу по умолчанию.

echo '<!doctype html><html><body><h1>Hello World! From Server2!</h1></body></html>' | sudo tee /var/www/html/index.html

Чтобы продолжить выполнение практического задания, выйдите из SSH-сессии.

6. Создайте экземпляр шлюза.

Удалите маршрут по умолчанию из клиентской VPC.

В рамках подготовки к перенаправлению трафика ULA v6 на многосетевой экземпляр и отключению исходящей маршрутизации в интернете, удалите маршрут ::/0 по умолчанию, указывающий на шлюз интернета по умолчанию.

Внутри Cloud Shell выполните следующие действия:

export client_defroutename=$(gcloud compute routes list \
--project $projectname \
--format='value(name)' \
--filter="network:client-vpc AND destRange~'::/0'")

gcloud compute routes delete $client_defroutename \
--project $projectname \
--quiet

Запуск виртуальной машины шлюза с несколькими сетевыми адаптерами

Внутри Cloud Shell выполните следующие действия: Внутри Cloud Shell выполните следующие действия:

gcloud compute instances create gateway-instance \
    --project=$projectname \
    --zone=us-central1-a \
--network-interface=stack-type=IPV4_IPV6,subnet=client-subnet,no-address \
--network-interface=stack-type=IPV4_IPV6,subnet=server-subnet1,no-address \
    --can-ip-forward

Настройка экземпляра шлюза

Внутри Cloud Shell войдите в экземпляр шлюза (для успешного подключения по SSH может потребоваться несколько минут, пока экземпляр загружается):

gcloud compute ssh gateway-instance \
    --project=$projectname \
    --zone=us-central1-a \
    --tunnel-through-iap

Внутри оболочки виртуальной машины шлюза выполните следующую команду, чтобы включить пересылку IPv6 и продолжить принимать запросы на пересылку с включенной пересылкой (accept_ra = 2).

sudo sysctl -w net.ipv6.conf.ens4.accept_ra=2
sudo sysctl -w net.ipv6.conf.ens5.accept_ra=2
sudo sysctl -w net.ipv6.conf.ens4.accept_ra_defrtr=1
sudo sysctl -w net.ipv6.conf.all.forwarding=1

Проверьте таблицу маршрутизации IPv6 на экземпляре.

ip -6 route show

Пример выходных данных, показывающий маршруты подсетей ULA и GUA, при этом маршрут по умолчанию указывает на интерфейс GUA.

::1 dev lo proto kernel metric 256 pref medium
2600:1900:4000:7a7f:0:1:: dev ens4 proto kernel metric 256 expires 83903sec pref medium
2600:1900:4000:7a7f::/65 via fe80::4001:c0ff:fea8:101 dev ens4 proto ra metric 1024 expires 88sec pref medium
fd20:3df:8d5c::1:0:0 dev ens5 proto kernel metric 256 expires 83904sec pref medium
fd20:3df:8d5c::/64 via fe80::4001:c0ff:fea8:1 dev ens5 proto ra metric 1024 expires 84sec pref medium
fe80::/64 dev ens5 proto kernel metric 256 pref medium
fe80::/64 dev ens4 proto kernel metric 256 pref medium
default via fe80::4001:c0ff:fea8:101 dev ens4 proto ra metric 1024 expires 88sec pref medium

Чтобы продолжить выполнение практического задания, выйдите из SSH-сессии.

7. Создайте и протестируйте маршруты к экземпляру шлюза (используя имя экземпляра).

В этом разделе вы добавите маршруты как к клиентской, так и к серверной VPC, используя имя экземпляра шлюза в качестве следующего перехода.

Запишите адреса серверов.

Внутри Cloud Shell выполните следующие действия:

gcloud compute instances list \
   --project $projectname \
   --filter="name~server-instance" \
--format='value[separator=","](name,networkInterfaces[0].ipv6Address,networkInterfaces[0].ipv6AccessConfigs[0].externalIpv6)'

В результате должны отобразиться имена экземпляров серверов и их префиксы IPv6. Пример вывода.

server-instance1,fd20:3df:8d5c:0:0:0:0:0,
server-instance2,,2600:1900:4000:71fd:0:0:0:0

Запишите оба адреса, так как они понадобятся вам позже в командах curl с клиентского компьютера. К сожалению, для их хранения сложно использовать переменные окружения, поскольку они не передаются по SSH-сессиям.

Выполните команду curl с клиентской стороны на экземпляр сервера ULA.

Чтобы увидеть поведение до добавления новых маршрутов, выполните команду curl с клиентского экземпляра на серверный экземпляр1.

Внутри Cloud Shell войдите в клиентский экземпляр:

gcloud compute ssh client-instance \
    --project=$projectname \
    --zone=us-central1-a \
    --tunnel-through-iap

Внутри клиентского экземпляра выполните команду curl, используя IPv6-адрес ULA экземпляра server1 (команда устанавливает короткий тайм-аут в 5 секунд, чтобы избежать слишком долгого ожидания curl).

curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'

Эта команда curl должна завершиться по истечении времени ожидания, поскольку у клиентской VPC пока нет маршрута к серверной VPC.

Давайте попробуем это исправить! Пока что выйдем из SSH-сессии.

Добавьте пользовательский маршрут в клиентскую VPC.

Поскольку в клиентской VPC отсутствует маршрут к префиксу ULA, давайте добавим его сейчас.

Внутри Cloud Shell выполните следующие действия:

gcloud compute routes create client-to-server1-route \
   --project=$projectname \
   --destination-range=$server_subnet1 \
   --network=client-vpc \
   --next-hop-instance=gateway-instance \
   --next-hop-instance-zone=us-central1-a

Подключитесь к клиентскому экземпляру по SSH:

gcloud compute ssh client-instance \
    --project=$projectname \
    --zone=us-central1-a \
    --tunnel-through-iap

Внутри клиентского экземпляра повторите попытку выполнения команды curl к серверному экземпляру. (Команда устанавливает короткий тайм-аут в 5 секунд, чтобы избежать слишком долгого ожидания curl).

curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'

Эта команда curl по-прежнему выдает ошибку тайм-аута, потому что VPC сервера 1 еще не имеет маршрута обратно к клиентской VPC через экземпляр шлюза.

Чтобы продолжить выполнение практического задания, выйдите из SSH-сессии.

Добавление пользовательского маршрута в VPC сервера ULA

Внутри Cloud Shell выполните следующие действия:

gcloud compute routes create server1-to-client-route \
   --project=$projectname \
   --destination-range=$client_subnet \
   --network=server-vpc1 \
   --next-hop-instance=gateway-instance \
   --next-hop-instance-zone=us-central1-a

Подключитесь к клиентскому экземпляру по SSH:

gcloud compute ssh client-instance \
    --project=$projectname \
    --zone=us-central1-a \
    --tunnel-through-iap

Внутри клиентского экземпляра попробуйте еще раз выполнить команду curl к серверному экземпляру.

curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'

Эта команда curl теперь выполняется успешно, что подтверждает наличие сквозной доступности от клиентского экземпляра к серверному экземпляру ULA. Такое соединение теперь возможно только при использовании пользовательских маршрутов IPv6 с указанием next-hop-instance в качестве следующего узла.

Пример выходных данных

<user id>@client-instance:~$ curl -m 5.0 -g -6 'http://[fd20:3df:8d5c:0:0:0:0:0]:80/'
<!doctype html><html><body><h1>Hello World! From Server1!</h1></body></html>

Чтобы продолжить выполнение практического задания, выйдите из SSH-сессии.

8. Создайте и протестируйте маршруты к экземпляру шлюза (используя адрес экземпляра).

В этом разделе вы добавите маршруты как к клиентской, так и к серверной VPC, используя IPv6-адрес экземпляра шлюза в качестве следующего перехода.

Удалить предыдущие маршруты

Давайте восстановим среду до состояния, предшествующего добавлению каких-либо пользовательских маршрутов, удалив пользовательские маршруты, использующие имя экземпляра.

Внутри Cloud Shell выполните следующие действия:

gcloud compute routes delete client-to-server1-route  --quiet --project=$projectname
gcloud compute routes delete server1-to-client-route  --quiet --project=$projectname

Выполните команду curl с клиентской стороны на экземпляр сервера ULA.

Чтобы убедиться в успешном удалении предыдущих маршрутов, выполните команду curl с клиентского экземпляра на серверный экземпляр1.

Внутри Cloud Shell войдите в клиентский экземпляр:

gcloud compute ssh client-instance \
    --project=$projectname \
    --zone=us-central1-a \
    --tunnel-through-iap

Внутри клиентского экземпляра выполните команду curl, используя IPv6-адрес ULA экземпляра server1 (команда устанавливает короткий тайм-аут в 5 секунд, чтобы избежать слишком долгого ожидания curl).

curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'

Эта команда curl должна завершиться по истечении времени ожидания, поскольку у клиентской VPC больше нет маршрута к серверной VPC.

Получить IPv6-адреса экземпляров шлюза

Нам потребуется получить IPv6-адреса экземпляра шлюза, прежде чем мы сможем писать маршруты, использующие адрес следующего перехода.

Внутри Cloud Shell выполните следующие действия:

export gateway_ula_address=$(gcloud compute instances \
   describe gateway-instance \
   --project $projectname  \
   --format='value(networkInterfaces[1].ipv6Address)')

export gateway_gua_address=$(gcloud compute instances \
   describe gateway-instance \
   --project $projectname  \
   --format='value(networkInterfaces[0].ipv6AccessConfigs[0].externalIpv6)')

Добавьте пользовательский маршрут в клиентскую VPC.

Теперь мы можем повторно добавить маршрут в клиентскую VPC, используя префикс ULA, но вместо этого в качестве следующего перехода будет использоваться адрес шлюза GUA.

Внутри Cloud Shell выполните следующие действия:

gcloud compute routes create client-to-server1-route \
   --project=$projectname \
   --destination-range=$server_subnet1 \
   --network=client-vpc \
   --next-hop-address=$gateway_gua_address

Подключитесь к клиентскому экземпляру по SSH:

gcloud compute ssh client-instance \
    --project=$projectname \
    --zone=us-central1-a \
    --tunnel-through-iap

Внутри клиентского экземпляра попробуйте снова выполнить команду curl к серверному экземпляру.

curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'

Как и ожидалось, эта команда curl по-прежнему выдает ошибку тайм-аута, поскольку VPC сервера 1 еще не имеет маршрута обратно к клиентской VPC через экземпляр шлюза.

Чтобы продолжить выполнение практического задания, выйдите из SSH-сессии.

Добавление пользовательского маршрута в VPC сервера ULA

Внутри Cloud Shell выполните следующие действия:

gcloud compute routes create server1-to-client-route \
   --project=$projectname \
   --destination-range=$client_subnet \
   --network=server-vpc1 \
   --next-hop-address=$gateway_ula_address

Подключитесь к клиентскому экземпляру по SSH:

gcloud compute ssh client-instance \
    --project=$projectname \
    --zone=us-central1-a \
    --tunnel-through-iap

Внутри клиентского экземпляра попробуйте еще раз выполнить команду curl к серверному экземпляру.

curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'

Эта команда curl теперь выполняется успешно, что подтверждает наличие сквозной доступности от клиентского экземпляра к серверному экземпляру ULA. Такое соединение теперь возможно только при использовании пользовательских маршрутов IPv6 с адресом следующего перехода в качестве следующего узла.

Пример выходных данных

<user id>@client-instance:~$ curl -m 5.0 -g -6 'http://[fd20:3df:8d5c:0:0:0:0:0]:80/'
<!doctype html><html><body><h1>Hello World! From Server1!</h1></body></html>

Чтобы продолжить выполнение практического задания, выйдите из SSH-сессии.

9. Создайте и протестируйте маршрут к интернет-шлюзу.

Пока у вас настроена эта лабораторная среда, давайте также протестируем функциональность нового свойства next-hop: next-hop-gateway.

Выполните команду curl с клиентской стороны на экземпляр сервера GUA.

Чтобы увидеть поведение системы до добавления новых маршрутов, выполните команду curl с клиентского экземпляра по IP-адресу сервера server2.

Внутри Cloud Shell войдите в клиентский экземпляр:

gcloud compute ssh client-instance \
    --project=$projectname \
    --zone=us-central1-a \
    --tunnel-through-iap

Внутри клиентского экземпляра выполните команду curl для доступа к конечной точке IPv6.

curl -m 5.0 -g -6 'http://[GUA-ipv6-address-of-server2]:80/'

Эта команда curl должна завершиться по таймауту, поскольку у клиентской VPC есть только собственный маршрут подсети и маршрут к VPC сервера 1. Чтобы получить доступ к диапазону GUA VPC сервера 2, необходимо использовать шлюз интернета по умолчанию через пользовательский маршрут.

Чтобы продолжить выполнение практического задания, выйдите из SSH-сессии.

Добавьте пользовательский маршрут шлюза в клиентскую VPC.

Внутри Cloud Shell выполните следующие действия:

gcloud compute routes create client-to-server2-route \
   --project=$projectname \
   --destination-range=$server_subnet2 \
   --network=client-vpc \
   --next-hop-gateway=default-internet-gateway

Подключитесь к клиентскому экземпляру по SSH:

gcloud compute ssh client-instance \
    --project=$projectname \
    --zone=us-central1-a \
    --tunnel-through-iap

Внутри клиентского экземпляра повторите тот же запрос curl.

curl -m 5.0 -g -6 'http://[GUA-ipv6-address-of-server2]:80/'

Теперь эта команда curl должна успешно вернуть пользовательское сообщение "hello", указывающее на то, что вы успешно достигли IPv6-адреса другого сервера через шлюз по умолчанию.

Пример выходных данных:

<user id>@client-instance:~$ curl -m 5.0 -g -6 'http://[2600:1900:4000:71fd:0:0:0:0]:80/'
<!doctype html><html><body><h1>Hello World! From Server2!</h1></body></html>

Выйдите из сеанса SSH, чтобы перейти к разделу очистки лабораторной работы.

10. Уборка

Очистка экземпляров

Внутри Cloud Shell выполните следующие действия:

gcloud compute instances delete client-instance --zone us-central1-a --quiet --project=$projectname

gcloud compute instances delete server-instance1 --zone us-central1-a --quiet --project=$projectname

gcloud compute instances delete server-instance2 --zone us-central1-a --quiet --project=$projectname

gcloud compute instances delete gateway-instance --zone us-central1-a --quiet --project=$projectname

Очистка подсетей

Внутри Cloud Shell выполните следующие действия:

gcloud compute networks subnets delete client-subnet --region=us-central1 --quiet --project=$projectname

gcloud compute networks subnets delete server-subnet1 --region=us-central1 --quiet --project=$projectname

gcloud compute networks subnets delete server-subnet2 --region=us-central1 --quiet --project=$projectname

Очистка правил брандмауэра

Внутри Cloud Shell выполните следующие действия:

gcloud compute firewall-rules delete allow-iap-client  --quiet --project=$projectname
gcloud compute firewall-rules delete allow-iap-server1  --quiet --project=$projectname
gcloud compute firewall-rules delete allow-iap-server2  --quiet --project=$projectname
gcloud compute firewall-rules delete allow-gateway-client  --quiet --project=$projectname
gcloud compute firewall-rules delete allow-client-server1  --quiet --project=$projectname
gcloud compute firewall-rules delete allow-client-server2  --quiet --project=$projectname

Устранить неполадки в пользовательских маршрутах

Внутри Cloud Shell выполните следующие действия:

gcloud compute routes delete client-to-server1-route  --quiet --project=$projectname
gcloud compute routes delete client-to-server2-route  --quiet --project=$projectname
gcloud compute routes delete server1-to-client-route  --quiet --project=$projectname

Очистка VPC

Внутри Cloud Shell выполните следующие действия:

gcloud compute networks delete client-vpc --quiet --project=$projectname
gcloud compute networks delete server-vpc1 --quiet --project=$projectname
gcloud compute networks delete server-vpc2 --quiet --project=$projectname

11. Поздравляем!

Вы успешно использовали статические пользовательские маршруты IPv6 с параметрами next-hops, установленными на next-hop-gateway, next-hop-instance и next-hop-address. Вы также проверили сквозную связь IPv6 с использованием этих маршрутов.

Что дальше?

Посмотрите некоторые из этих практических занятий по программированию...

Дополнительная литература и видеоматериалы

Справочная документация