Настройка RAS-шлюза программно-конфигурируемой сети в фабрике VMM

Райн Вайзелман |

RAS-шлюз SDN – это элемент пути данных в SDN, который обеспечивает обмен данными site-to-site между двумя автономными системами. Если говорить точнее, RAS-шлюз создает подключение site-to-site между удаленными клиентскими сетями и вашим центром обработки данных с помощью IPSec, общей инкапсуляции маршрутов (GRE) или пересылки уровня 3. 

Рассмотрим особенности настройки RAS-шлюза программно-конфигурируемой сети (SDN) в System Center 2016 – Virtual Machine Manager (VMM).

RAS-шлюз SDN – это элемент пути данных в SDN, который обеспечивает обмен данными site-to-site между двумя автономными системами. Если говорить точнее, RAS-шлюз создает подключение site-to-site между удаленными клиентскими сетями и вашим центром обработки данных с помощью IPSec, общей инкапсуляции маршрутов (GRE) или пересылки уровня 3. 

Перед началом работы

Что нужно сделать перед началом работы

  • Планированиепрочитайте о планировании SDN и изучите топологию планирования в статье Планирование инфраструктуры программно-конфигурируемой сети. На диаграмме вы увидите пример настройки с 4 узлами. Также эту настройку можно выполнить с тремя узлами контроллера сети (виртуальные машины) или с тремя узлами SLB/MUX. На примере показаны два клиента с одной виртуальной сетью, разбитой на две виртуальные подсети для моделирования веб-уровня и уровня базы данных. Как инфраструктуру, так и клиентские виртуальные машины можно перераспределить в любом физическом хосте.
  • Контроллер сети: перед развертыванием RAS-шлюза разверните контроллер сети.
  • SLB: во избежание ошибок в обработке взаимозависимостей перед развертыванием шлюза также разверните SLB. После того как SLB и шлюз будут настроены, вы сможете проверить подключение IPSec.

Этапы развертывания

Чтобы настроить RAS-шлюз, выполните следующие действия:

  1. Логическая сеть: создайте логическую сеть GRE VIP. Ей требуется пул IP-адресов для частных VIP (виртуальные IP-адреса) и для назначения VIP конечным точкам GRE. Сеть позволяет определять VIP, которые назначаются для маршрутизации виртуальных машин, функционирующих в фабрике SDN для обеспечения подключения site-to-site GRE.
  2. Шаблон службы: скачайте и импортируйте шаблон службы RAS-шлюза.
  3. Разверните шлюз: разверните экземпляр службы шлюза и настройте его.
  4. Проверьте развертывание: настройте подключение site-to-site GRE, IPSec или L3 и проверьте развертывание.

Создайте логическую сеть GRE VIP

  1. В консоли VMM запустите мастер создания логической сети. Введите название и дополнительное описание и нажмите Next (Далее).
  2. В разделе Settings (Настройки) выберите One Connected Network (Одна подключенная сеть). При желании вы можете выбрать Create a VM network with the same name (Создать сеть виртуальных машин с этим же именем). Благодаря этой настройке у виртуальных машин будет прямой доступ к этой логической сети. Выберите Managed by the Network Controller (Управляется контроллером сети) и нажмите Next (Далее).
  3. В разделе Network Site (Сетевой сайт) настройте следующие параметры:
    • Название сети: GRE VIP
    • Подсеть: 31.30.30.0
    • Маска: 24
    • Идентификатор VLAN в магистральной сети: Н/Д
    • Шлюз: 31.30.30.1
  4. В разделе Summary (Сводка) проверьте настройки и закройте мастер.

Создайте пул IP-адресов для VIP-адресов GRE

  1. Правой кнопкой мыши выберите логическую сеть GRE VIP > Create IP Pool (Создать пул IP-адресов).
  2. Введите название и дополнительное описание пула и убедитесь, что сеть VIP выбрана. Нажмите Next (Далее).
  3. Примите сетевой сайт по умолчанию и нажмите Next (Далее).
  4. Выберите начальный и конечный IP-адреса для своего диапазона. Диапазон должен начинаться со второго адреса в доступной подсети. Например, если диапазон доступной подсети составляет от .1 до .254, начните его с 2.
  5. В поле IP addresses reserved for load balancer VIPs (IP-адреса, зарезервированные для VIP-адресов распределителя нагрузки)  введите диапазон IP-адресов подсети. Это значение должно соответствовать диапазону, который вы использовали в качестве начального и конечного IP-адресов.
  6. Вам не нужно указывать данные шлюза, DNS или WINS, поскольку этот пул используется для распределения IP-адресов для VIP с помощью контроллера сети. Нажмите Next (Далее) чтобы пропустить эти окна.
  7. Проверьте настройки в разделе Summary (Сводка), после чего закройте мастер.

