共用方式為


使用 SDN Express 部署 SDN 基礎結構

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

重要

Azure Stack HCI 現在是 Azure 本機的一部分。 產品檔案重新命名正在進行中。 不過,舊版的 Azure Stack HCI,例如 22H2 會繼續參考 Azure Stack HCI,而且不會反映名稱變更。 深入了解

在本主題中,您會使用 SDN Express PowerShell 腳本來部署端對端軟體定義網路 (SDN) 基礎結構。 基礎結構包括高可用性 (HA) 網路控制站 (NC),以及選擇性的高可用性軟體負載平衡器 (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 進行設定。
  • SDN Express 腳本必須從 Windows Server 2016 或更新版本電腦執行。
  • 組態檔中指定的 VHDX 檔案必須可從執行 SDN Express 腳本的電腦連線。

下載 VHDX 檔案

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

注意

VHDX 中的 OS 版本必須符合 Azure 本機 Hyper-V 機器所使用的版本。 所有 SDN 基礎結構元件都會使用此 VHDX 檔案。

若要下載 VHDX 檔案的英文版本,請參閱從 Azure 入口網站 下載作業系統。 請務必從 [選擇語言] 下拉式清單中選取 [英文 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 腳本檔案。

安裝 SDN Express PowerShell 模組

執行下列命令,在您要執行 SDN 安裝的電腦上安裝最新版本的 SDN Express PowerShell 模組:

Install-Module -Name SDNExpress

檔案會自動安裝在預設 PowerShell 模組目錄中:**C:\Program Files\WindowsPowerShell\Modules\SdnExpress**。

編輯設定檔

PowerShell MultiNodeSampleConfig.psd1 組態數據檔(位於上述安裝路徑)包含SDN Express 腳本所需的所有參數和設定,做為各種參數和組態設定的輸入。 此檔案有需要根據您只部署網路控制站元件或軟體負載平衡器和網關元件而需要填寫的特定資訊。 如需詳細資訊,請參閱 規劃軟體定義網路基礎結構

流覽至 *C:\Program Files\WindowsPowerShell\Modules\SdnExpress* 資料夾,並在文本編輯器中開啟 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 - 管理用戶端用來與 NC 通訊的 DNS 名稱(例如 Windows Admin Center)
  • RestIpAddress - REST API 的靜態 IP 位址,該位址會從管理網路配置。 它可用於 DNS 解析或 REST IP 型部署
  • HyperVHosts - 由網路控制站管理的主機伺服器
  • NCUsername - 網路控制站帳戶用戶名稱
  • ProductKey - SDN 基礎結構 VM 的產品密鑰
  • SwitchName - 只有在 Hyper-V 主機上有多個虛擬交換器時才需要
  • VMMemory - 指派給基礎結構 VM 的記憶體(以 GB 為單位)。 預設值為 4 GB
  • VMProcessorCount - 指派給基礎結構 VM 的處理器數目。 預設值為8
  • 地區設定 - 如果未指定,則會使用部署計算機的地區設定
  • TimeZone - 如果未指定,則會使用部署電腦的當地時區

如果加密為文字編碼的安全字串,則可以選擇性地包含密碼。 只有在加密密碼的相同計算機上執行 SDN Express 腳本時,才會使用密碼,否則會提示輸入這些密碼:

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

網路控制站 VM 區段

針對 SDN,建議至少使用三部網路控制卡 VM。

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

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

軟體 Load Balancer VM 區段

針對 SDN,建議至少使用兩個軟體負載平衡器 VM。

Muxes = @() 段用於 SLB VM。 請確定 MACAddress 每個 SLB VM 的 和 PAMACAddress 參數都超出 SDNMACPool 一般設定中列出的範圍。 請確定您會從組態檔中指定的PA集區外部取得 PAIPAddress 參數,但組態檔中指定的PASubnet部分。

如果未部署 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。 請確定 MACAddress 每個閘道 VM 的參數都超出 SDNMACPool 一般設定中列出的範圍。 和 FrontEndMac BackendMac 必須介於 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 連線)

  • 容量 - 集區中每個閘道 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 存放庫取得:

  • 傳統 VLAN 網路.psd1 - 部署網路控制站來管理傳統 VLAN 網路上的微分和服務品質等網路原則。

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

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

  • SDN Gateways.psd1 - 部署網路控制站、軟體負載平衡器和閘道,以連線到外部網路。

重新部署 SDN 網路控制站

如果網路控制站部署失敗,或您想要再次部署,請執行下列動作:

  1. 從所有計算機刪除所有網路控制卡 VM 及其 VHD。

  2. 執行此指令,從所有機器移除下列登錄機碼:

     Remove-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Services\NcHostAgent\Parameters\' -Name Connections
     Remove-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Services\NcHostAgent\Parameters\' -Name NetworkControllerNodeNames
    
  3. 拿掉登錄機碼之後,請從 Windows Admin Center 管理中移除叢集,然後將它加回。

    注意

    如果您未執行此步驟,可能不會在 Windows Admin Center 中看到 SDN 部署精靈。

  4. (只有在您打算卸載網路控制站而不再次部署網路控制站時,才需要執行其他步驟)在 Azure 本機實例的所有電腦上執行下列 Cmdlet,然後略過最後一個步驟。

    Disable-VMSwitchExtension -VMSwitchName "<Compute vmswitch name>" -Name "Microsoft Azure VFP Switch Extension"
    
  5. 再次執行部署精靈。

下一步