Лабораторная работа: NCC Site to Site с устройством flexiWAN SD-WAN.

1. Введение

Обзор

В этой лабораторной работе вы изучите некоторые функции Центра управления сетевыми подключениями.

Центр управления сетевыми подключениями (NCC) — это модель управления с использованием архитектуры «звезда» для управления сетевыми подключениями в Google Cloud. Ресурс «звезда» предоставляет централизованную модель управления подключениями для соединения «звезд». В настоящее время NCC поддерживает следующие сетевые ресурсы в качестве «звезд»:

  • Подключение VLAN
  • Маршрутизаторы
  • HA VPN

Для работы с Codelabs требуется решение flexiWAN SaaS SD-WAN , упрощающее развертывание и управление WAN. flexWAN — это решение с открытым исходным кодом для SD-WAN и SASE.

Что вы построите

В этом практическом занятии вы создадите топологию SD-WAN типа «звезда» для имитации удаленных филиалов, которые будут использовать магистральную сеть Google для связи между площадками и облаком, а также между самими площадками.

  1. Вам потребуется развернуть пару виртуальных машин GCE, настроенных для агента SD-WAN "flexiWAN", в центральной VPC, которые будут представлять собой головные станции для входящего и исходящего трафика в GCP.
  2. Разверните два удаленных маршрутизатора flexiWAN SD-WAN, чтобы представить две разные VPC филиалов.
  3. Для тестирования пути передачи данных вам потребуется настроить три виртуальные машины GCE для имитации локальных клиентов и сервера, размещенных в GCP.

84e31c667a487f7a.png

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

  • Использование NCC для соединения удаленных филиалов с помощью решения на основе программно-определяемой глобальной сети (SDN) с открытым исходным кодом.
  • Практический опыт работы с программно-определяемым решением WAN с открытым исходным кодом.

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

  • Знание сети GCP VPC
  • Знание Cloud Router и маршрутизации BGP.
  • Для работы Codelab требуется 6 VPC. Проверьте свою квоту:сети и запросите дополнительные сети, если необходимо (скриншот ниже):

6bc606cb34bce7e8.png

2. Цели

  • Настройка среды GCP
  • Разверните экземпляры flexiWAN Edge в GCP.
  • Создайте NCC Hub и flexiWAN Edge NVA в качестве периферийного узла.
  • Настраивайте и управляйте экземплярами flexiWAN с помощью flexiManage.
  • Настройте обмен маршрутами BGP между vpc-app-svcs и flexiWAN NVA.
  • Создайте удаленный объект, имитирующий удаленный филиал клиента или центр обработки данных.
  • Создайте IPSEC-туннель между удаленным объектом и NVA.
  • Проверьте успешность развертывания устройств.
  • Проверка передачи данных с сайта в облако.
  • Проверка передачи данных между сайтами.
  • Очистка использованных ресурсов

Для прохождения аутентификации, подключения и управления экземплярами flexiEdge в рамках этого руководства необходимо создать бесплатную учетную запись flexiManage .

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

Использование консоли Google Cloud и Cloud Shell

Для взаимодействия с GCP в ходе этой лабораторной работы мы будем использовать как консоль Google Cloud, так и Cloud Shell.

Консоль Google Cloud

Доступ к консоли Cloud Console можно получить по адресу https://console.cloud.google.com .

Для упрощения настройки Центра сетевого подключения настройте следующие элементы в Google Cloud:

В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud.

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

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

Роли 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

3. Настройка среды сетевой лаборатории

Обзор

В этом разделе мы развернем сети VPC и правила брандмауэра.

377d97bf3066f259.png

Имитация локальных сетей филиалов

Эта сеть VPC содержит подсети для локальных экземпляров виртуальных машин.

Создайте локальные сети и подсети:

gcloud compute networks create site1-vpc \
--subnet-mode custom

gcloud compute networks create site2-vpc \
--subnet-mode custom

gcloud compute networks create s1-inside-vpc \
--subnet-mode custom

gcloud compute networks create s2-inside-vpc \
--subnet-mode custom

gcloud compute networks subnets create site1-subnet \
--network site1-vpc \
--range 10.10.0.0/24 \
--region us-central1

gcloud compute networks subnets create site2-subnet \
--network site2-vpc \
--range 10.20.0.0/24 \
--region us-east4

gcloud compute networks subnets create s1-inside-subnet \
--network s1-inside-vpc \
--range 10.10.1.0/24 \
--region us-central1

gcloud compute networks subnets create s2-inside-subnet \
--network s2-inside-vpc \
--range 10.20.1.0/24 \
--region us-east4

Создайте правила брандмауэра site1-vpc, разрешающие:

  • SSH, внутренний, IAP
  • ESP, UDP/500, UDP/4500
  • диапазон 10.0.0.0/8
  • 192.168.0.0/16 диапазон
gcloud compute firewall-rules create site1-ssh \--network site1-vpc \
--allow tcp:22

gcloud compute firewall-rules create site1-internal \
--network site1-vpc \
--allow all \
--source-ranges 10.0.0.0/8

gcloud compute firewall-rules create site1-cloud \
--network site1-vpc \
--allow all \
--source-ranges 192.168.0.0/16

gcloud compute firewall-rules create site1-vpn \
--network site1-vpc \
--allow esp,udp:500,udp:4500 \
--target-tags router

gcloud compute firewall-rules create site1-iap \
--network site1-vpc --allow tcp:22 --source-ranges=35.235.240.0/20

Создайте правила брандмауэра site2-vpc, разрешающие:

  • SSH, внутренний, IAP
  • диапазон 10.0.0.0/8
  • 192.168.0.0/16 диапазон
gcloud compute firewall-rules create site2-ssh \
--network site2-vpc \
--allow tcp:22

gcloud compute firewall-rules create site2-internal \
--network site2-vpc \
--allow all \
--source-ranges 10.0.0.0/8

gcloud compute firewall-rules create site2-cloud \
--network site1-vpc \
--allow all \
--source-ranges 192.168.0.0/16