Скачайте и импортируйте шаблон

  1. Скачайте шаблон службы RAS-шлюза из хранилища Microsoft SDN GitHub. В скачанных файлах вы найдете два шаблона.
    • Шаблон EdgeServiceTemplate_Generation1.xml предназначен для развертывания службы шлюза на виртуальных машинах поколения 1.
    • Шаблон EdgeServiceTemplate_Generation2.xml предназначен для развертывания службы шлюза на виртуальных машинах поколения 2.
    • По умолчанию в обоих шаблонах используются три виртуальные машины, но эту настройку можно изменить в конструкторе шаблонов служб. Настроить номер пассивного шлюза виртуальных машин можно во время развертывания.
  2. Извлеките содержимое папки на локальный компьютер.
  3. Нажмите Library (Библиотека) > Templates (Шаблоны) > Service Templates (Шаблоны служб) > Import Template (Импортировать шаблон).
  4. Откройте папку шаблона службы. Для этой процедуры выберите файл EdgeServiceTemplate Generation 2.xml.
  5. После импорта шаблона службы обновите параметры своей среды. Обратите внимание, что ресурсы библиотеки были импортированы во время развертывания контроллера сети.
    • WinServer.vhdx: выберите базовый виртуальный образ жесткого диска, который вы загрузили и импортировали ранее, во время развертывания контроллера сети.
    • NCCertificate.CR: выполните сопоставление с ресурсом NCCertificate.cr в библиотеке VMM.
    • EdgeDeployment.CR: выполните сопоставление с ресурсом EdgeDeployment.cr в библиотеке VMM.
  6. На странице Summary (Сводка) нажмите Import (Импорт).

Разверните службу шлюза

В этом примере используется шаблон поколения 2.

  1. Выберите шаблон службы EdgeServiceTemplate Generation2.xml и нажмите Configure Deployment (Настроить развертывание).
  2. Введите название и выберите пункт назначения для экземпляра службы. Пункт назначения должен вести к группе узлов, которая содержит узлы, настроенные ранее для развертывания шлюза.
  3. В разделе Network Settings (Настройки сети) сопоставьте сеть управления с сетью управления виртуальными машинами.
  4. В разделе Deploy Service (Развернуть службу) экземпляры виртуальных машин изначально выделены красным. Нажмите Refresh Preview (Обновить предварительный просмотр), чтобы автоматически найти подходящие узлы для виртуальной машины.
  5. В левой части окна Configure Deployment (Настроить развертывание) есть ряд обязательных настроек.
    • AdminAccount. Обязательно. Выберите вариант Run as account (Запустить в качестве аккаунта) в своей среде, которая будет использоваться как локальный администратор в виртуальных машинах шлюза. Например, администратор.
    • Сеть управления. Обязательно. Выберите сеть управления виртуальными машинами, которую вы создали для управления хостами.
    • SelfSignedConfiguration. Обязательно. Если вы используете самозаверяющий сертификат, задайте значение True. Если вы используете сертификат, который был назначен центром сертификации предприятия или сторонним корневым центром сертификации, настройте значение False.
  6. Нажмите Deploy Service (Развернуть службу), чтобы начать развертывание. Длительность развертывания зависит от аппаратного обеспечения, но, как правило, составляет от 30 до 60 минут. В случае неудачного развертывания шлюза удалите экземпляр службы в разделе  All Hosts (Все хосты) > Services (Службы).
  7. Если вы не используете VHDX с корпоративным лицензированием (или ключ продукта не поставляется в файле ответов), развертывание прекратится на странице Product Key (Ключ продукта) во время настройки виртуальной машины. Вам необходимо войти на рабочий стол виртуальной машины вручную и либо ввести ключ, либо пропустить этот шаг.

Если вы хотите увеличить или уменьшить масштабы развертывания экземпляра SLB, читайте этот блог.

