仮想ネットワーク ピアリングの VPN ゲートウェイ転送を構成する

この記事は、仮想ネットワーク ピアリングのゲートウェイ転送を構成するために役立ちます。 仮想ネットワーク ピアリングは、2 つの Azure 仮想ネットワークをシームレスに接続し、その 2 つの仮想ネットワークを接続目的で 1 つにマージします。 ゲートウェイ転送は、1 つの仮想ネットワークがクロスプレミス接続または VNet 間接続用にピアリングされた仮想ネットワーク内の VPN ゲートウェイを使用できるようにするピアリング プロパティです。

次の図は、仮想ネットワーク ピアリングでのゲートウェイ転送のしくみを示しています。 図では、ピアリングされた仮想ネットワークは、ゲートウェイ転送によって、Hub-RM 内の Azure VPN ゲートウェイを使用できます。 VPN ゲートウェイで使用可能な接続 (S2S、P2S、および VNet 間接続を含みます) は、3 つの仮想ネットワークのすべてに適用されます。

Diagram of Gateway transit.

トランジット オプションは、同じデプロイ モデルまたは異なるデプロイ モデル間のピアリングに使用でき、Basic SKU を除くすべての VPN Gateway SKU で使用できます。 異なるデプロイ モデル間で転送を構成する場合、ハブ仮想ネットワークと仮想ネットワーク ゲートウェイは、レガシー クラシック デプロイ モデルではなく Resource Manager デプロイ モデルに配置する必要があります。

ハブ アンド スポーク ネットワーク アーキテクチャでは、スポーク 仮想ネットワークは、ゲートウェイ転送によって、ハブ内の VPN ゲートウェイを共有でき、VPN ゲートウェイをすべてのスポーク仮想ネットワークにデプロイする必要はありません。 ゲートウェイに接続された仮想ネットワークまたはオンプレミス ネットワークへのルートは、ゲートウェイ転送を使用して、ピアリングされた仮想ネットワークのルーティング テーブルに伝達されます。

VPN ゲートウェイからの自動ルート伝達は無効にできます。 ルーティング テーブルを [BGP ルート伝達を無効にする] オプションを指定して作成し、そのルーティング テーブルをサブネットに関連付けて、これらのサブネットへのルート配布を防ぎます。 詳細については、仮想ネットワーク ルーティング テーブルに関する記事を参照してください。

この記事では、次の 2 つのシナリオを取り上げます。 ご使用の環境に該当するシナリオを選んでください。 ほとんどのユーザーは、同じデプロイ モデルのシナリオを使用します。 お使いの環境内の既存のクラシック デプロイ モデル VNet (レガシー VNet) を使用しない場合は、異なるデプロイ モデル シナリオを使用する必要はありません。

  • 同じデプロイ モデル:2 つの仮想ネットワークの両方が Resource Manager デプロイ モデルに作成されています。
  • 異なるデプロイ モデル:スポーク仮想ネットワークはクラシック デプロイ モデルに作成され、ハブ仮想ネットワークとゲートウェイは Resource Manager デプロイ モデルに作成されています。 このシナリオは、クラシック デプロイ モデル内の既存のレガシー VNet を接続する必要がある場合に役立ちます。

Note

Windows VPN クライアントがある状態でネットワークのトポロジに変更を加えた場合は、変更をそのクライアントに適用するために、Windows クライアント用の VPN クライアント パッケージをダウンロードしてもう一度インストールする必要があります。

前提条件

この記事では、次の VNet とアクセス許可が必要です。 異なるデプロイ モデルのシナリオを使用しない場合は、クラシック VNet を作成する必要はありません。

仮想ネットワーク

VNet 構成の手順 仮想ネットワーク ゲートウェイ
Hub-RM Resource Manager はい
Spoke-RM Resource Manager いいえ
Spoke-Classic クラシック いいえ

アクセス許可