gcloud compute firewall-rules create site2-vpn \
--network site1-vpc \
--allow esp,udp:500,udp:4500 \
--target-tags router

gcloud compute firewall-rules create site2-iap \
--network site2-vpc --allow tcp:22 --source-ranges=35.235.240.0/20

Создайте правила брандмауэра s1-inside-vpc, разрешающие:

  • SSH, внутренний, IAP
  • диапазон 10.0.0.0/8
  • 192.168.0.0/16 диапазон
gcloud compute firewall-rules create s1-inside-ssh \
--network s1-inside-vpc \
--allow tcp:22

gcloud compute firewall-rules create s1-inside-internal \
--network s1-inside-vpc \
--allow all \
--source-ranges 10.0.0.0/8

gcloud compute firewall-rules create s1-inside-cloud \
--network s1-inside-vpc  \
--allow all \
--source-ranges 192.168.0.0/16

gcloud compute firewall-rules create s1-inside-iap \
--network site2-vpc --allow tcp:22 --source-ranges=35.235.240.0/20

Создайте правила брандмауэра s2-inside-vpc, разрешающие:

  • SSH, внутренний, IAP
  • диапазон 10.0.0.0/8
  • 192.168.0.0/16 диапазон
gcloud compute firewall-rules create s2-inside-ssh \
--network s2-inside-vpc \
--allow tcp:22

gcloud compute firewall-rules create s2-inside-internal \
--network s2-inside-vpc \
--allow all \
--source-ranges 10.0.0.0/8

gcloud compute firewall-rules create s2-inside-cloud \
--network s2-inside-vpc  \
--allow all \
--source-ranges 192.168.0.0/16

gcloud compute firewall-rules create s2-inside-iap \
--network site2-vpc --allow tcp:22 --source-ranges=35.235.240.0/20

Для целей тестирования создайте экземпляры s1-inside-vm и s2-inside-vm

gcloud compute instances create s1-vm \
--zone=us-central1-a \
--machine-type=e2-micro \
--network-interface subnet=s1-inside-subnet,private-network-ip=10.10.1.3,no-address

gcloud compute instances create s2-vm \
--zone=us-east4-b \
--machine-type=e2-micro \
--network-interface subnet=s2-inside-subnet,private-network-ip=10.20.1.3,no-address

Имитация сетевой среды облака GCP

Для обеспечения межрегионального трафика между площадками через сеть hub-vpc и периферийные узлы необходимо включить глобальную маршрутизацию в сети hub-vpc . Подробнее см. в разделе « Обмен маршрутами NCC».

  1. Создайте сеть и подсети hub-vpc :
gcloud compute networks create hub-vpc \
--subnet-mode custom \
--bgp-routing-mode=global

gcloud compute networks subnets create hub-subnet1 \
--network hub-vpc \
--range 10.1.0.0/24 \
--region us-central1

gcloud compute networks subnets create hub-subnet2 \
--network hub-vpc \
--range 10.2.0.0/24 \
--region us-east4
  1. Создайте сеть и подсети workload-vpc :
gcloud compute networks create workload-vpc \
--subnet-mode custom \
--bgp-routing-mode=global

gcloud compute networks subnets create workload-subnet1 \
--network workload-vpc \
--range 192.168.235.0/24 \
--region us-central1

gcloud compute networks subnets create workload-subnet2 \
--network workload-vpc \
--range 192.168.236.0/24 \
--region us-east4
  1. Создайте правила брандмауэра Hub-VPC, разрешающие:
  • SSH
  • ESP, UDP/500, UDP/4500
  • Внутренний диапазон 10.0.0.0/8 (который охватывает TCP-порт 179, необходимый для сессии BGP от облачного маршрутизатора к маршрутизатору)
gcloud compute firewall-rules create hub-ssh \
--network hub-vpc \
--allow tcp:22

gcloud compute firewall-rules create hub-vpn \
--network hub-vpc \
--allow esp,udp:500,udp:4500 \
--target-tags router

gcloud compute firewall-rules create hub-internal \
--network hub-vpc \
--allow all \
--source-ranges 192.168.0.0/16

gcloud compute firewall-rules create hub-iap \
--network hub-vpc --allow tcp:22 --source-ranges=35.235.240.0/20
  1. Создайте правила брандмауэра Workload-VPC, разрешающие:
  • SSH
  • Внутренний диапазон 192.168.0.0/16 (который охватывает TCP-порт 179, необходимый для сессии BGP от облачного маршрутизатора к маршрутизатору)
gcloud compute firewall-rules create workload-ssh \
--network workload-vpc \
--allow tcp:22

gcloud compute firewall-rules create workload-internal \
--network workload-vpc \
--allow all \
--source-ranges 192.168.0.0/16

gcloud compute --project=$projectname firewall-rules create allow-from-site-1-2 --direction=INGRESS --priority=1000 --network=workload-vpc --action=ALLOW --rules=all --source-ranges=10.10.1.0/24,10.20.1.0/24

gcloud compute firewall-rules create workload-onprem \
--network hub-vpc \
--allow all \
--source-ranges 10.0.0.0/8

gcloud compute firewall-rules create workload-iap \
--network workload-vpc --allow tcp:22 --source-ranges=35.235.240.0/20
  1. Включите Cloud NAT в VPC рабочей нагрузки, чтобы разрешить виртуальной машине рабочей нагрузки 1 загружать пакеты, создав Cloud Router и NAT Gateway.
gcloud compute routers create cloud-router-usc-central-1-nat \
    --network workload-vpc \
    --region us-central1
gcloud compute routers nats create cloudnat-us-central1 \
    --router=cloud-router-usc-central-1-nat \
    --auto-allocate-nat-external-ips \
    --nat-all-subnet-ip-ranges \
    --region us-central1
  1. Создайте виртуальную машину workload1-vm in "us-central1-a" in workload-VPC . Вы будете использовать этот хост для проверки подключения сайта к облаку.
