SDN Express を使用して SDN インフラストラクチャをデプロイする
適用対象: 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 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 のデプロイを始める前に、物理およびホストのネットワーク インフラストラクチャを計画して構成します。 次の記事をご覧ください。
- 物理ネットワークの要件
- ホスト ネットワークの要件
- Windows Admin Center を使用してクラスターを作成する
- Windows PowerShell を使用してクラスターを作成する
- ソフトウェア定義ネットワーク インフラストラクチャを計画する
すべての 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) を作成するためのソースとして使用されます。
Note
VHDX の OS のバージョンは、Azure ローカル Hyper-V マシンで使用されているバージョンと一致している必要があります。 この VHDX ファイルは、すべての SDN インフラストラクチャ コンポーネントによって使用されます。
英語バージョンの VHDX ファイルをダウンロードするには、「 Azure portal からオペレーティング システムをダウンロードするを参照してください。 必ず Choose language ドロップダウン リストから English VHDX を選択してください。
現時点では、英語以外の VHDX ファイルはダウンロードできません。 英語以外のバージョンが必要な場合は、対応する ISO ファイルをダウンロードし、 Convert-WindowsImage
コマンドレットを使用して 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
Note
SDN Express スクリプト ファイルは GitHub で使用できなくなりました。
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 (NC、SLB、GW) によって使用される VHD ファイル パス
- VHDFile - すべての SDN インフラストラクチャ VM で使用される VHDX ファイル名
- VMLocation - SDN インフラストラクチャ VM へのファイル パス。 汎用名前付け規則 (UNC) パスはサポートされていないことに注意してください。 クラスターのストレージ ベースのパスの場合は、次のような形式を使用します。
C:\ClusterStorage\...
- JoinDomain - SDN インフラストラクチャ VM が参加しているドメイン
- SDNMacPoolStart - クライアント ワークロード VM の開始 MAC プール アドレス
- SDNMacPoolEnd - クライアント ワークロード VM の終了 MAC プール アドレス
- ManagementSubnet - Hyper-V ホスト、SLB、GW コンポーネントを管理するために NC によって使用される管理ネットワーク サブネット
- ManagementGateway - 管理ネットワークのゲートウェイ アドレス
- ManagementDNS - 管理ネットワークの DNS サーバー
- ManagementVLANID - 管理ネットワークの VLAN ID サーバー
- 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 と通信するために管理クライアント (Windows Admin Center など) によって使用される 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 セクション
SDN には、少なくとも 3 つのネットワーク コントローラー VM が推奨されています。
NCs = @()
セクションは、ネットワーク コントローラー VM に使用されます。 各 NC VM の MAC アドレスが、全般設定に記載されている SDNMACPool
範囲外であることを確認します。
- ComputerName - NC VM の名前
- HostName - NC VM が配置されているサーバーのホスト名
- ManagementIP - NC VM の管理ネットワーク IP アドレス
- MACAddress - NC VM の MAC アドレス
ソフトウェア ロード バランサー VM セクション
SDN には、少なくとも 2 つのソフトウェア ロード バランサー VM が推奨されています。
Muxes = @()
セクションは、SLB VM に使用されます。 各 SLB VM の MACAddress
パラメーターと PAMACAddress
パラメーターが、全般設定に記載されている SDNMACPool
範囲外であることを確認します。 PAIPAddress
パラメーターは、構成ファイルで指定されている PA プールの外部から取得するが、構成ファイルで指定されている 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 には、少なくとも 2 つのゲートウェイ VM (1 つはアクティブで、1 つは冗長) を使用することをお勧めします。
Gateways = @()
セクションは、ゲートウェイ VM に使用されます。 各ゲートウェイ VM の MACAddress
パラメーターが、全般設定で指定されている SDNMACPool
の範囲外であることを確認します。 FrontEndMac
と BackendMac
は、SDNMACPool
範囲内のものである必要があります。 FrontEndMac
と BackendMac
パラメーターは、必ず SDNMACPool
範囲の最後から取得してください。
ゲートウェイ コンポーネントをデプロイしない場合は、このセクションを空のままにします (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です。 冗長ゲートウェイにはアクティブな接続がありません。 アクティブなゲートウェイがダウンすると、そのゲートウェイからの接続が冗長ゲートウェイに移動し、冗長ゲートウェイがアクティブになります。
Note
RedundantCount の値を入力する場合は、ゲートウェイ VM の合計数が RedundantCount より少なくとも 1 つ多くであることを確認します。 既定では、 RedundantCount は 1 であるため、ゲートウェイ接続をホストするアクティブなゲートウェイが少なくとも 1 つあるようにするには、少なくとも 2 つのゲートウェイ VM が必要です。
テナント オーバーレイ ネットワークの設定
次のパラメーターは、テナント用にオーバーレイ仮想化ネットワークをデプロイして管理する場合に使用されます。 代わりにネットワーク コントローラーを使用して従来の VLAN ネットワークを管理している場合は、これらの値は空白のままにしてかまいません。
- PASubnet - プロバイダー アドレス (PA) ネットワークのサブネット
- PAVLANID - PA ネットワークの VLAN ID
- PAGateway - PA ネットワーク ゲートウェイの IP アドレス
- PAPoolStart - PA ネットワーク プールの開始 IP アドレス
- PAPoolEnd - PA ネットワーク プールの終了 IP アドレス
Hyper-V ネットワーク仮想化 (HNV) プロバイダーの論理ネットワークが IP アドレスを割り当てる方法を次に示します。 これを使用して、HNV プロバイダー ネットワークのアドレス空間を計画します。
- 各物理サーバーに 2 つの IP アドレスを割り当てます
- 各 SLB MUX VM に 1 つの IP アドレスを割り当てます
- 各ゲートウェイ VM に 1 つの IP アドレスを割り当てます
展開スクリプトを実行する
SDN Express スクリプトにより、指定した SDN インフラストラクチャがデプロイされます。 スクリプトが完了すると、SDN インフラストラクチャは VM ワークロードのデプロイに使用できるようになります。
README.md
ファイルで、デプロイ スクリプトの実行方法に関する最新情報を確認します。クラスター ホスト サーバーの管理者資格情報を持つユーザー アカウントから、次のコマンドを実行します。
SDNExpress\scripts\SDNExpress.ps1 -ConfigurationDataFile MultiNodeSampleConfig.psd1 -Verbose
NC VM が作成された後、DNS サーバー上のネットワーク コントローラーのクラスター名用に動的な DNS 更新を構成します。 詳細については、「動的 DNS 更新」を参照してください。
構成サンプル ファイル
SDN をデプロイするための次の構成サンプル ファイルは、Microsoft SDN GitHub リポジトリから入手できます。
Traditional VLAN networks.psd1 - 従来の VLAN ネットワーク上でマイクロセグメンテーションやサービスの品質などのネットワーク ポリシーを管理するためにネットワーク コントローラーをデプロイします。
Virtualized networks.psd1 - 仮想ネットワークと、仮想ネットワーク上のネットワーク ポリシーを管理するためにネットワーク コントローラーをデプロイします。
Software Load Balancer.psd1 - 仮想ネットワーク上で負荷分散を実現するためにネットワーク コントローラーとソフトウェア ロード バランサーをデプロイします。
SDN Gateways.psd1 - 外部ネットワークへの接続のためにネットワーク コントローラー、ソフトウェア ロード バランサー、およびゲートウェイをデプロイします。
SDN ネットワーク コントローラーを再デプロイする
ネットワーク コントローラーのデプロイに失敗した場合、あるいはもう一度デプロイする場合は、次の手順を実行します。
すべてのマシンからすべてのネットワーク コントローラー VM とその VHD を削除します。
このコマンドを実行して、すべてのマシンから次のレジストリ キーを削除します。
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 の管理からクラスターを削除して、もう一度追加します。
Note
このステップを行わないと、Windows Admin Center に SDN デプロイ ウィザードが表示されないことがあります。
(ネットワーク コントローラーをアンインストールし、もう一度展開しない場合にのみ追加の手順)Azure ローカル インスタンス内のすべてのマシンで次のコマンドレットを実行し、最後の手順をスキップします。
Disable-VMSwitchExtension -VMSwitchName "<Compute vmswitch name>" -Name "Microsoft Azure VFP Switch Extension"
デプロイ ウィザードをもう一度実行します。