仮想ネットワーク ピアリングの作成に使用するアカウントは、必要なロールまたはアクセス許可を持っている必要があります。 次の例では、Hub-RMSpoke-Classic という名前の 2 つの仮想ネットワークをピアリングする場合、各仮想ネットワークに対して次のロールまたはアクセス許可を持っている必要があります。

VNet デプロイメント モデル Role アクセス許可
Hub-RM リソース マネージャー Network Contributor Microsoft.Network/virtualNetworks/virtualNetworkPeerings/write
クラシック Classic Network Contributor 該当なし
Spoke-Classic リソース マネージャー Network Contributor Microsoft.Network/virtualNetworks/peer
クラシック Classic Network Contributor Microsoft.ClassicNetwork/virtualNetworks/peer

組み込みロールと、特定のアクセス許可をカスタム ロールに割り当てる方法 (Resource Manager のみ) の詳細を参照してください。

同じデプロイ モデル

これは、より一般的なシナリオです。 このシナリオでは、2 つの仮想ネットワークの両方が Resource Manager デプロイ モデルに配置されています。 以下の手順に従って、ゲートウェイ転送が有効な仮想ネットワーク ピアリングを作成するか、そのように更新します。

ピアリングを追加して転送を有効にするには

  1. Azure portalで Hub-RM からの仮想ネットワーク ピアリングを作成するか、そのように更新します。 [Hub-RM] 仮想ネットワークに移動します。 [ピアリング] を選択してから、 [+ 追加] を選択して [ピアリングの追加] を開きます。

  2. [ピアリングの追加] ページで、 [この仮想ネットワーク] の値を構成します。

    • ピアリング リンク名: リンクの名前を指定します。 例:HubRMToSpokeRM

    • リモート仮想ネットワークへのトラフィック: 許可

    • リモート仮想ネットワークから転送されるトラフィック: 許可

    • 仮想ネットワーク ゲートウェイ: この仮想ネットワークのゲートウェイまたは Route Server を使用します

      Screenshot shows add peering.

  3. 同じページで、続けて [リモート仮想ネットワーク] の値を構成します。

    • ピアリング リンク名: リンクの名前を指定します。 例:SpokeRMtoHubRM

    • 仮想ネットワークのデプロイ モデル: [Resource Manager]

    • リソース ID を知っている: 空白のままにします。 ピアリングの相手となる仮想ネットワークまたはサブスクリプションへの読み取りアクセス権がない場合は、このボックスをオンにする必要があります。

    • [サブスクリプション]: サブスクリプションを選択します。

    • 仮想ネットワーク:Spoke-RM

    • リモート仮想ネットワークへのトラフィック: 許可

    • リモート仮想ネットワークから転送されるトラフィック: 許可

    • 仮想ネットワーク ゲートウェイ: リモート仮想ネットワークのゲートウェイまたは Route Server を使用します

      Screenshot shows values for remote virtual network.

  4. [追加] を選択してピアリングを作成します。

  5. 両方の仮想ネットワークで、ピアリングの状態が [接続済み] になっていることを確認します。

転送用に既存のピアリングを変更するには

既存のピアリングがある場合は、そのピアリングを転送用に変更できます。

  1. 仮想ネットワークに移動します。 [ピアリング] を選択し、変更するピアリングを選択します。 たとえば、Spoke-RM VNet で、SpokeRMtoHubRM ピアリングを選びます。

  2. VNet ピアリングを更新します。

    • リモート仮想ネットワークへのトラフィック: 許可
    • リモート仮想ネットワークから転送されるトラフィック: 許可
    • 仮想ネットワーク ゲートウェイまたは Route Server: リモート仮想ネットワークのゲートウェイまたはルート サーバーを使用します
  3. ピアリングの設定を保存します。

PowerShell のサンプル

PowerShell を使用してピアリングを作成または更新することもできます。 変数を仮想ネットワークとリソース グループの名前に置き換えます。