gcloud compute instances create workload1-vm \
    --project=$projectname \
    --machine-type=e2-micro \
    --image-family debian-10 \
    --image-project debian-cloud \
    --zone us-central1-a \
    --private-network-ip 192.168.235.3 \
        --no-address \
    --subnet=workload-subnet1 \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install apache2 -y
      sudo service apache2 restart
      echo 'Welcome to Workload VM1 !!' | tee /var/www/html/index.html
      EOF"

4. Настройка локальных устройств для SD-WAN

ec754b89e375f3cc.png

Создание локальной виртуальной машины для SDWAN (устройств).

В следующем разделе мы создадим маршрутизаторы site1-nva и site2-nva, которые будут выполнять функции локальных маршрутизаторов.

Создание экземпляров

Создайте виртуальное устройство site1-router с именем site1-nva.

gcloud compute instances create site1-nva \
--zone=us-central1-a \
--machine-type=e2-medium \
--network-interface subnet=site1-subnet \
--network-interface subnet=s1-inside-subnet,no-address \
--create-disk=auto-delete=yes,boot=yes,device-name=flex-gcp-nva-1,image=projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20220901,mode=rw,size=20,type=projects/$projectname/zones/us-central1-a/diskTypes/pd-balanced \
--no-shielded-secure-boot \
--shielded-vtpm \
--shielded-integrity-monitoring \
--reservation-affinity=any \
--can-ip-forward

Создайте виртуальное устройство site2-router с именем site2-nva.

gcloud compute instances create site2-nva \
--zone=us-east4-b \
--machine-type=e2-medium \
--network-interface subnet=site2-subnet \
--network-interface subnet=s2-inside-subnet,no-address \
--create-disk=auto-delete=yes,boot=yes,device-name=flex-gcp-nva-1,image=projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20220901,mode=rw,size=20,type=projects/$projectname/zones/us-east4-a/diskTypes/pd-balanced \
--no-shielded-secure-boot \
--shielded-vtpm \
--shielded-integrity-monitoring \
--reservation-affinity=any \
--can-ip-forward 

5. Установите flexiWAN на site1-nva

Установите SSH-соединение с site1-nva, если произойдет таймаут, попробуйте снова.

gcloud compute ssh site1-nva --zone=us-central1-a

Установите flexiWAN на site1-nva

sudo su 

sudo curl -sL https://deb.flexiwan.com/setup | sudo bash -
apt install flexiwan-router -y

Подготовьте виртуальную машину к регистрации в плоскости управления flexiWAN.

После завершения установки flexiWAN выполните команду fwsystem_checker , чтобы проверить конфигурацию вашей системы. Эта команда проверяет системные требования и помогает исправить ошибки конфигурации в вашей системе.

  • Выберите вариант 2 для быстрой и бесшумной настройки.
  • Затем завершите работу с кодом 0 .
  • Не закрывайте окно облачной оболочки.
root@site-1-nva-1:/home/user# fwsystem_checker
 
<output snipped>

        [0] - quit and use fixed parameters
         1  - check system configuration
         2  - configure system silently
         3  - configure system interactively
         4  - restore system checker settings to default
        ------------------------------------------------
Choose: 2

<output snipped>

        [0] - quit and use fixed parameters
         1  - check system configuration
         2  - configure system silently
         3  - configure system interactively
         4  - restore system checker settings to default
        ------------------------------------------------
Choose: 0
Please wait..
Done.
=== system checker ended ====

Оставьте сессию открытой для выполнения следующих шагов.

6. Зарегистрируйте site1-nva в контроллере SD-WAN.

Эти шаги необходимы для завершения настройки виртуального устройства flexiWAN NVA, администрируемого из консоли flexiManage . Перед продолжением убедитесь, что организация flexiWAN настроена.

Для аутентификации недавно развернутого сетевого модуля flexiWAN NVA в системе flexiManage используйте токен безопасности, войдя в свою учетную запись flexiManage. Один и тот же токен можно использовать для всех маршрутизаторов.

Выберите «Инвентарь» → «Токены», создайте токен и выберите «Копировать».

12c173b589d220ee.png

Вернитесь в Cloud Shell (site1-nva) и вставьте токен в каталог /etc/flexiwan/agent/token.txt, выполнив следующие действия.

nano /etc/flexiwan/agent/token.txt
#Paste the generated token obtain from flexiManage
#Exit session with CTRL+X and Select Y to save then enter

22e1cf5bad3d3086.png

Активируйте маршрутизаторы сайта в консоли flexiManage.

Войдите в консоль flexiManage, чтобы активировать site1-nva на контроллере.

В левой панели выберите «Инвентаризация» → «Устройства» и щелкните устройство «Неизвестное» .

f7719c28f78e907a.png

Введите имя хоста site1-nva и подтвердите устройство, переместив ползунок вправо.

9a6c6c45e1cad732.png

Выберите вкладку « Интерфейсы» .

Найдите столбец « Назначено », нажмите « Нет » и измените значение на « Да ».

a8772059968af13e.png

Выберите вкладку «Брандмауэр» и нажмите знак «+» , чтобы добавить правило брандмауэра для входящего трафика.

Выберите WAN-интерфейс, чтобы применить правило SSH, как описано ниже.

df03b8a6c817ccd2.png

Нажмите « Обновить устройство »

96b9feb77b8517cd.png

Запустите site1-nva с контроллера flexiWAN. Вернитесь в раздел «Инвентаризация» → «Устройства» → site1-nva и выберите «Запустить устройство».

708215cf91ffc09.png

Статус - Синхронизация

918d72eeacc386fa.png

Статус - Синхронизировано

5135096dbff49819.png

Предупреждающий индикатор можно просмотреть в разделе «Устранение неполадок» → «Уведомления» . После просмотра выберите все уведомления и отметьте их как прочитанные.

9e79db3572f91925.png

7. Установите flexiWAN на site2-nva

Откройте новую вкладку и создайте сессию Cloud Shell , обновите переменные $variables для упрощения настройки gcloud.

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

Установите SSH-соединение с site2-nva, если произойдет таймаут, попробуйте снова.

gcloud compute ssh site2-nva --zone=us-east4-b

Установите flexiWAN на site2-nva

sudo su 