Настройте роль диспетчера шлюза

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

  1. Нажмите Fabric (Фабрика) > Network Service (Сетевая служба), чтобы открыть список установленных сетевых служб. Правой кнопкой мыши выберите службу контроллера сети > Properties (Свойства).
  2. Откройте вкладку Services (Службы) и выберите Gateway Manager Role (Роль диспетчера шлюза).
  3. Найдите поле Associated Service (Сопутствующая служба) под разделом Service information (Информация о службе) и нажмите Browse (Обзор). Выберите экземпляр службы шлюза, который вы создали ранее, и нажмите OK.
  4. Выберите параметр Run As account (Запустить в качестве аккаунта), который будет использоваться контроллером сети для доступа к виртуальным машинам шлюза.
  5. В разделе GRE VIP subnet (Подсеть GRE VIP) выберите подсеть VIP, которую вы создали ранее.
  6. В разделе Public IPv4 pool (Общедоступный пул IPv4) выберите пул, который вы настроили во время развертывания SLB. В разделе Public IPv4 address (Общедоступный IPv4-адрес) укажите IP-адрес из предыдущего пула. При этом нельзя указывать первые три IP-адреса из диапазона.
  7. В разделе Gateway Capacity (Пропускная способность шлюза) настройте параметры пропускной способности.
  8. Настройте количество зарезервированных узлов в поле  Nodes for reserved for failures (Зарезервированные узлы для сбоев).
  9. Чтобы настроить индивидуальные виртуальные машины шлюза, нажмите каждую из них и выберите внешнюю подсеть IPv4, укажите локальный ASN и (необязательно) добавьте информацию однорангового устройства по протоколу BGP.

Теперь развернутый экземпляр службы связан с ролью диспетчера шлюза. Под этой ролью вы увидите экземпляр шлюза виртуальной машины.

Проверьте развертывание

После развертывания шлюза вы можете настроить типы подключения S2S GRE, S2S IPSec или L3 и проверить их.

Создайте и проверьте подключение site-to-site IPSec

Подключение site-to-site IPSec обеспечивает защищенный доступ к удаленным виртуальным машинам и службам из вашего центра обработки данных. Создать подключение можно следующим образом:

  1. Выберите сеть виртуальных машин, в которой вы хотите настроить подключение site-to-site IPSec, и нажмите Connectivity (Подключение).
  2. Выберите Connect to another network through a VPN tunnel (Подключиться к другой сети через туннель VPN). При желании, если вы хотите настроить обмен данными по протоколу BGP в своем центре обработки данных, вы можете выбрать пункт Enable Border Gateway Protocol (BGP) (Включить протокол пограничной маршрутизации).
  3. Выберите службу контроллера сети для устройства шлюза.
  4. Выберите VPN Connections (Подключения VPN) > Add (Добавить) > IPSec.
  5. Введите подсеть, как показано на диаграмме ниже. Эта сеть используется для маршрутизации пакетов из сети виртуальных машин. Эту сеть не нужно предварительно настраивать в вашем центре обработки данных.
  6. Введите название подключения и IP-адрес удаленной конечной точки. Дополнительно вы можете настроить пропускную способность.
  7. В разделе Authentication (Авторизация) выберите тип авторизации, который хотите использовать. Если вы выберете авторизацию через Run As account (Запустить в качестве аккаунта), создайте аккаунт с именем пользователя, а ключ IPSec сделайте паролем для этого аккаунта.
  8. В разделе Routes (Маршруты) введите все удаленные подсети, к которым хотите подключиться.
  9. Если вы выбрали Enable Border Gateway Protocol (BGP) (Включить протокол пограничной маршрутизации), вы можете ничего не вводить, а вместо этого указать свой ASN, одноранговый BGP IP-адрес и его ASN во вкладке Border Gateway Protocol (Протокол пограничной маршрутизации) (см. ниже).
  10. Во вкладке Advanced (Дополнительно) примите настройки по умолчанию.
  11. Чтобы проверить подключение, попробуйте выполнить ping-запрос на IP-адрес удаленной конечной точки от одной из виртуальной машины в сети.

Создайте и проверьте подключения site-to-site GRE

Подключение site-to-site GRE обеспечивает доступ к удаленным виртуальным машинам и службам из вашего центра обработки данных. Настроить подключение можно следующим образом:

  1. Выберите сеть виртуальных машин, в которой вы хотите настроить подключение site-to-stie GRE, и нажмите Connectivity (Подключение).
  2. Выберите Connect to another network through a VPN tunnel (Подключиться к другой сети через туннель VPN).
  3. При желании, если вы хотите настроить обмен данными по протоколу BGP в своем центре обработки данных, вы можете выбрать пункт Enable Border Gateway Protocol (BGP) (Включить протокол пограничной маршрутизации).
  4. Выберите службу контроллера сети для устройства шлюза.
  5. Выберите VPN Connections (Подключения VPN) > Add (Добавить) > GRE.
  6. Введите подсеть, как показано на диаграмме ниже. Эта сеть используется для маршрутизации пакетов из сети виртуальных машин. Эту сеть не нужно предварительно настраивать в вашем центре обработки данных.

     7. Введите название подключения и укажите IP-адрес удаленной конечной точки.

     8. Введите ключ GRE.

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

  1. В разделе Routes (Маршруты) введите все удаленные подсети, к которым хотите подключиться. Если вы выбрали Enable Border Gateway Protocol (BGP) (Включить протокол пограничной маршрутизации) в разделе Connectivity (Подключение), вы можете ничего не вводить, а вместо этого указать ASN, одноранговый BGP IP-адрес и его ASN во вкладке Border Gateway Protocol (Протокол пограничной маршрутизации) (см. ниже).
  2. В других параметрах вы можете оставить значения по умолчанию.
  3. Чтобы проверить подключение, попробуйте выполнить ping-запрос на IP-адрес удаленной конечной точки от одной из виртуальной машины в сети.

