Развертывание инфраструктуры SDN с помощью SDN Express
Область применения: Azure Stack HCI, версии 22H2 и 21H2; Windows Server 2022, Windows Server 2019, Windows Server 2016
Внимание
Azure Stack HCI теперь является частью Azure Local. Однако старые версии Azure Stack HCI, например 22H2, будут продолжать ссылаться на Azure Stack HCI и не отражают изменение имени. Подробнее.
В этой статье описывается, как развернуть сквозную инфраструктуру программно-определяемой сети (SDN) с помощью скриптов SDN Express PowerShell. Инфраструктура включает высокодоступный сетевой контроллер (NC) и, при необходимости, высокодоступную подсистему балансировки нагрузки программного обеспечения (SLB) и высокодоступный шлюз (GW). Скрипты поддерживают поэтапное развертывание, в котором можно развернуть только компонент сетевого контроллера для достижения основного набора функциональных возможностей с минимальными требованиями к сети.
Вы также можете развернуть инфраструктуру SDN с помощью Windows Admin Center или Диспетчера виртуальных машин System Center (VMM). Дополнительные сведения см. в разделе "Создание кластера " Шаг 5. SDN и управление ресурсами SDN в структуре VMM".
Внимание
Вы не можете использовать Microsoft System Center диспетчер виртуальных машин 2019 для управления кластерами под управлением Azure Stack HCI версии 21H2 или Windows Server 2022.
Перед началом работы
Прежде чем приступить к развертыванию SDN, спланируйте и настройте физическую и сетевую инфраструктуру узла. См. следующие статьи:
- Требования к физической сети
- Требования к сети узла
- Создание кластера с помощью Windows Admin Center
- Создание кластера с помощью Windows PowerShell
- Планирование инфраструктуры программно-определяемой сети
Вам не нужно развертывать все компоненты SDN. См. раздел поэтапного развертывания в плане программно-определяемой сетевой инфраструктуры, чтобы определить, какие компоненты инфраструктуры вам нужны, а затем выполните соответствующие скрипты.
Убедитесь, что на всех серверах узлов установлена операционная система Azure Stack HCI. Сведения о том, как это сделать, см. в статье "Развертывание операционной системы Azure Stack HCI".
Требования
Для успешного развертывания SDN необходимо выполнить следующие требования:
- Все хост-серверы должны иметь активированную функцию Hyper-V.
- Все серверы узлов должны быть присоединены к Active Directory.
- Необходимо создать виртуальный коммутатор.
- Физическая сеть должна быть настроена для подсетей и виртуальных ЛС, определенных в файле конфигурации.
- Скрипт SDN Express должен выполняться с компьютера Windows Server 2016 или более поздней версии.
- VHDX-файл, указанный в файле конфигурации, должен быть доступен с компьютера, на котором выполняется скрипт SDN Express.
Скачивание VHDX-файла
SDN использует VHDX-файл, содержащий операционную систему Azure Stack HCI или Операционную систему Windows Server в качестве источника для создания виртуальных машин SDN (виртуальных машин).
Примечание.
Версия ОС в VHDX должна соответствовать версии, используемой локальными компьютерами Hyper-V Azure. Этот VHDX-файл используется всеми компонентами инфраструктуры SDN.
Чтобы скачать версию VHDX-файла на английском языке, см. Скачать операционную систему из портала Azure. Выберите английский VHDX в раскрывающемся списке "Выбор языка".
В настоящее время файл VHDX не на английском языке недоступен для скачивания. Если требуется версия, не на английском языке, скачайте соответствующий ISO-файл и преобразуйте его в VHDX с помощью командлета Convert-WindowsImage
. Этот сценарий необходимо запустить с клиентского компьютера Windows. Возможно, вам потребуется запустить этот скрипт от имени администратора и изменить политику выполнения для сценариев с помощью Set-ExecutionPolicy
команды.
В следующем синтаксисе показан пример использования Convert-WindowsImage
:
Install-Module -Name Convert-WindowsImage
Import-Module Convert-WindowsImage
$wimpath = "E:\sources\install.wim"
$vhdpath = "D:\temp\AzureStackHCI.vhdx"
$edition=1
Convert-WindowsImage -SourcePath $wimpath -Edition $edition -VHDPath $vhdpath -SizeBytes 500GB -DiskLayout UEFI
Примечание.
Файлы скриптов SDN Express больше не доступны на сайте GitHub.
Установка модуля SDN Express PowerShell
Выполните следующую команду, чтобы установить последнюю версию модуля SDN Express PowerShell на компьютере, на котором требуется запустить установку SDN:
Install-Module -Name SDNExpress
Файлы автоматически устанавливаются в каталог модуля PowerShell по умолчанию: C:\Program Files\WindowsPowerShell\Modules\SdnExpress\
.
Изменение файла конфигурации
Файл данных конфигурации PowerShell (psd1- файл) хранит входные параметры и параметры конфигурации, необходимые для выполнения скрипта SDN Express. Этот файл содержит конкретные сведения о том, что необходимо настроить, в зависимости от того, развертываете ли вы только компонент сетевого контроллера или также компоненты программного балансировщика нагрузки и шлюза.
Дополнительные сведения см. в разделе "Планирование программно-определяемой сетевой инфраструктуры". Дополнительные сведения о соответствующем используемом файле конфигурации смотрите в примерах файлов конфигурации .
Перейдите в папку C:\Program Files\WindowsPowerShell\Modules\SdnExpress\
и откройте соответствующий файл конфигурации в избранном текстовом редакторе. Измените определенные значения параметров, чтобы соответствовать инфраструктуре и развертыванию.
Общие настройки и параметры
Эти настройки и параметры используются SDN в целом для всех развертываний. Дополнительные рекомендации см. в разделе "Требования к роли виртуальной машины инфраструктуры SDN".
- VHDPath — путь к файлу VHD, используемый всеми виртуальными машинами инфраструктуры SDN (NC, SLB, GW)
- VHDFile — имя VHDX-файла, используемое всеми виртуальными машинами инфраструктуры SDN
-
VMLocation — путь к виртуальным машинам инфраструктуры SDN. Обратите внимание, что пути универсального именования (UNC) не поддерживаются. Для путей, основанных на кластерном хранилище, используйте такой формат:
C:\ClusterStorage\...
- JoinDomain — домен, к которому присоединены виртуальные машины инфраструктуры SDN
- SDNMacPoolStart — начальный MAC-адрес пула для клиентских виртуальных машин с рабочей нагрузкой
- SDNMacPoolEnd — конечный адрес пула MAC для виртуальных машин рабочей нагрузки клиента
- ManagementSubnet — подсеть сети управления, используемая NC для управления узлами Hyper-V, SLB и GW
- ManagementGateway — адрес шлюза для сети управления
- ManagementDNS — DNS-сервер для сети управления
- ManagementVLANID — идентификатор виртуальной локальной сети для сети управления
-
DomainJoinUsername — имя администратора. Обратите внимание, что имя пользователя должно быть в следующем формате:
domainname\username
Для примера, если домен -contoso.com
, введите имя пользователя какcontoso\<username>
. Не используйте форматы, напримерcontoso.com\<username>
илиusername@contoso.com
-
LocalAdminDomainUser — имя пользователя локального администратора. Обратите внимание, что имя пользователя должно быть в следующем формате:
domainname\username
Для примера, если домен -contoso.com
, введите имя пользователя какcontoso\<username>
. Не используйте форматы, напримерcontoso.com\<username>
илиusername@contoso.com
- RestName — DNS-имя, используемое клиентами управления (например, Windows Admin Center) для взаимодействия с NC
- RestIpAddress — статический IP-адрес для REST API, который выделяется из сети управления. Его можно использовать для разрешения DNS или развертываний, основанных на IP с использованием REST.
- HyperVHosts — серверы узлов, управляемые сетевым контроллером
- NCUsername — имя пользователя учетной записи сетевого контроллера
- ProductKey — ключ продукта для виртуальных машин инфраструктуры SDN
- SwitchName — требуется только в том случае, если на узлах Hyper-V существует несколько виртуальных коммутаторов.
- VMMemory — память (в ГБ), назначенная виртуальным машинам инфраструктуры. Значение по умолчанию — 4 ГБ
- VMProcessorCount — количество процессоров, назначенных виртуальным машинам инфраструктуры. Значение по умолчанию — 8
- Локаль — если не указано, используется локаль компьютера развертывания
- TimeZone — если не указано, используется локальный часовой пояс компьютера развертывания.
Пароли можно включить при необходимости, если они хранятся зашифрованными в виде текстово закодированных защищенных строк. Пароли используются только в том случае, если скрипты SDN Express выполняются на том же компьютере, где были зашифрованы пароли, в противном случае он запрашивает следующие пароли:
- DomainJoinSecurePassword — для учетной записи домена
- LocalAdminSecurePassword — для учетной записи локального администратора
- NCSecurePassword — для учетной записи сетевого контроллера
Раздел виртуальной машины контроллера сети
Для SDN рекомендуется использовать не менее трех виртуальных машин сетевого контроллера.
Этот NCs = @()
раздел используется для виртуальных машин сетевого контроллера. Убедитесь, что MAC-адрес каждой виртуальной машины NC находится за пределами SDNMACPool
диапазона, указанного в общих параметрах.
- Имя компьютера — имя виртуальной машины NC
- HostName — имя узла сервера, на котором находится виртуальная машина NC
- ManagementIP — IP-адрес сети управления для виртуальной машины NC
- MACAddress — MAC-адрес для виртуальной машины NC
Раздел программного балансировщика нагрузки виртуальной машины
Для SDN рекомендуется использовать не менее двух виртуальных машин Подсистемы балансировки нагрузки программного обеспечения.
Этот Muxes = @()
раздел используется для виртуальных машин SLB. Убедитесь, что параметры MACAddress
и PAMACAddress
каждой виртуальной машины SLB находятся вне диапазона SDNMACPool
, указанного в общих параметрах. Убедитесь, что вы получили параметр PAIPAddress
из внешней части пула PA, указанного в файле конфигурации, но принадлежащий PASubnet, указанному в этом же файле.
Оставьте этот раздел пустым (Muxes = @()
) если вы не развертываете компонент SLB:
- Имя компьютера — имя виртуальной машины SLB
- HostName — имя узла сервера, на котором находится виртуальная машина SLB
- ManagementIP — IP-адрес сети управления для виртуальной машины SLB
- MACAddress — MAC-адрес для виртуальной машины SLB
- PAIPAddress — IP-адрес сети поставщика (PA) для виртуальной машины SLB
- PAMACAddress — IP-адрес сети поставщика (PA) для виртуальной машины SLB
Раздел ВМ шлюза
Для SDN рекомендуется использовать не менее двух виртуальных машин шлюза (один активный и один избыточный).
Этот Gateways = @()
раздел используется для виртуальных машин шлюза. Убедитесь, что MACAddress
параметр каждой виртуальной машины шлюза находится за пределами SDNMACPool
диапазона, указанного в параметрах "Общие".
FrontEndMac
и BackendMac
должны находиться в диапазоне SDNMACPool
. Убедитесь, что вы получите FrontEndMac
и BackendMac
параметры из конца SDNMACPool
диапазона.
Оставьте этот раздел пустым (Gateways = @()
) если не развертывать компонент шлюза:
- Имя компьютера — имя виртуальной машины шлюза
- HostName — имя узла сервера, на котором находится виртуальная машина шлюза
- ManagementIP — IP-адрес сети управления для виртуальной машины шлюза
- MACAddress — MAC-адрес для виртуальной машины шлюза
- FrontEndMac — сетевой внешний MAC-адрес поставщика для виртуальной машины шлюза
- BackEndMac — сетевой серверный MAC-адрес поставщика для виртуальной машины шлюза
Дополнительные параметры для SLB и шлюза
Дополнительные параметры, используемые виртуальными машинами SLB и Gateway. Оставьте эти значения пустыми, если вы не развертываете виртуальные машины SLB или шлюза:
- SDNASN — номер автономной системы (ASN), используемый SDN для взаимодействия с сетевыми коммутаторами
- МаршрутизаторASN — ASN шлюзового маршрутизатора
- МаршрутизаторIPAddress — IP-адрес маршрутизатора шлюза
- PrivateVIPSubnet — виртуальный IP-адрес (VIP) для частной подсети
- PublicVIPSubnet — виртуальный IP-адрес для общедоступной подсети
Следующие дополнительные параметры используются только виртуальными машинами шлюза. Оставьте эти значения пустыми, если вы не развертываете виртуальные машины шлюза:
PoolName — имя пула, используемое всеми виртуальными машинами шлюза
GRESubnet — VIP подсеть для GRE (при использовании подключений GRE) Емкость — емкость в кб/с для каждой виртуальной машины шлюза в пуле
RedundantCount — количество шлюзов в избыточном режиме. Значение по умолчанию равно 1. Избыточные шлюзы не имеют активных подключений. Когда активный шлюз выходит из строя, подключения, установленные через этот шлюз, перемещаются к избыточному шлюзу, и избыточный шлюз становится активным.
Примечание.
Если вы введите значение для RedundantCount, убедитесь, что общее количество виртуальных машин шлюза как минимум на одну больше, чем RedundantCount. По умолчанию значение RedundantCount равно 1, поэтому необходимо иметь не менее 2 виртуальных машин шлюза, чтобы обеспечить наличие по крайней мере 1 активного шлюза для подключений к шлюзу.
Параметры для сетей наложения клиента
Следующие параметры используются, если вы развертываете и управляете наложенными виртуализированными сетями для арендаторов. Если вы используете сетевой контроллер для управления традиционными сетями виртуальной локальной сети, эти значения можно оставить пустым.
- PASubnet — подсеть для сети PA (Provider Address)
- PAVLANID — идентификатор виртуальной ЛС для сети PA
- PAGateway — IP-адрес для сетевого шлюза PA
- PAPoolStart — начальный IP-адрес для сетевого пула PA
- PAPoolEnd — конечный IP-адрес для сетевого пула PA
Вот как логическая сеть Провайдера виртуализации сети Hyper-V (HNV) выделяет IP-адреса. Используйте это для планирования адресного пространства для сети поставщика HNV.
- Выделяет два IP-адреса каждому физическому серверу
- Выделяет один IP-адрес для каждой виртуальной машины SLB MUX
- Выделяет один IP-адрес для каждой виртуальной машины шлюза
Выполнение скрипта развертывания
Скрипт SDN Express развертывает указанную инфраструктуру SDN. По завершении скрипта инфраструктура SDN готова к использованию для развертываний рабочих нагрузок виртуальной машины.
Просмотрите файл
README.md
, чтобы получить срочную информацию о том, как запустить скрипт развертывания.Выполните следующую команду из учетной записи пользователя с учетными данными администратора для серверов узлов кластера:
.\SDNExpress.ps1 -ConfigurationDataFile “Traditional VLAN networks.psd1” -DomainJoinCredential $cred -NCCredential $cred -LocalAdminCredential $cred -Verbose
После создания виртуальных машин NC настройте динамические обновления DNS для имени кластера сетевого контроллера на DNS-сервере. Дополнительные сведения см. в разделе "Динамические обновления DNS".
Примеры файлов конфигурации
В репозитории GitHub Microsoft SDN доступны следующие примеры файлов конфигурации для развертывания SDN:
Традиционные сети VLAN.psd1 — развертывание Сетевого контроллера для управления сетевыми политиками, такими как микросегментация и качество обслуживания в традиционных сетях VLAN.
Virtualized networks.psd1 — развертывание сетевого контроллера для управления виртуальными сетями и политиками сети в виртуальных сетях.
Software Load Balancer.psd1 — развертывание сетевого контроллера и программного подсистемы балансировки нагрузки для балансировки нагрузки в виртуальных сетях.
SDN Gateways.psd1 — развертывание сетевого контроллера, программного балансировщика нагрузки и шлюза для подключения к внешним сетям.
Повторное развертывание сетевого контроллера SDN
Если развертывание сетевого контроллера завершается ошибкой или вы хотите развернуть его еще раз, сделайте следующее:
Удалите все виртуальные машины сетевого контроллера и их виртуальные жесткие диски со всех компьютеров.
Удалите следующие разделы реестра со всех компьютеров, выполнив следующую команду:
Remove-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Services\NcHostAgent\Parameters\' -Name Connections Remove-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Services\NcHostAgent\Parameters\' -Name NetworkControllerNodeNames
После удаления ключа реестра удалите кластер из управления Windows Admin Center и затем добавьте его обратно.
Примечание.
Если этот шаг не выполняется, в Windows Admin Center может не отображаться мастер развертывания SDN.
(Дополнительный шаг только в том случае, если вы планируете удалить сетевой контроллер и не развернуть его снова) Выполните следующий командлет на всех компьютерах в локальном экземпляре Azure, а затем пропустите последний шаг.
Disable-VMSwitchExtension -VMSwitchName "<Compute vmswitch name>" -Name "Microsoft Azure VFP Switch Extension"
Снова запустите мастер развертывания.