sudo curl -sL https://deb.flexiwan.com/setup | sudo bash -
apt install flexiwan-router -y

Подготовьте виртуальную машину к регистрации в плоскости управления flexiWAN.

После завершения установки flexiWAN выполните команду fwsystem_checker , чтобы проверить конфигурацию вашей системы. Эта команда проверяет системные требования и помогает исправить ошибки конфигурации в вашей системе.

  • Выберите вариант 2 для быстрой и бесшумной настройки.
  • Затем завершите работу с кодом 0 .
  • Не закрывайте окно облачной оболочки.
root@site2-nva:/home/user# fwsystem_checker
 
<output snipped>

        [0] - quit and use fixed parameters
         1  - check system configuration
         2  - configure system silently
         3  - configure system interactively
         4  - restore system checker settings to default
        ------------------------------------------------
Choose: 2

<output snipped>

        [0] - quit and use fixed parameters
         1  - check system configuration
         2  - configure system silently
         3  - configure system interactively
         4  - restore system checker settings to default
        ------------------------------------------------
Choose: 0
Please wait..
Done.
=== system checker ended ====

8. Зарегистрируйте site2-nva в SD-WAN Controller.

Эти шаги необходимы для завершения настройки виртуального устройства flexiWAN NVA, администрируемого из консоли flexiManage . Перед продолжением убедитесь, что организация flexiWAN настроена.

Для аутентификации недавно развернутого сетевого модуля flexiWAN NVA в системе flexiManage используйте токен безопасности, войдя в свою учетную запись flexiManage. Один и тот же токен можно использовать для всех маршрутизаторов.

Выберите «Инвентарь» → «Токены» , создайте токен и выберите «Копировать».

12c173b589d220ee.png

Вернитесь в Cloud Shell (site2-nva) и вставьте токен в каталог /etc/flexiwan/agent/token.txt, выполнив следующие действия.

nano /etc/flexiwan/agent/token.txt
#Paste the generated token obtain from flexiManage
#Exit session with CTRL+X and Select Y to save then enter

22e1cf5bad3d3086.png

Активируйте маршрутизаторы сайта из консоли flexiManage.

Войдите в консоль flexiManage, чтобы активировать site2-nva на контроллере.

В левой панели выберите «Инвентаризация» → «Устройства» и щелкните устройство «Неизвестное» .

c98696cf67043ec2.png

Введите имя хоста site2-nva и подтвердите устройство, переместив ползунок вправо.

de418da3f581e0bd.png

Выберите вкладку « Интерфейсы» .

Найдите столбец « Назначено », нажмите « Нет » и измените значение на « Да ».

eee6a98dba7b2a04.png

Выберите вкладку «Брандмауэр» и нажмите знак «+» , чтобы добавить правило входящего трафика . Выберите интерфейс WAN, чтобы применить правило SSH, как описано ниже.

df03b8a6c817ccd2.png

Нажмите « Обновить устройство »

96b9feb77b8517cd.png

Запустите site2-nva с контроллера flexiWAN. Вернитесь в раздел «Инвентаризация» → «Устройства» → site2-nva и выберите «Запустить устройство».

c80291bb430dce7d.png

Статус - Синхронизация

da9c08ebfbd1265e.png

Статус - Синхронизировано

5135096dbff49819.png

Предупреждающий индикатор можно просмотреть в разделе «Устранение неполадок» → «Уведомления» . После просмотра выберите все уведомления и отметьте их как прочитанные.

2c21322b87d848b.png

9. Настройка центральных SDWAN-устройств

В следующем разделе вы создадите и зарегистрируете маршрутизаторы-концентраторы (hub-r1 и hub-r2) в контроллере flexiWAN, как это было сделано ранее с маршрутами сайта.

Откройте новую вкладку и создайте сессию Cloud Shell , обновите переменные $variables для упрощения настройки gcloud.

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

Создание экземпляров Hub NVA

Создайте виртуальное устройство hub-r1 :

gcloud compute instances create hub-r1 \
--zone=us-central1-a \
--machine-type=e2-medium \
--network-interface subnet=hub-subnet1 \
--network-interface subnet=workload-subnet1,no-address \
--can-ip-forward \
--create-disk=auto-delete=yes,boot=yes,device-name=flex-gcp-nva-1,image=projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20220901,mode=rw,size=20,type=projects/$projectname/zones/us-central1-a/diskTypes/pd-balanced \
--no-shielded-secure-boot \
--shielded-vtpm \
--shielded-integrity-monitoring \
--reservation-affinity=any

Создайте виртуальное устройство hub-r2 :

gcloud compute instances create hub-r2 \
--zone=us-east4-b \
--machine-type=e2-medium \
--network-interface subnet=hub-subnet2 \
--network-interface subnet=workload-subnet2,no-address \
--can-ip-forward \
--create-disk=auto-delete=yes,boot=yes,device-name=flex-gcp-nva-1,image=projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20220901,mode=rw,size=20,type=projects/$projectname/zones/us-east4-a/diskTypes/pd-balanced \
--no-shielded-secure-boot \
--shielded-vtpm \
--shielded-integrity-monitoring \
--reservation-affinity=any

10. Установите flexiWAN на экземплярах Hub для hub-r1.

Откройте SSH-соединение с hub-r1.

gcloud compute ssh hub-r1 --zone=us-central1-a

Установите агент flexiWAN на оба маршрутизатора hub-r1.

sudo su
sudo curl -sL https://deb.flexiwan.com/setup | sudo bash -
apt install flexiwan-router -y

Подготовьте виртуальные машины hub-r1 для регистрации в flexiWAN.

После завершения установки flexiWAN выполните команду fwsystem_checker , чтобы проверить конфигурацию вашей системы. Эта команда проверяет системные требования и помогает исправить ошибки конфигурации в вашей системе.

root@hub-r1:/home/user# fwsystem_checker
  • Выберите вариант 2 для быстрой и бесшумной настройки.
  • Затем завершите работу с кодом 0 .
  • Не закрывайте окно облачной оболочки.

11. Зарегистрируйте виртуальные машины hub-r1 на контроллере flexiManage.