Проверьте подключение уровня 3

Шлюз уровня 3 действует в качестве моста между физической инфраструктурой в центре обработки данных и виртуализированной инфраструктурой в облаке, работающем по технологии виртуализации сети Hyper-V. Подробнее.

В настоящее время VMM не поддерживает динамическое подключение уровня 3 по протоколу BGP, но подключение уровня 3 можно настроить с помощью скрипта PowerShell.

  1. Войдите на сервер VMM от имени администратора.
  2. Выполните следующий скрипт.
param(
[Parameter(Mandatory=$true)]
# Name of the L3 VPN connection
$L3VPNConnectionName,
[Parameter(Mandatory=$true)]
# Name of the VM network to create gateway
$VmNetworkName,
[Parameter(Mandatory=$true)]
# Name of the Next Hop one connected VM network
# used for forwarding
$NextHopVmNetworkName,
[Parameter(Mandatory=$true)]
# IPAddresses on the local side that will be used
# for forwarding
# Format should be @("10.10.10.100/24")
$LocalIPAddresses,
[Parameter(Mandatory=$true)]
# IPAddresses on the remote side that will be used
# for forwarding
# Format should be @("10.10.10.200")
$PeerIPAddresses,
[Parameter(Mandatory=$false)]
# Subnet for the L3 gateway
# default value 10.254.254.0/29
$GatewaySubnet = "10.254.254.0/29",
[Parameter(Mandatory=$false)]
# List of subnets for remote tenants to add routes for static routing
# Format should be @("14.1.20.0/24","14.1.20.0/24");
$RoutingSubnets = @()
)
 
Import-Module virtualmachinemanager
 
$vmNetwork = Get-SCVMNetwork -Name $VmNetworkName;
 
$nextHopVmNetwork = Get-SCVMNetwork -Name $NextHopVmNetworkName;
 
$gatewayDevice = Get-SCNetworkGateway | Where {$_.Model -Match "Microsoft Network Controller"};
 
$vmNetworkGatewayName = $VmNetwork.Name + "_Gateway";
$VmNetworkGateway = Add-SCVMNetworkGateway -Name $vmNetworkGatewayName -EnableBGP $false -NetworkGateway $gatewayDevice
    -VMNetwork $vmNetwork -RoutingIPSubnet $GatewaySubnet;
 
$vpnConnection = Add-SCVPNConnection  -NextHopNetwork $nexthopvmNetwork  -Name $L3VPNConnectionName
    -IPAddresses $LocalIPAddresses -PeerIPAddresses $PeerIPAddresses -VMNetworkGateway $VmNetworkGateway -protocol L3;
Write-Output "Created VPN Connection " $vpnConnection;
 
foreach($route in $RoutingSubnets)
{
    Add-SCNetworkRoute -IPSubnet $route -RunAsynchronously -VPNConnection $vpnConnection
        -VMNetworkGateway $VmNetworkGateway
}

В таблице ниже приведены примеры динамического и статического подключений уровня 3.

Параметр

Сведения

Пример значения

L3VPNConnectionName

Указываемое пользователем название сетевого подключения уровня 3

"Contoso_L3_GW"

VmNetworkName

Название клиентской виртуальной сети, которая доступна по сетевому подключению уровня 3

"ContosoVMNetwork"

NextHopVMNetworkName

Указываемое пользователем название сетевого подключения уровня 3; название созданной вами сети виртуальных машин уровня 3 с тегами VLAN

"Contoso_L3_Network"

LocalIPAddresses

IP-адреса, которые настраиваются в сетевом интерфейсе уровня 3 на шлюзе HNV

IP-адрес созданной вами логической сети

"10.127.134.55/25"

PeerIPAddresses

IP-адрес физического шлюза сети, доступного по логической сети уровня 3

IP-адрес созданной вами логической сети

"10.127.134.65"

GatewaySubnet

Подсеть, которая используется для маршрутизации между шлюзом HNV и клиентской виртуальной сетью

"192.168.2.0/24"

RoutingSubnets

Статические маршруты для интерфейса уровня 3 на шлюзе HNV

 

EnableBGP

Параметр для включения BGP. По умолчанию настроено значение False

 

TenantASNRoutingSubnets

ASN-номер клиентского шлюза (только если включен протокол BGP)

 

Наверх