Маршрутизация трафика между сетями в инфраструктуре SDN
Важно!
Поддержка этой версии Virtual Machine Manager (VMM) завершена. Мы рекомендуем выполнить обновление до VMM 2022.
В этой статье содержатся сведения о маршрутизации трафика между сетями в инфраструктуре программно-конфигурируемой сети (SDN), настроенной в структуре System Center Virtual Machine Manager (VMM).
Шлюз удаленного доступа SDN позволяет осуществлять маршрутизацию сетевого трафика между физическими и виртуальными сетями независимо от того, где находятся ресурсы. Шлюз удаленного доступа SDN является мультитенантным, поддерживает протокол BGP и подключение с помощью виртуальной частной сети (VPN) типа "сеть — сеть" по протоколу IPsec или Generic Routing Encapsulation (GRE) либо переадресацию Layer 3. Дополнительные сведения.
Примечание
- Начиная с VMM 2019 UR1 тип сети Одна подключенная изменен на Подключенная сеть.
- В VMM 2019 UR2 и более поздних версий поддерживается IPv6.
- Протокол IPv6 поддерживается для туннеля IPSec, туннеля GRE и туннеля уровня L3.
Примечание
- Протокол IPv6 поддерживается для туннеля IPSec, туннеля GRE и туннеля уровня L3.
Перед началом работы
Убедитесь, что:
Развернуты сетевой контроллер SDN, программный Load BalancerSDN и шлюз RAS SDN.
Создана сеть виртуальных машин SDN с виртуализацией сети.
Настройка VPN-подключений типа "сеть — сеть" с помощью VMM
VPN-подключение типа "сеть — сеть" позволяет безопасно подключать две сети в разных физических расположениях с помощью Интернета.
Для поставщиков облачных служб (CSP), которые размещают в своем центре обработки данных множество клиентов, шлюз удаленного доступа SDN — это мультитенантный шлюз, позволяющий клиентам получать доступ к ресурсам и управлять ими через VPN-подключения типа "сеть — сеть" с удаленных сайтов, что, в свою очередь, обеспечивает перемещение сетевого трафика между виртуальными ресурсами в вашем центре обработки данных и их физической сети.
В VMM 2022 предоставляется поддержка двух стеков (IPv4 и IPv6) для компонентов SDN.
Чтобы включить IPv6 для VPN-подключения типа "сеть — сеть", подсеть маршрутизации должна быть одновременно сетью IPv4 и IPv6. Чтобы шлюз работал в среде IPv6, укажите адреса IPv4 и IPv6, разделенные точкой с запятой ( ; ), и укажите IPv6-адрес в удаленной конечной точке. Например, 192.0.2.1/23;2001:0db8:85a3:0000:0000:8a2e:0370::/64. Для указания диапазона виртуальных IP-адресов не используйте сокращенную форму IPv6-адреса; используйте формат 2001:db8:0:200:0:0:0:7 вместо 2001:db8:0:200::7.
Настройка подключения IPSec
Выполните описанную ниже процедуру.
- Выберите сеть виртуальных машин, для которой требуется настроить подключение IPSec типа "сеть — сеть", и выберите Подключение.
- Установите флажок Подключить к другой сети через туннель VPN. Если вы хотите включить BGP-пиринг в своем центре обработки данных, выберите Включить протокол BGP.
- Выберите службу сетевого контроллера для устройства шлюза.
- Последовательно выберите VPN-подключенияДобавитьAdd IPSec Tunnel (Добавить туннель IPSec).
- Введите подсеть, как показано на следующей схеме. Эта подсеть используется для маршрутизации пакетов из сети виртуальных машин. Вам не нужно предварительно настраивать эту подсеть в центре обработки данных.
- Введите имя подключения и IP-адрес удаленной конечной точки. При необходимости настройте пропускную способность.
- В поле Проверка подлинности выберите тип проверки подлинности, который требуется использовать. При выборе проверки подлинности на основе учетной записи запуска от имени создайте для нее учетную запись пользователя с именем пользователя и ключом IPSec в качестве пароля.
- В разделе Маршруты введите все удаленные подсети, к которым необходимо подключиться. Если вы выбрали включить протокол BGP на странице Подключение , маршруты не требуются.
- На вкладке Дополнительно примите значения параметров по умолчанию.
- Если вы выбрали включить протокол BGP на странице Подключение, вы можете указать ASN, одноранговый IP-адрес BGP и его ASN на странице мастера протокола пограничного шлюза , как показано ниже:
- Чтобы проверить подключение, попробуйте проверить связь с IP-адресом удаленной конечной точки с одной из виртуальных машин в сети виртуальных машин.
Настройка туннелирования GRE
Туннели GRE обеспечивают подключение между виртуальными и внешними сетями. Так как протокол GRE является упрощенным и поддержка GRE доступна на большинстве сетевых устройств, он становится идеальным выбором для туннелирования, когда шифрование данных не требуется. Поддержка GRE туннелей типа "сеть — сеть" упрощает переадресацию трафика между виртуальными и внешними сетями клиента.
Выполните описанную ниже процедуру.
- Выберите сеть виртуальных машин, в которой требуется настроить подключение GRE S2S, и выберите Подключение.
- Установите флажок Подключить к другой сети через туннель VPN. Если вы хотите включить BGP-пиринг в своем центре обработки данных, выберите Включить протокол BGP.
- Выберите службу сетевого контроллера для устройства шлюза.
- Последовательно выберите VPN-подключенияДобавитьДобавить туннель GRE.
- Введите подсеть, как показано на следующей схеме. Эта подсеть используется для маршрутизации пакетов из сети виртуальных машин. Эту подсеть не нужно предварительно настраивать в центре обработки данных.
- Введите имя подключения и IP-адрес удаленной конечной точки.
- Введите ключ GRE.
- При необходимости можно заполнить другие поля на этом экране. Эти значения не требуются для настройки подключения.
- В разделе Маршруты добавьте все удаленные подсети, к которым необходимо подключиться. Если на вкладке Подключение выбран параметр Включить протокол BGP, оставьте этот экран пустым, но заполните поля ASN, однорангового IP-адреса BGP и соответствующей ему ASN на вкладке Протокол BGP.
- Для остальных параметров можно использовать значения по умолчанию.
- Чтобы проверить подключение, проверьте связь с IP-адресом удаленной конечной точки с одной из виртуальных машин из сети виртуальных машин.
Настройка подключений IPsec и GRE на удаленном сайте
На устройстве удаленного узла во время установки подключения IPSec или GRE используйте IP-адрес конечной точки сети виртуальной машины из пользовательского интерфейса VMM в качестве адреса назначения.
Настройка переадресации L3
Переадресация L3 обеспечивает подключение между физической инфраструктурой в центре обработки данных и виртуализированной инфраструктурой в облаке виртуализации сети Hyper-V.
С помощью переадресации L3 виртуальные машины сети клиента могут подключаться к физической сети через шлюз Windows Server 2016 SDN, который уже настроен в среде SDN. В этом случае шлюз SDN действует как маршрутизатор между виртуализированной сетью и физической сетью.
Подробности см. в статьях Шлюз Windows Server как шлюз перенаправления и RAS gateway high availability (Высокая доступность шлюза RAS).
Прежде чем попытаться настроить L3, убедитесь в том, что выполняются указанные ниже условия.
- Для этого вы должны выполнить вход с правами администратора на сервере VMM.
- Необходимо настроить уникальную логическую сеть со следующим прыжком, указав уникальный идентификатор сети VLAN для каждой сети виртуальных машин клиента, для которой необходимо настроить переадресацию L3. Между сетью клиента и соответствующей физической сетью (с уникальным идентификатором сети VLAN) должно существовать взаимно однозначное соответствие.
Для создания логической сети со следующим прыжком в SCVMM выполните приведенные ниже действия.
В консоли VMM выберите Логические сети, щелкните правой кнопкой мыши и выберите Создать логическую сеть.
На странице Параметры выберите Одна подключенная сеть и установите флажки Create a VM network with the same name to allow virtual machines to access this logical network directly (Создать сеть виртуальных машин с тем же именем, чтобы разрешить виртуальным машинам напрямую получать доступ к этой логической сети) и Managed by Microsoft Network Controller (Под управлением сетевого контроллера Майкрософт).
Создайте пул IP-адресов для этой новой логической сети.
IP-адрес из этого пула требуется в сценарии для настройки переадресации L3.
В следующей таблице приведены примеры динамических и статических подключений L3.
Параметр | Подробные сведения и примеры значений |
---|---|
L3VPNConnectionName | Определяемое пользователем имя для сетевого подключения переадресации L3. Пример: Contoso_L3_GW |
VmNetworkName | Имя виртуальной сети клиента, которая доступна через сетевое подключение L3. Эта сеть должна существовать при запуске сценария. Пример: ContosoVMNetwork |
NextHopVMNetworkName | Определяемое пользователем имя для сети виртуальной машины со следующим прыжком, которая была создана в качестве необходимого компонента. Это физическая сеть, которая будет взаимодействовать с сетью виртуальной машины клиента. Эта сеть должна существовать при запуске сценария. Пример: Contoso_L3_Network |
LocalIPAddresses | IP-адреса, настраиваемые в сетевом интерфейсе L3 шлюза SDN. Этот IP-адрес должен принадлежать созданной логической сети со следующим прыжком. Необходимо указать маску подсети. Пример: 10.127.134.55/25 |
PeerIPAddresses | IP-адрес шлюза физической сети, доступного через логическую сеть L3. Этот IP-адрес должен принадлежать логической сети со следующим прыжком, которая была создана в качестве необходимого компонента. Этот IP-адрес будет служить следующим прыжком, когда трафик, отправляемый в физическую сеть из сети виртуальных машин клиента, достигнет шлюза SDN. Пример: 10.127.134.65 |
GatewaySubnet | Подсеть, используемая для маршрутизации между шлюзом HVN и виртуальной сетью клиента. Вы можете использовать любую подсеть, убедитесь, что она не перекрывается с логической сетью следующего прыжка. Пример: 192.168.2.0/24 |
RoutingSubnets | Статические маршруты, которые должны существовать в интерфейсе L3 для шлюза HNV. Эти маршруты используются для подсетей физической сети, которые должны быть доступны из сети виртуальных машин клиента через подключение L3. |
EnableBGP | Параметр для включения BGP. Значение по умолчанию: false. |
TenantASNRoutingSubnets | Номер ASN шлюза клиента только в том случае, если включен протокол BGP. |
Выполните следующий сценарий для настройки переадресации L3. Сведения о каждом параметре см. в таблице выше.
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 = @(),
[Parameter(Mandatory=$false)]
# Enable BGP in the tenant space
$EnableBGP = $false,
[Parameter(Mandatory=$false)]
# ASN number for the tenant gateway
# Only applicable when EnableBGP is true
$TenantASN = "0"
)
# Import SC-VMM PowerShell module
Import-Module virtualmachinemanager
# Retrieve Tenant VNET info and exit if VM Network not available
$vmNetwork = Get-SCVMNetwork -Name $VmNetworkName;
if ($vmNetwork -eq $null)
{
Write-Verbose "VM Network $VmNetworkName not found, quitting"
return
}
# Retrieve L3 Network info and exit if VM Network not available
$nextHopVmNetwork = Get-SCVMNetwork -Name $NextHopVmNetworkName;
if ($nextHopVmNetwork -eq $null)
{
Write-Verbose "Next Hop L3 VM Network $NextHopVmNetworkName not found, quitting"
return
}
# Retrieve gateway Service and exit if not available
$gatewayDevice = Get-SCNetworkGateway | Where {$_.Model -Match "Microsoft Network Controller"};
if ($gatewayDevice -eq $null)
{
Write-Verbose "Gateway Service not found, quitting"
return
}
# Retrieve Tenant Virtual Gateway info
$vmNetworkGatewayName = $VmNetwork.Name + "_Gateway";
$VmNetworkGateway = Get-SCVMNetworkGateway -Name $vmNetworkGatewayName -VMNetwork $vmNetwork
# Create a new Tenant Virtual Gateway if not configured
if($VmNetworkGateway -eq $null)
{
if($EnableBGP -eq $false)
{
# Create a new Virtual Gateway for tenant
$VmNetworkGateway = Add-SCVMNetworkGateway -Name $vmNetworkGatewayName -EnableBGP $false -NetworkGateway $gatewayDevice -VMNetwork $vmNetwork -RoutingIPSubnet $GatewaySubnet;
}
else
{
if($TenantASN -eq "0")
{
Write-Verbose "Please specify valid ASN when using BGP"
return
}
# Create a new Virtual Gateway for tenant
$VmNetworkGateway = Add-SCVMNetworkGateway -Name $vmNetworkGatewayName -EnableBGP $true -NetworkGateway $gatewayDevice -VMNetwork $vmNetwork -RoutingIPSubnet $GatewaySubnet -AutonomousSystemNumber $TenantASN;
}
}
if ($VmNetworkGateway -eq $null)
{
Write-Verbose "Could not Find / Create Virtual Gateway for $($VmNetwork.Name), quitting"
return
}
# Check if the network connection already exists
$vpnConnection = Get-SCVPNConnection -VMNetworkGateway $VmNetworkGateway -Name $L3VPNConnectionName
if ($vpnConnection -ne $null)
{
Write-Verbose "L3 Network Connection for $($VmNetwork.Name) already configured, skipping"
}
else
{
# Create a new L3 Network connection for tenant
$vpnConnection = Add-SCVPNConnection -NextHopNetwork $nexthopvmNetwork -Name $L3VPNConnectionName -IPAddresses $LocalIPAddresses -PeerIPAddresses $PeerIPAddresses -VMNetworkGateway $VmNetworkGateway -protocol L3;
if ($vpnConnection -eq $null)
{
Write-Verbose "Could not add network connection for $($VmNetwork.Name), quitting"
return
}
Write-Output "Created VPN Connection " $vpnConnection;
}
# Add all the required static routes to the newly created network connection interface
foreach($route in $RoutingSubnets)
{
Add-SCNetworkRoute -IPSubnet $route -RunAsynchronously -VPNConnection $vpnConnection -VMNetworkGateway $VmNetworkGateway
}
Настройка переадресации L3
Переадресация L3 обеспечивает подключение между физической инфраструктурой в центре обработки данных и виртуализированной инфраструктурой в облаке виртуализации сети Hyper-V.
С помощью подключения с переадресацией L3 виртуальные машины сети клиента могут подключаться к физической сети через шлюз Windows Server 2016/2019 SDN, который уже настроен в среде SDN. В этом случае шлюз SDN действует как маршрутизатор между виртуализированной сетью и физической сетью.
С помощью подключения с переадресацией L3 виртуальные машины сети клиента могут подключаться к физической сети через шлюз Windows Server 2016/2019/2022 SDN, который уже настроен в среде SDN. В этом случае шлюз SDN действует как маршрутизатор между виртуализированной сетью и физической сетью.
Подробности см. в статьях Шлюз Windows Server как шлюз перенаправления и RAS gateway high availability (Высокая доступность шлюза RAS).
Прежде чем попытаться настроить подключение к L3, убедитесь в том, что выполняются указанные ниже условия.
- Для этого вы должны выполнить вход с правами администратора на сервере VMM.
- Необходимо настроить уникальную логическую сеть со следующим прыжком, указав уникальный идентификатор сети VLAN для каждой сети виртуальных машин клиента, для которой необходимо настроить переадресацию L3. Между сетью клиента и соответствующей физической сетью (с уникальным идентификатором сети VLAN) должно существовать взаимно однозначное соответствие.
Для создания логической сети со следующим прыжком в VMM выполните приведенные ниже действия.
В консоли VMM выберите Логические сети, щелкните правой кнопкой мыши и выберите Создать логическую сеть.
На странице Параметры выберите Одна подключенная сеть и установите флажок Create a VM network with the same name to allow virtual machines to access this logical network directly (Создать сеть виртуальных машин с тем же именем, чтобы разрешить виртуальным машинам прямой доступ к этой логической сети) и Managed by Microsoft Network Controller (Под управлением сетевого контроллера Майкрософт).
Примечание
Начиная с VMM 2019 UR1 тип сети Одна подключенная изменен на Подключенная сеть.
- Создайте пул IP-адресов для этой новой логической сети. IP-адрес из этого пула требуется для настройки переадресации L3.
Чтобы настроить переадресацию L3, выполните следующие действия.
Примечание
Вы не можете ограничить пропускную способность в VPN-подключении L3.
В консоли VMM выберите виртуальную сеть клиента, которую нужно подключить к физической сети через шлюз L3.
Щелкните выбранную виртуальную сеть клиента правой кнопкой мыши и выберите СвойстваПодключение.
Установите флажок Подключить к другой сети через туннель VPN. Если вы хотите включить BGP-пиринг в своем центре обработки данных, выберите Включить протокол BGP.
Выберите службу сетевого контроллера для устройства шлюза.
На странице CONNECTIONS VPN выберите Добавить>туннель уровня 3.
Укажите подсеть в формате нотации CIDR для подсети маршрутизации. Эта подсеть используется для маршрутизации пакетов из сети виртуальных машин. Вам не нужно предварительно настраивать эту подсеть в центре обработки данных.
Используйте следующие сведения и настройте подключение L3:
Параметр | Подробные сведения |
---|---|
Имя | Определяемое пользователем имя для сетевого подключения переадресации L3. |
Сеть виртуальной машины (NextHop) | Определяемое пользователем имя для сети виртуальной машины со следующим прыжком, которая была создана в качестве необходимого компонента. Это физическая сеть, которая будет взаимодействовать с сетью виртуальной машины клиента. При нажатии кнопки Обзор будет доступна только одна подключенная сеть виртуальных машин , управляемая сетевой службой. |
Одноранговый IP-адрес | IP-адрес шлюза физической сети, доступного через логическую сеть L3. Этот IP-адрес должен принадлежать логической сети со следующим прыжком, которая была создана в качестве необходимого компонента. Этот IP-адрес будет служить следующим прыжком, когда трафик, отправляемый в физическую сеть из сети виртуальных машин клиента, достигнет шлюза SDN. Здесь должен быть указан IPv4-адрес. Можно указать несколько одноранговых IP-адресов, разделенных запятыми. |
Локальные IP-адреса | IP-адреса, настраиваемые в сетевом интерфейсе L3 шлюза SDN. Эти IP-адреса должны принадлежать логической сети со следующим прыжком, которая была создана в качестве необходимого компонента. Необходимо указать маску подсети. Пример: 10.127.134.55/25. Это должен быть IPv4-адрес в формате нотации CIDR. Одноранговый IP-адрес и локальный IP-адрес должен быть из одного пула. Эти IP-адреса должны относиться к подсети, заданной в определении логической сети для сети виртуальных машин. |
Если вы используете статические маршруты, введите все удаленные подсети, к которым вы хотите подключиться, в поле Маршруты.
Примечание
Вы должны настроить маршруты в физической сети для подсетей виртуальной сети клиента, где следующим прыжком является IP-адрес интерфейса L3 в шлюзе SDN (локальный IP-адрес используется при создании подключения L3). В этом случае обратный трафик в виртуальную сеть клиента правильно направляется через шлюз SDN.
Если вы используете BGP, убедитесь, что пиринг BGP установлен между IP-адресом внутреннего интерфейса шлюза SDN, который находится в другом отсеке на виртуальной машине шлюза (а не в секции по умолчанию) и одноранговым устройством в физической сети.
Для работы протокола BGP необходимо выполнить следующие действия.
Добавьте кэширующий узел BGP для подключения L3. Введите данные ASN, IP-адрес однорангового узла BGP и соответствующий ему ASN на странице Протокол BGP.
Определите внутренний адрес шлюза SDN, как указано в следующем разделе.
Создайте узел BGP на удаленной стороне (на шлюзе физической сети). При создании узла BGP используйте внутренний адрес шлюза SDN (определенный на предыдущем шаге) в качестве однорангового IP-адреса.
Настройте маршрут в физической сети с назначением в виде внутреннего адреса шлюза SDN и следующим прыжком на IP-адрес интерфейса L3 (значение локального IP-адреса, используемого при создании подключения L3).
Примечание
После настройки подключения L3 необходимо настроить маршруты в физической сети для подсетей виртуальной сети арендатора, где следующим прыжком является IP-адрес интерфейса L3 в шлюзе SDN (параметр LocalIpAddresses в скрипте). В этом случае обратный трафик в виртуальную сеть клиента правильно направляется через шлюз SDN.
Можно настроить статические маршруты или динамические маршруты (по протоколу BGP) с подключением L3. Если вы используете статические маршруты, их можно добавить с помощью Add-SCNetworkRoute , как описано в сценарии ниже.
Если вы используете BGP с туннельным подключением L3, нужно установить пиринг между внутренним IP-адресом интерфейса шлюза SDN, который присутствует в другой секции на виртуальной машине шлюза (не в секции по умолчанию) и одноранговым устройством в физической сети.
Для работы BGP необходимо выполнить следующие действия.
Добавьте узел BGP для L3 с помощью командлета Add-SCBGPPeer.
Пример: Add-SCBGPPeer -Name "peer1" -PeerIPAddress "12.13.14.15" -PeerASN 15 -VMNetworkGateway $VmNetworkGateway
Определите внутренний адрес шлюза SDN, как указано в следующем разделе.
Создайте узел BGP на удаленной стороне (на шлюзе физической сети). При создании однорангового узла BGP используйте внутренний адрес шлюза SDN (определенный на шаге 2 выше) в качестве IP-адреса однорангового узла.
Настройте маршрут в физической сети с конечным внутренним адресом шлюза SDN и следующим прыжком на IP-адрес интерфейса L3 (параметр LocalIPAddresses в сценарии).
Определение внутреннего адреса шлюза SDN
Выполните перечисленные ниже действия.
Выполните приведенные ниже командлеты PowerShell на компьютере с сетевым контроллером или на компьютере, который был настроен в качестве клиента сетевого контроллера:
$gateway = Get-NetworkControllerVirtualGateway -ConnectionUri <REST uri of your deployment>
$gateway.Properties.NetworkConnections.Properties.IPAddresses
Результаты этой команды могут отображать несколько виртуальных шлюзов в зависимости от того, сколько клиентов настроили подключения к шлюзу. Каждый виртуальный шлюз может иметь несколько подключений (IPSec, GRE, L3).
Так как вы уже знаете IP-адрес интерфейса L3 (LocalIPAddresses) подключения, на основе этого адреса вы можете определить правильное подключение. После установки правильного сетевого подключения выполните следующую команду (на соответствующем виртуальном шлюзе), чтобы получить IP-адрес маршрутизатора BGP виртуального шлюза.
$gateway.Properties.BgpRouters.Properties.RouterIp
Результатом выполнения команды является IP-адрес, который необходимо настроить на удаленном маршрутизаторе в качестве однорангового IP-адреса.
Настройка селектора трафика из VMM PowerShell
Выполните описанную ниже процедуру.
Примечание
Приведенные значения используются в только качестве примера.
Вы можете создать селектор трафика с указанными ниже параметрами.
$t= new-object Microsoft.VirtualManager.Remoting.TrafficSelector $t.Type=7 // IPV4=7, IPV6=8 $t.ProtocolId=6 // TCP =6, reference: https://en.wikipedia.org/wiki/List_of_IP_protocol_numbers $t.PortEnd=5090 $t.PortStart=5080 $t.IpAddressStart=10.100.101.10 $t.IpAddressEnd=10.100.101.100
Вы можете настроить указанный выше селектор трафика с помощью параметра -LocalTrafficSelectors командлета Add-SCVPNConnection или Set-SCVPNConnection.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по