Для аутентификации недавно развернутого сетевого виртуального устройства flexiWAN NVA в системе flexiManage используйте токен безопасности, войдя в свою учетную запись flexiManage.

  • Выберите «Инвентарь» → «Токены» и скопируйте токен.

Вернитесь в Cloud Shell (hub-r1) и вставьте токен в каталог /etc/flexiwan/agent/token.txt, выполнив следующие действия.

nano /etc/flexiwan/agent/token.txt
#Paste the generated token obtain from flexiManage
#Exit session with CTRL+X and Select Y to save then enter

12. Установите flexiWAN на экземплярах Hub для hub-r2.

Откройте SSH-соединение с hub-r2.

gcloud compute ssh hub-r2 --zone=us-east4-b

Установите агент flexiWAN на оба маршрутизатора Hub-R2.

sudo su
sudo curl -sL https://deb.flexiwan.com/setup | sudo bash -
apt install flexiwan-router -y

Подготовьте виртуальные машины hub-r2 к регистрации в flexiWAN.

После завершения установки flexiWAN выполните команду fwsystem_checker , чтобы проверить конфигурацию вашей системы. Эта команда проверяет системные требования и помогает исправить ошибки конфигурации в вашей системе.

root@hub-r2:/home/user# fwsystem_checker
  • Выберите вариант 2 для быстрой и бесшумной настройки.
  • Затем завершите работу с кодом 0 .
  • Не закрывайте окно облачной оболочки.

13. Зарегистрируйте виртуальные машины hub-r2 на контроллере flexiManage.

Для аутентификации недавно развернутого сетевого виртуального устройства flexiWAN NVA в системе flexiManage используйте токен безопасности, войдя в свою учетную запись flexiManage.

  • Выберите «Инвентарь» → «Токены» и скопируйте токен.

Вернитесь в Cloud Shell (hub-r2) и вставьте токен в каталог /etc/flexiwan/agent/token.txt, выполнив следующие действия.

nano /etc/flexiwan/agent/token.txt
#Paste the generated token obtain from flexiManage
#Exit session with CTRL+X and Select Y to save then enter

Активируйте маршрутизаторы-концентраторы hub-r1 в консоли flexiManage.

Войдите в консоль flexiManage.

  • Перейдите в раздел «Инвентарь» → «Устройства».
  • Найдите и отметьте, что имена хостов для hub-r1 и hub-r2 оба "неизвестны".

1a88ffa4409ad3c0.png

Выберите неизвестное устройство с именем хоста hub-r1.

  • Введите имя хоста hub-r1
  • Подтвердите работу устройства, переместив ползунок вправо.

Выберите вкладку « Интерфейсы» .

  • Найдите столбец «Назначено».
  • Рядом со строкой интерфейса нажмите «Нет» , чтобы изменить настройку на «Да».

Выберите вкладку «Брандмауэр» .

  • Нажмите « + », чтобы добавить правило входящего трафика в брандмауэр.
  • Выберите WAN-интерфейс, для которого будет действовать правило наследования.
  • Разрешите использование SSH-порта 22 с протоколом TCP.
  • Нажмите « Обновить устройство »

Запустите устройство hub-r1 для SD-WAN из контроллера flexiWAN.

  • Вернуться к списку → Устройства → hub-r1

Выберите « Запустить устройство ».

  • Дождитесь завершения синхронизации и обратите внимание на статус " работает ".

Активируйте маршрутизаторы-концентраторы hub-r2 в консоли flexiManage.

Выберите неизвестное устройство с именем хоста hub-r2.

  • Введите имя хоста hub-r2
  • Подтвердите работу устройства, переместив регулятор вправо.

Выберите вкладку «Интерфейсы».

  • Найдите столбец «Назначено».
  • Рядом со строкой интерфейса нажмите «Нет» , чтобы изменить настройку на «Да».

Выберите вкладку «Брандмауэр» .

  • Нажмите « + », чтобы добавить правило входящего трафика в брандмауэр.
  • Выберите WAN-интерфейс, для которого будет действовать правило наследования.
  • Разрешите использование SSH-порта 22 с протоколом TCP.
  • Нажмите «Добавить правило».
  • Нажмите « Обновить устройство »

Запустите устройство hub-r2 для SD-WAN из контроллера flexiWAN.

  • Вернитесь в раздел «Инвентаризация» → «Устройства» → hub-r2 , выберите «Запустить устройство ».
  • Дождитесь завершения синхронизации и обратите внимание на статус " работает ".

14. Центр сетевого подключения на GCP Hub

802fe0ef1e98c563.png

Включить API-сервисы

Включите API для подключения к сети, если он еще не включен:

gcloud services enable networkconnectivity.googleapis.com

Создайте центр NCC.

gcloud network-connectivity hubs create ncc-hub
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]

Настройте оба маршрутизатора как периферийные устройства NCC.

Найдите URI и IP-адрес для обоих маршрутизаторов hub-r1 и hub-r2 и запишите результат. Эта информация понадобится вам на следующем шаге.

Обязательно запишите IP-адрес (192.168.xx) экземпляров hub-r1 и hub-r2.

gcloud compute instances describe hub-r1 \
--zone=us-central1-a \
--format="value(selfLink.scope(projects))"

gcloud compute instances describe hub-r1 --zone=us-central1-a | grep "networkIP"
gcloud compute instances describe hub-r2 \
--zone=us-east4-b \
--format="value(selfLink.scope(projects))"

gcloud compute instances describe hub-r2 --zone=us-east4-b | grep "networkIP"

Добавьте networkIP vnic маршрутизатора hub-r1 (192.168.xx) в качестве периферийного узла и включите передачу данных между узлами сети.

gcloud network-connectivity spokes linked-router-appliances create s2s-wrk-cr1 \
--hub=ncc-hub \
--router-appliance=instance="https://www.googleapis.com/compute/projects/$projectname/zones/us-central1-a/instances/hub-r1",ip=192.168.235.4 \
--region=us-central1 \
--site-to-site-data-transfer

