使用 SDN Express 部署 SDN 基礎結構

適用於:Azure Stack HCI 版本 22H2 和 21H2;Windows Server 2022、Windows Server 2019、Windows Server 2016

在本主題中,您會使用 SDN Express PowerShell 指令碼來部署端對端軟體定義的網路 (SDN) 基礎結構。 基礎結構包含高可用性 (HA) 網路控制器 (NC),以及選擇性的高可用性軟體 Load Balancer (SLB),以及高可用性閘道 (GW)。 這些指令碼支援階段式部署,您可以在其中部署網路控制卡元件,以最基本的網路需求達成一組核心功能。

您也可以使用 Windows Admin Center 或使用 System Center Virtual Machine Manager (VMM) 來部署 SDN 基礎結構。 如需詳細資訊,請參閱建立群集 - 步驟 5:SDN,並參閱管理 VMM 網狀架構中的 SDN 資源

重要

您無法使用 Microsoft System Center Virtual Machine Manager 2019 來管理執行 Azure Stack HCI 21H2 版或 Windows Server 2022 的叢集。

開始之前

開始 SDN 部署之前,請先規劃並設定您的實體和主機網路基礎結構。 參考下列文章:

您不必部署所有 SDN 元件。 請參閱規劃軟體定義網路基礎結構階段式部署一節,以判斷您所需的基礎結構元件,然後據以執行指令碼。

請確定所有主機伺服器都已安裝 Azure Stack HCI 作業系統。 如需了解如何進行此作業,請參閱部署 Azure Stack HCI 作業系統

規格需求

成功的 SDN 部署必須符合下列需求:

  • 所有主機伺服器都必須啟用 Hyper-V。
  • 所有主機伺服器都必須加入Active Directory。
  • 必須建立虛擬交換器。
  • 實體網路必須針對組態檔中定義的子網和 VLAN 進行設定。
  • 必須從 Windows Server 2016 或更新版本的電腦執行 SDN Express 腳本。
  • 組態檔中指定的 VHDX 檔案必須可從執行 SDN Express 腳本的電腦連線。

下載 VHDX 檔案

SDN 使用的 VHDX 檔案包含 Azure Stack HCI 或 Windows Server 作業系統 (OS),做為建立 SDN 虛擬機器 (VM) 的來源。

注意

VHDX 中的作業系統版本必須符合 Azure Stack HCI Hyper-V 主機所使用的版本。 所有 SDN 基礎結構元件都會使用此 VHDX 檔案。

若要下載 VHDX 檔案的英文版本,請參閱從 Azure 入口網站 下載 Azure Stack HCI 操作系統。 請務必從 [選擇語言] 下拉式清單中選取 [英文 VHDX]。

目前無法下載非英文 VHDX 檔案。 如果您需要非英文版本,請下載對應的 ISO 檔案,並使用 Convert-WindowsImage Cmdlet 將它轉換成 VHDX。 您必須從 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

下載 GitHub 存放庫

SDN Express 指令檔檔案會存留在 GitHub 中。 第一個步驟是在您的部署電腦上取得必要的檔案和資料夾。

  1. 移至 Microsoft SDN GitHub 存放庫。

  2. 在存放庫中,展開 [程式碼] 下拉式清單,然後選擇 [複製] 或 [下載 ZIP],將 SDN 檔案下載至您指定的部署電腦。

    注意

    指定的部署電腦必須執行 Windows Server 2016 或更新版本。

  3. 將 ZIP 檔案解壓縮,然後將 SDNExpress 資料夾複製到您部署電腦的 C:\ 資料夾。

編輯組態檔

PowerShell MultiNodeSampleConfig.psd1 設定資料檔案會包含 SDN Express 指令碼所需的所有參數和設定,以做為各種參數和組態設定的輸入。 根據您要部署的是網路控制卡元件,還是軟體負載平衡器和閘道元件,這個檔案有關於需要填寫哪些內容的特定資訊。 如需詳細資訊,請參閱規劃軟體定義網路基礎結構主題。

瀏覽至 C:\SDNExpress\scripts 資料夾,然後在您慣用的文字編輯器中開啟 MultiNodeSampleConfig.psd1 檔案。 變更特定的參數值,以符合您的基礎結構和部署:

一般設定和參數