$SpokeRG = "SpokeRG1"
$SpokeRM = "Spoke-RM"
$HubRG   = "HubRG1"
$HubRM   = "Hub-RM"

$spokermvnet = Get-AzVirtualNetwork -Name $SpokeRM -ResourceGroup $SpokeRG
$hubrmvnet   = Get-AzVirtualNetwork -Name $HubRM -ResourceGroup $HubRG

Add-AzVirtualNetworkPeering `
  -Name SpokeRMtoHubRM `
  -VirtualNetwork $spokermvnet `
  -RemoteVirtualNetworkId $hubrmvnet.Id `
  -UseRemoteGateways

Add-AzVirtualNetworkPeering `
  -Name HubRMToSpokeRM `
  -VirtualNetwork $hubrmvnet `
  -RemoteVirtualNetworkId $spokermvnet.Id `
  -AllowGatewayTransit

異なるデプロイ モデル

この構成では、スポーク VNet Spoke-Classic はクラシック デプロイ モデルにあり、ハブ VNet Hub-RM は Resource Manager デプロイ モデルにあります。 デプロイ モデル間の転送を構成する場合は、クラシック VNet ではなく、Resource Manager VNet 用に仮想ネットワーク ゲートウェイを構成する必要があります。

この構成では、Hub-RM 仮想ネットワークのみを構成する必要があります。 Spoke-Classic VNet では、何も構成する必要はありません。

  1. Azure portal で、[Hub-RM] 仮想ネットワークに移動し、[ピアリング][+ 追加] の順に選びます。

  2. [ピアリングの追加] ページで、以下の値を構成します。

    • ピアリング リンク名: リンクの名前を指定します。 例:HubRMToClassic

    • リモート仮想ネットワークへのトラフィック: 許可

    • リモート仮想ネットワークから転送されるトラフィック: 許可

    • 仮想ネットワーク ゲートウェイまたは Route Server: この仮想ネットワークのゲートウェイまたはルート サーバーを使用します

    • ピアリング リンク名: 仮想ネットワーク デプロイ モデルで [クラシック] を選択すると、この値は表示されなくなります。

    • 仮想ネットワークのデプロイ モデル: [クラシック]

    • リソース ID を知っている: 空白のままにします。 ピアリングの相手となる仮想ネットワークまたはサブスクリプションへの読み取りアクセス権がない場合は、このボックスをオンにする必要があります。

      Add peering page for Spoke-Classic

  3. サブスクリプションが正しいことを確認し、ドロップダウンから仮想ネットワークを選択します。

  4. [追加] を選択してピアリングを追加します。

  5. Hub-RM 仮想ネットワークで、ピアリングの状態が [接続済み] になっていることを確認します。

この構成では、Spoke-Classic 仮想ネットワークで何も構成する必要はありません。 状態が [接続済み] と表示されたら、スポーク仮想ネットワークは、ハブ仮想ネットワーク内の VPN ゲートウェイを経由する接続を使用します。

PowerShell のサンプル

PowerShell を使用してピアリングを作成または更新することもできます。 変数とサブスクリプション ID を、仮想ネットワークとリソース グループの値とサブスクリプションに置き換えます。 仮想ネットワーク ピアリングの作成は、ハブ仮想ネットワークでのみ行う必要があります。

$HubRG   = "HubRG1"
$HubRM   = "Hub-RM"

$hubrmvnet   = Get-AzVirtualNetwork -Name $HubRM -ResourceGroup $HubRG

Add-AzVirtualNetworkPeering `
  -Name HubRMToClassic `
  -VirtualNetwork $hubrmvnet `
  -RemoteVirtualNetworkId "/subscriptions/<subscription Id>/resourceGroups/Default-Networking/providers/Microsoft.ClassicNetwork/virtualNetworks/Spoke-Classic" `
  -AllowGatewayTransit

次のステップ