Добавьте networkIP vnic маршрутизатора Hub-R2 (192.168.xx) в качестве периферийного узла и включите передачу данных между узлами.

gcloud network-connectivity spokes linked-router-appliances create s2s-wrk-cr2 \
--hub=ncc-hub \
--router-appliance=instance=/projects/$projectname/zones/us-east4-b/instances/hub-r2,ip=192.168.236.101 \
--region=us-east4 \
--site-to-site-data-transfer

Настройте Cloud Router для установления соединения BGP с Hub-R1.

На следующем шаге создайте облачный маршрутизатор и объявите подсеть VPC для рабочей нагрузки 192.168.235.0/24.

Создайте в us-central1 облачный маршрутизатор, который будет взаимодействовать по протоколу BGP с hub-r1.

gcloud compute routers create wrk-cr1 \
--region=us-central1 \
--network=workload-vpc \
--asn=65002 \
--set-advertisement-groups=all_subnets \
--advertisement-mode=custom

Настройка маршрутизаторов в режиме NCC Spoke позволяет облачному маршрутизатору согласовывать протокол BGP на виртуальных интерфейсах.

Создайте два интерфейса на облачном маршрутизаторе, которые будут обмениваться сообщениями BGP с хабом R1.

IP-адреса выбираются из подсети рабочей нагрузки и могут быть изменены при необходимости.

gcloud compute routers add-interface wrk-cr1 \
--region=us-central1 \
--subnetwork=workload-subnet1 \
--interface-name=int0 \
--ip-address=192.168.235.101 

gcloud compute routers add-interface wrk-cr1 \
--region=us-central1 \
--subnetwork=workload-subnet1 \
--interface-name=int1 \
--ip-address=192.168.235.102 \
--redundant-interface=int0

Настройте интерфейс Cloud Router для установления BGP-соединения с vNIC-1 маршрутизатора hub-r1, обновите параметр peer-ip-address, указав IP-адрес сети hub-r1 networkIP . Обратите внимание, что один и тот же IP-адрес используется для int0 и int1.

gcloud compute routers add-bgp-peer wrk-cr1 \
    --peer-name=hub-cr1-bgp-peer-0 \
    --interface=int0 \
    --peer-ip-address=192.168.235.4 \
    --peer-asn=64111 \
    --instance=hub-r1 \
    --instance-zone=us-central1-a \
    --region=us-central1

gcloud compute routers add-bgp-peer wrk-cr1 \
    --peer-name=hub-cr1-bgp-peer-1 \
    --interface=int1 \
    --peer-ip-address=192.168.235.4 \
    --peer-asn=64111 \
    --instance=hub-r1 \
    --instance-zone=us-central1-a \
    --region=us-central1

Проверьте состояние BGP. На данном этапе выполнения лабораторной работы BGP находится в состоянии "connect", поскольку сетевой маршрутизатор не настроен для работы с BGP.

gcloud compute routers get-status wrk-cr1 --region=us-central1

Настройте Workload-cr2 для установления соединения BGP с Hub-R2.

На следующем шаге создайте облачный маршрутизатор и объявите подсеть VPC для рабочей нагрузки 192.168.236.0/24.

Создайте в us-east4 облачный маршрутизатор, который будет взаимодействовать по протоколу BGP с hub-r2.

gcloud compute routers create wrk-cr2 \
--region=us-east4 \
--network=workload-vpc \
--asn=65002 \
--set-advertisement-groups=all_subnets \
--advertisement-mode=custom

Создайте пару интерфейсов на облачном маршрутизаторе, которые будут обмениваться сообщениями BGP с hub-r2. IP-адреса выбираются из подсети рабочей нагрузки и могут быть изменены при необходимости.

gcloud compute routers add-interface wrk-cr2 \
--region=us-east4 \
--subnetwork=workload-subnet2 \
--interface-name=int0 \
--ip-address=192.168.236.5 


gcloud compute routers add-interface wrk-cr2 \
--region=us-east4 \
--subnetwork=workload-subnet2 \
--interface-name=int1 \
--ip-address=192.168.236.6 \
--redundant-interface=int0

Настройте интерфейс Cloud Router для установления BGP-соединения с vNIC-1 маршрутизатора hub-r2, обновите параметр peer-ip-address, указав IP-адрес networkIP hub-r1. Обратите внимание, что для int0 и int1 используется один и тот же IP-адрес.

gcloud compute routers add-bgp-peer wrk-cr2 \
    --peer-name=hub-cr2-bgp-peer-0 \
    --interface=int0 \
    --peer-ip-address=192.168.236.101 \
    --peer-asn=64112 \
    --instance=hub-r2 \
    --instance-zone=us-east4-b \
    --region=us-east4

gcloud compute routers add-bgp-peer wrk-cr2 \
    --peer-name=hub-cr2-bgp-peer-1 \
    --interface=int1 \
    --peer-ip-address=192.168.236.101 \
    --peer-asn=64112 \
    --instance=hub-r2 \
    --instance-zone=us-east4-b \
    --region=us-east4

Проверьте состояние BGP. На данном этапе выполнения лабораторной работы BGP находится в состоянии "connect", поскольку сетевой маршрутизатор не настроен для работы с BGP.

gcloud compute routers get-status wrk-cr2 --region=us-east4

15. Настройка маршрутизаторов-концентраторов для работы с BGP.

Настройте hub-r1 для BGP.

Обязательно войдите в консоль flexiManage.

Перейдите в раздел «Инвентаризация»«Устройства»«hub-r1» и выберите устройство с именем хоста: hub-r1.

  • Перейдите на вкладку «Маршрутизация».
  • Нажмите на кнопку «Конфигурация BGP».
  • Отключить функцию "Перераспределять маршруты OSPF"
  • Настройте hub-r1 для BGP, используя следующие параметры, и нажмите «Сохранить».

8d470056f620717f.png

Выберите вкладку « Интерфейсы », найдите интерфейс LAN, затем столбец « Маршрутизация ».

  • Нажмите « нет », чтобы открыть меню и выбрать BGP в качестве протокола маршрутизации.

82310aab05e9e414.png

  • В верхней части страницы нажмите «Обновить устройство».