SDN 一般會針對所有部署使用設定和參數。 如需特定建議,請參閱 SDN 基礎結構 VM 角色需求

  • VHDPath - 所有 SDN 基礎結構 VM 使用的 VHD 檔案路徑 (NC、SLB、GW)
  • VHDFile - 所有 SDN 基礎結構 VM 所使用的 VHDX 檔名
  • VMLocation - SDN 基礎結構 VM 的檔案路徑。 請注意,不支援通用命名慣例 (UNC) 路徑。 針對叢集記憶體型路徑,請使用類似 的格式 C:\ClusterStorage\...
  • JoinDomain - SDN 基礎結構 VM 所加入的網域
  • SDNMacPoolStart - 用戶端工作負載 VM 的開始 MAC 集區位址
  • SDNMacPoolEnd - 用戶端工作負載 VM 的結束 MAC 集區位址
  • ManagementSubnet - NC 用來管理 Hyper-V 主機、SLB 和 GW 元件的管理網路子網路
  • ManagementGateway - 管理網路的閘道位址
  • ManagementDNS - 管理網路的 DNS 伺服器
  • ManagementVLANID - 管理網路的 VLAN 識別碼
  • 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 - 管理用戶端 (例如 Windows Admin Center) 用來與 NC 通訊的 DNS 名稱
  • RestIpAddress - REST API 的靜態 IP 位址,其會從您的管理網路配置。 它可用於 DNS 解析或 REST IP 型部署
  • HyperVHosts - 要由網路控制卡管理的主機伺服器
  • NCUsername - 網路控制站帳戶用戶名稱
  • ProductKey - SDN 基礎結構 VM 的產品金鑰
  • SwitchName - 僅在 Hyper-V 主機上有一個以上的虛擬交換器時才需要
  • VMMemory - 指派給基礎結構 VM 的記憶體 (GB)。 預設值是 4 GB
  • VMProcessorCount - 指派給基礎結構 VM 的處理器數目。 預設值為 8
  • Locale - 如果未指定,則會使用部署電腦的地區設定
  • TimeZone - 如果未指定,則會使用部署電腦的當地時區

如果加密儲存為文字編碼的安全字串,則可以選擇性地包含密碼。 僅在 SDN Express 指令碼是在加密密碼的同一部電腦上執行時,才會使用密碼,否則系統會提示您輸入這些密碼:

  • DomainJoinSecurePassword - 適用於網域帳戶
  • LocalAdminSecurePassword - 適用於本機系統管理員帳戶
  • NCSecurePassword - 適用於網路控制卡帳戶

網路控制卡 VM 區段

建議最少使用三個網路控制卡 VM 進行 SDN。

NCs = @() 區段用於網路控制卡 VM。 請確定每個 NC VM 的 MAC 位址超出 [一般] 設定中所列的 SDNMACPool 範圍。

  • ComputerName - NC VM 的名稱
  • HostName - NC VM 所在伺服器的主機名稱
  • ManagementIP - NC VM 的管理網路 IP 位址
  • MACAddress - NC VM 的 MAC 位址

軟體 Load Balancer VM 區段

建議最少採用兩個軟體 Load Balancer VM 進行 SDN。

Muxes = @() 區段用於 SLB VM。 請確定每個 SLB VM 的 MACAddressPAMACAddress 參數都超出 [一般] 設定中所列的 SDNMACPool 範圍。 確定您從設定檔中指定的 PA 集區以外,但在設定檔中指定的 PASubnet 部分取得 PAIPAddress 參數。

如果未部署 SLB 元件,請將此區段保留空白 (Muxes = @()):

  • ComputerName - SLB VM 的名稱
  • HostName - SLB VM 所在伺服器的主機名稱
  • ManagementIP - SLB VM 的管理網路 IP 位址
  • MACAddress - SLB VM 的 MAC 位址
  • PAIPAddress - 適用於 SLB VM 的提供者網路 IP 位址 (PA)
  • PAMACAddress - 適用於 SLB VM 的提供者網路 IP 位址 (PA)

閘道 VM 區段

針對 SDN,建議至少使用兩個閘道 VM (一個作用中和一個備援) 。

Gateways = @() 區段可用於閘道 VM。 請確定每個閘道 VM 的 MACAddress 參數超出 [一般] 設定中所列的 SDNMACPool 範圍。 FrontEndMacBackendMac 必須來自 SDNMACPool 範圍內。 確定您取得 SDNMACPool 範圍結尾的 FrontEndMacBackendMac 參數。

