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

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

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

ゲートウェイ転送の図。

トランジット オプションは、Basic SKU を除くすべての VPN Gateway SKU で使用できます。

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

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

Note

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

前提条件

この記事では、次の VNet とアクセス許可が必要です。

仮想ネットワーク

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

アクセス許可

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

VNet デプロイメント モデル Role アクセス許可
Hub-RM リソース マネージャー Network Contributor Microsoft.Network/virtualNetworks/virtualNetworkPeerings/write
Spoke-RM Resource Manager Network Contributor Microsoft.Network/virtualNetworks/peer

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

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

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

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

    • ピアリング リンク名: リンクの名前を指定します。 例: SpokeRMToHubRM
    • 仮想ネットワークのデプロイ モデル: [Resource Manager]
    • リソース ID を知っている: 空白のままにします。 ピアリングの相手となる仮想ネットワークまたはサブスクリプションへの読み取りアクセス権がない場合は、このボックスをオンにする必要があります。
    • [サブスクリプション]: サブスクリプションを選択します。
    • 仮想ネットワーク:Spoke-RM
  3. [ピアリングの追加] ページで、[リモート仮想ネットワーク ピアリングの設定] の値を構成します。

    • Allow 'Spoke-RM' to access 'Hub-RM' ('Spoke-RM' が 'Hub-RM' にアクセスすることを許可する): 既定値の [選択済み] のままにします
    • Allow 'Spoke-RM' to receive forwarded traffic from 'Hub-RM' ('Spoke-RM' が 'Hub-RM' から転送されたトラフィックを受信することを許可する): チェックボックスをオンにします。
    • Allow gateway or route server in the peered virtual network to forward traffic to 'Hub-RM' (ピアリングされた仮想ネットワーク内のゲートウェイまたはルート サーバーが 'Hub-RM' にトラフィックを転送することを許可する): 既定値の [未選択] のままにします
    • Enable 'SpokeRM' to use 'Hub-RM's' remote gateway or route server ('SpokeRM' で 'Hub-RM' のリモート ゲートウェイまたはルート サーバーを使用できるようにする): チェックボックスをオンにします。

    このスクリーンショットは [ピアリングの追加] を示しています。

  4. [ピアリングの追加] ページで、[Local virtual network summary]\(ローカル仮想ネットワークの概要) の値を構成します。

    • ピアリング リンク名: リンクの名前を指定します。 例:HubRMToSpokeRM
  5. [ピアリングの追加] ページで、[ローカル仮想ネットワーク ピアリングの設定] の値を構成します。

    • Allow 'Hub-RM' to access the peered virtual network ('Hub-RM' がピアリングされた仮想ネットワークにアクセスすることを許可する): 既定値の [選択済み] のままにします
    • Allow 'Hub-RM' to receive forwarded traffic from the peered virtual network ('Hub-RM' がピアリングされた仮想ネットワークから転送されたトラフィックを受信することを許可する): チェックボックスをオンにします。
    • Allow gateway or route server in 'Hub-RM' to forward traffic to the peered virtual network (Hub-RM 内のゲートウェイまたはルート サーバーがピアリングされた仮想ネットワークにトラフィックを転送することを許可する): チェックボックスをオンにします。
    • Enable 'Hub-RM' to use the peered virtual network's remote gateway or route server ('Hub-RM' がピアリングされた仮想ネットワークのリモート ゲートウェイまたはルート サーバーを使用することを許可する): 既定値の [未選択] のままにします

    スクリーンショットは、リモート仮想ネットワークの値を示しています。

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

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

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

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

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

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

    Enable 'Spoke-RM' to use 'Hub-RM's' remote gateway or route server ('Spoke-RM' で 'Hub-RM' のリモート ゲートウェイまたはルート サーバーを使用できるようにする): チェックボックスをオンにします。

  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

次のステップ