Настройка hub-r2 для BGP

Обязательно войдите в консоль flexiManage.

Перейдите в раздел «Инвентаризация» → «Устройства»«hub-r2» и выберите устройство с именем хоста: hub-r2.

  • Перейдите на вкладку «Маршрутизация».
  • Нажмите на кнопку «Конфигурация BGP».
  • Отключить функцию "Перераспределять маршруты OSPF"
  • Настройте hub-r2 для работы по протоколу BGP, используя следующие параметры, и нажмите «Сохранить».

8ecb14e2c046012e.png

Выберите вкладку « Интерфейсы », найдите интерфейс LAN, затем столбец «Маршрутизация».

  • Нажмите «нет», чтобы открыть выпадающее меню и выбрать BGP в качестве протокола маршрутизации.

41a381f81f2b500e.png

  • В верхней части страницы нажмите «Обновить устройство».

Выберите вкладку " маршрутизация ".

  • Убедитесь, что hub-r2 получил маршрут BGP от wrk-cr2.

ddf3e811b193ec10.png

16. Обмен маршрутами BGP между маршрутизаторами.

Создать локальную автономную сеть для удаленных объектов.

Настройте локальный BGP ASN для site1-nva и site2-nva, после чего установим IPSEC-туннель между удаленными площадками и центральными маршрутизаторами.

Выберите устройство с именем хоста HostName:site1-nva

  • Перейдите на вкладку «Маршрутизация».
  • Нажмите на кнопку «Конфигурация BGP».
  • Отключить функцию "Перераспределять маршруты OSPF"
  • Включен BGP
  • Локальный ASN 7269 → Сохранить
  • Обновить устройство
  • Вкладка «Интерфейсы» → LAN → Маршрутизация → BGP
  • Обновить устройство

Выберите устройство с именем хоста HostName:site2-nva

  • Перейдите на вкладку «Маршрутизация».
  • Нажмите на кнопку «Конфигурация BGP».
  • Отключить функцию "Перераспределять маршруты OSPF"
  • Включен BGP
  • Локальный ASN 7270 → Сохранить
  • Обновить устройство
  • Вкладка «Интерфейсы» → LAN → Маршрутизация → BGP
  • Обновить устройство

Настройка VPN-туннелей между устройствами Site и Hub.

Обязательно войдите в консоль flexiManage.

  • Перейдите в раздел «Инвентарь» → «Устройства».
  • Установите флажок рядом с именем хоста site1-nva и hub-r1 , чтобы создать VPN-туннель между этой парой сетевых адаптеров.
  • Нажмите « Действия» → «Создать туннели» и настройте следующие параметры.

d870b4049a0e7fcf.png

c50d794442c0bdd0.png

  • Выберите «Создать туннели» .
  • Снимите флажки с site1-nva и ub-r1

Повторите шаги для создания туннеля между site2-nva и hub-r2, выбрав соответствующие параметры.

37c86e17b74e98ca.png

Убедитесь, что между каждой парой NVA установлено парное соединение туннелей.

  • На левой боковой панели выберите « инвентаризация », затем нажмите « Туннели » и найдите столбец «состояние».

a31e7a73aff53b66.png

Убедитесь, что "site1-nva" изучил маршруты к подсетям 192.168.235.0/24 и 192.168.236.0/24.

  • Выберите «Инвентаризация» → «Устройства» → site1-nva и перейдите на вкладку «Маршрутизация».

В приведенном ниже примере выходных данных flexiWAN автоматически создал туннель, используя IP-адрес хоста 10.100.0.6. cef8dee200ac600a.png

17. Проверьте подключение канала передачи данных.

Проверьте подключение сайта к облаку из локальной среды.

Обратитесь к схеме и убедитесь, что путь передачи данных между s1-vm и workload1-vm правильный.

2a403992934279b3.png

Настройка статических маршрутов VPC для связи «сайт — облако».

Локальные виртуальные частные сети Site1-VPC и Site2-VPC имитируют локальную сеть центра обработки данных.

Как маршрутизаторы Site-1-nva, так и маршрутизаторы Site-2-nva используют VPN-соединение для подключения к центральной сети.

Для сценария "сайт-облако"** создайте статические маршруты к целевому адресу 192.168.0.0/16, используя маршрутизатор в качестве следующего узла для доступа к сетям в облачной сети GCP.

На сервере s1-inside-vpc создайте статический маршрут для облачного назначения (192.168.0.0/16):

gcloud compute routes create site1-subnet-route  \
--network=s1-inside-vpc \
--destination-range=192.168.0.0/16  \
--next-hop-instance=site1-nva \
--next-hop-instance-zone=us-central1-a

На сервере s2-inside-vpc создайте статический маршрут для облачного назначения (192.168.0.0/16):

gcloud compute routes create site2-subnet-route  \
--network=s2-inside-vpc \
--destination-range=192.168.0.0/16  \
--next-hop-instance=site2-nva \
--next-hop-instance-zone=us-east4-b

В CloudShell найдите IP-адрес "workload1-vm ". Он понадобится вам для проверки подключения с " s1-vm ".

gcloud compute instances describe workload1-vm --zone=us-central1-a | grep "networkIP"

Установите SSH-соединение с виртуальной машиной s1. Если произойдет таймаут, попробуйте снова.

gcloud compute ssh s1-vm --zone=us-central1-a

Подключитесь по SSH к виртуальной машине " s1-vm" и используйте команду " curl" для установления TCP-соединения с IP-адресом виртуальной машины workload1-VM.