如果未部署閘道元件,請將此區段保留空白 (Gateways = @()):

  • ComputerName - 閘道 VM 的名稱
  • HostName - 閘道 VM 所在伺服器的主機名稱
  • ManagementIP - 閘道 VM 的管理網路 IP 位址
  • MACAddress - 閘道 VM 的 MAC 位址
  • FrontEndMac - 閘道 VM 的提供者網路前端 MAC 位址
  • BackEndMac - 閘道 VM 的提供者網路後端 MAC 位址

SLB 和閘道的其他設定

SLB 和閘道 VM 會使用下列其他參數。 如果您未部署 SLB 或閘道 VM,請將這些值保留空白:

  • SDNASN - SDN 用來與網路交換器對等的自發系統編號 (ASN)
  • RouterASN - 閘道路由器 ASN
  • RouterIPAddress - 閘道路由器 IP 位址
  • PrivateVIPSubnet - 私人子網路的虛擬 IP 位址 (VIP)
  • PublicVIPSubnet - 公用子網路的虛擬 IP 位址

下列其他參數僅由閘道 VM 使用。 如果您未部署閘道 VM,請將這些值保留空白:

  • PoolName - 所有閘道 VM 使用的集區名稱

  • GRESubnet - GRE 的 VIP 子網路 (如果使用 GRE 連線)

  • Capacity - 集區中每個閘道 VM 的容量 (以 Kbps 為單位)

  • RedundantCount - 備援模式中的閘道數目。 預設值為 1。 備援閘道沒有任何作用中的連線。 一旦作用中閘道關閉,該閘道的連線就會移至備援閘道,而備援閘道會變成作用中。

    注意

    如果您填入 RedundantCount 的值,請確定閘道 VM 總數至少是一個以上的 RedundantCount。 根據預設, RedundantCount 為 1,因此您必須至少有 2 個閘道 VM,以確保至少有 1 個作用中閘道可裝載網關聯機。

租用戶重疊網路的設定

如果您要部署和管理租用戶的重疊虛擬網路,則會使用下列參數。 如果您改為使用網路控制卡來管理傳統的 VLAN 網路,則可將這些值保留空白。

  • PASubnet - 提供者位址 (PA) 網路的子網路
  • PAVLANID - 適用於 PA 網路的 VLAN 識別碼
  • PAGateway - 適用於 PA 網路閘道的 IP 位址
  • PAPoolStart - PA 網路集區的開始 IP 位址
  • PAPoolEnd - PA 網路集區的結束 IP 位址

以下是 Hyper-V 網路虛擬化 (HNV) 提供者邏輯網路配置 IP 位址的方式。 使用此項目來規劃 HNV 提供者網路的地址空間。

  • 將兩個IP位址配置給每個實體伺服器
  • 為每個 SLB MUX VM 配置一個 IP 位址
  • 將一個IP位址配置給每個閘道 VM

執行部署指令碼

SDN Express 指令碼會部署您指定的 SDN 基礎結構。 當指令碼完成時,您的 SDN 基礎結構已準備好用於 VM 工作負載部署。

  1. 請檢閱 README.md 檔案,以取得有關如何執行部署指令碼的最新資訊。

  2. 從具有叢集主機伺服器系統管理認證的使用者帳戶執行下列命令:

    SDNExpress\scripts\SDNExpress.ps1 -ConfigurationDataFile MultiNodeSampleConfig.psd1 -Verbose
    
  3. 建立 NC VM 之後,請在 DNS 伺服器上設定網路控制器叢集名稱的動態 DNS 更新。 如需相關資訊,請參閱動態 DNS 更新

組態範例檔案

以下是可用於部署 SDN 的設定範例檔案,可在 Microsoft SDN GitHub 存放庫上取得:

  • Traditional VLAN networks.psd1 - 部署網路控制卡以管理網路原則,例如傳統 VLAN 網路上的微分割和服務品質。

  • Virtualized networks.psd1 - 部署網路控制卡,以管理虛擬網路上的虛擬網路和網路原則。

  • Software Load Balancer.psd1 - 部署網路控制卡和軟體 Load Balancer,以在虛擬網路上進行負載平衡。

  • SDN Gateways.psd1 - 部署網路控制卡、軟體 Load Balancer 和閘道,以連線到外部網路。

後續步驟