s1-vm:~$ curl 192.168.235.3 -vv
*   Trying 192.168.235.3:80...
* Connected to 192.168.235.3 (192.168.235.3) port 80 (#0)
> GET / HTTP/1.1
> Host: 192.168.235.3
> User-Agent: curl/7.74.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Wed, 07 Dec 2022 15:12:08 GMT
< Server: Apache/2.4.54 (Debian)
< Last-Modified: Tue, 06 Dec 2022 00:57:46 GMT
< ETag: "1f-5ef1e4acfa1d9"
< Accept-Ranges: bytes
< Content-Length: 31
< Content-Type: text/html
< 
Page served from: workload1-vm
* Connection #0 to host 192.168.235.3 left intact

Проверьте соединение между сайтами.

Обратитесь к схеме и убедитесь, что путь передачи данных между s1-vm и s2-vm правильный.

1a7ec558ab1ecd37.png

Настройка статических маршрутов VPC для межсайтовых соединений (Site to Site).

Для маршрутизации трафика между сайтами 1 и 2 с использованием глобальной сети GCP необходимо создать статические маршруты к удаленным подсетям, используя локальный маршрутизатор в качестве следующего узла.

На следующем этапе рабочая сеть VPC будет настроена с использованием NCC для поддержки передачи данных между площадками.

На сервере s1-inside-vpc создайте статический маршрут для доступа к подсети site2 (10.20.1.0/24):

gcloud compute routes create site1-sn1-route  \
--network=s1-inside-vpc \
--destination-range=10.20.1.0/24  \
--next-hop-instance=site1-nva \
--next-hop-instance-zone=us-central1-a

На сервере s2-inside-vpc создайте статический маршрут для доступа к подсети site1 (10.10.1.0/24):

gcloud compute routes create site2-sn1-route  \
--network=s2-inside-vpc \
--destination-range=10.10.1.0/24  \
--next-hop-instance=site2-nva \
--next-hop-instance-zone=us-east4-b

В CloudShell найдите IP-адрес " s2-vm ". Он понадобится вам для проверки подключения с S1-vm.

gcloud compute instances describe s2-vm --zone=us-east4-b | grep networkIP

Установите SSH-соединение с виртуальной машиной s1. Если произойдет таймаут, попробуйте снова.

gcloud compute ssh s1-vm --zone=us-central1-a

Подключитесь по SSH к виртуальной машине " s1-vm" и выполните команду ping для IP-адреса виртуальной машины " s2-vm ".

s1-vm:~$ ping 10.20.1.3
PING 10.20.1.3 (10.20.1.3) 56(84) bytes of data.
64 bytes from 10.20.1.3: icmp_seq=1 ttl=60 time=99.1 ms
64 bytes from 10.20.1.3: icmp_seq=2 ttl=60 time=94.3 ms
64 bytes from 10.20.1.3: icmp_seq=3 ttl=60 time=92.4 ms
64 bytes from 10.20.1.3: icmp_seq=4 ttl=60 time=90.9 ms
64 bytes from 10.20.1.3: icmp_seq=5 ttl=60 time=89.7 ms

18. Уборка

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

#on prem instances
gcloud compute instances delete s1-vm --zone=us-central1-a --quiet
gcloud compute instances delete s2-vm --zone=us-east4-b --quiet

#delete on prem firewall rules
gcloud compute firewall-rules delete site1-ssh --quiet
gcloud compute firewall-rules delete site1-internal --quiet
gcloud compute firewall-rules delete site1-cloud --quiet
gcloud compute firewall-rules delete site1-vpn  --quiet
gcloud compute firewall-rules delete site1-iap --quiet
gcloud compute firewall-rules delete site2-ssh --quiet
gcloud compute firewall-rules delete site2-internal --quiet
gcloud compute firewall-rules delete site2-cloud --quiet
gcloud compute firewall-rules delete site2-vpn  --quiet
gcloud compute firewall-rules delete site2-iap --quiet
gcloud compute firewall-rules delete allow-from-site-1-2 --quiet
gcloud compute firewall-rules delete s2-inside-cloud s2-inside-internal s2-inside-ssh --quiet
gcloud compute firewall-rules delete s1-inside-cloud s1-inside-iap s1-inside-internal s1-inside-ssh s2-inside-cloud s2-inside-iap s2-inside-internal s2-inside-ssh --quiet


#delete ncc spokes
gcloud network-connectivity spokes delete s2s-wrk-cr1 --region us-central1 --quiet
gcloud network-connectivity spokes delete s2s-wrk-cr2 --region us-east4 --quiet

#delete ncc hub
gcloud network-connectivity hubs delete ncc-hub --quiet

#delete the cloud router
gcloud compute routers delete wrk-cr1 --region=us-central1 --quiet
gcloud compute routers delete wrk-cr2 --region=us-east4 --quiet

#delete the instances

gcloud compute instances delete hub-r1 --zone=us-central1-a --quiet
gcloud compute instances delete hub-r2 --zone=us-east4-b --quiet
gcloud compute instances delete workload1-vm --zone=us-central1-a --quiet
gcloud compute instances delete site1-nva --zone=us-central1-a --quiet
gcloud compute instances delete site2-nva --zone=us-east4-b --quiet

#delete on prem subnets

gcloud compute networks subnets delete hub-subnet1 s1-inside-subnet site1-subnet workload-subnet1 --region=us-central1 --quiet

gcloud compute networks subnets delete hub-subnet2 s2-inside-subnet  site2-subnet workload-subnet2 --region=us-east4 --quiet 

#delete hub firewall rule
gcloud compute firewall-rules delete hub-ssh --quiet
gcloud compute firewall-rules delete hub-vpn --quiet
gcloud compute firewall-rules delete hub-internal --quiet
gcloud compute firewall-rules delete hub-iap --quiet

gcloud compute firewall-rules delete workload-ssh --quiet
gcloud compute firewall-rules delete workload-internal --quiet
gcloud compute firewall-rules delete workload-onprem --quiet
gcloud compute firewall-rules delete workload-iap --quiet

#delete on vpcs
gcloud compute networks delete hub-vpc s1-inside-vpc s2-inside-vpc site2-vpc workload-vpc --quiet 

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

Вы завершили лабораторную работу в Центре сетевого подключения!

Что вы осветили

  • Настроенная интеграция программно-определяемой глобальной сети (SDN) для связи NCC с облаком.
  • Настроенная интеграция программно-определяемой глобальной сети (SDN) для межсайтовой интеграции NCC.

Следующие шаги

©Google, LLC или ее аффилированные лица. Все права защищены. Распространение запрещено.