Azure VPN Gateway における NAT について

この記事では、Azure VPN Gateway における NAT (ネットワーク アドレス変換) のサポートについて概要を説明します。 NAT は、IP パケット内の IP アドレスを別の IP アドレスに変換するメカニズムを定義するものです。 NAT にはさまざまなシナリオがあります。

  • IP アドレスが重複する複数のネットワークを接続する
  • プライベート IP アドレス (RFC1918) が使用されているネットワークからインターネットに接続する (インターネット ブレークアウト)
  • IPv6 ネットワークを IPv4 ネットワークに接続する (NAT64)

重要

Azure VPN Gateway の NAT がサポートするのは 1 つ目のシナリオです。IP アドレスが重複するオンプレミスのネットワークやブランチ オフィスを Azure の仮想ネットワークに接続します。 インターネット ブレークアウトや NAT64 はサポートされません

重複するアドレス空間

一般に、組織のプライベート ネットワークにおける内部的な通信には、RFC1918 で規定されているプライベート IP アドレスが使用されます。 インターネット上の VPN やプライベート WAN を使用してこれらのネットワークを接続する場合、アドレス空間が重複しないようにする必要があります。アドレス空間が重複すると通信に失敗します。 IP アドレスが重複する複数のネットワークを接続するためには、それらのネットワークを接続するゲートウェイ デバイス上に NAT をデプロイします。

NAT の種類: 静的と動的

ゲートウェイ デバイス上の NAT は、アドレスの競合を防ぐ NAT ポリシー (規則) に基づいて送信元 IP アドレスまたは送信先 IP アドレスを変換します。 NAT 変換の規則には、さまざまな種類があります。

  • 静的 NAT: 静的規則では、固定されたアドレス マッピング関係が定義されます。 特定の IP アドレスは、ターゲット プールにある同じアドレスにマップされます。 静的規則のマッピングは固定されているためステートレスです。

  • 動的 NAT: 動的 NAT では、アドレスの割り当て状況に応じて、または IP アドレスと TCP/UDP ポートのさまざまな組み合わせを使用して、1 つの IP アドレスを異なるターゲット IP アドレスに変換できます。 後者は NAPT (Network Address and Port Translation) とも呼ばれます。 動的規則は、そのときどきのトラフィック フローに応じたステートフルな変換マッピングとなります。

Note

動的 NAT 規則が使われている場合、トラフィックは一方向です。つまり、規則の内部マッピング フィールドに示されているサイトから通信を開始する必要があります。 外部マッピングからトラフィックを開始すると、接続は確立されません。 双方向のトラフィック開始が必要な場合は、静的 NAT 規則を使って 1 対 1 のマッピングを定義します。

もう 1 つ考慮すべき点は、変換に使用するアドレス プールのサイズです。 変換先アドレス プールのサイズが変換元アドレス プールと同じである場合は、静的 NAT 規則を使用して、シーケンシャルな順序での 1 対 1 のマッピングを定義します。 変換先アドレス プールのサイズが変換元アドレス プールよりも小さい場合は、動的 NAT 規則を使用してその差を吸収します。

重要

  • NAT がサポートされる SKU は、VpnGw2 から 5、および VpnGw2AZ から 5AZ です。
  • NAT は、IPsec クロスプレミス接続でのみサポートされます。 VNet 間接続や P2S 接続はサポートされません。
  • すべての動的 NAT 規則を 1 つの接続に割り当てることができます。

NAT モード: イングレスとエグレス

各 NAT 規則では、アドレス マッピング、つまり対応するネットワーク アドレス空間の変換の関係を定義します。

  • イングレス: IngressSNAT 規則は、オンプレミスのネットワーク アドレス空間を、変換後のアドレス空間にマップすることでアドレスの重複を回避します。

  • エグレス: EgressSNAT 規則は、Azure VNet のアドレス空間を別の変換後のアドレス空間にマップします。

NAT 規則ごとに、変換前後のアドレス空間を次の 2 つのフィールドで指定します。

  • 内部マッピング: 変換のアドレス空間。 イングレス規則の場合、このフィールドは、オンプレミス ネットワークの元のアドレス空間に対応します。 エグレス規則の場合は、元の VNet アドレス空間となります。

  • 外部マッピング: オンプレミス ネットワーク (イングレス) または VNet (エグレス) の変換のアドレス空間。 Azure VPN ゲートウェイに接続されたさまざまなネットワークについて、すべての外部マッピングのアドレス空間は、互いに重複していないこと、また NAT なしで接続されたネットワークとも重複していないことが必要です。

NAT とルーティング

NAT 規則が定義された接続で有効なアドレス空間は、その規則によって変わります。 Azure VPN ゲートウェイ上で BGP が有効になっている場合に、NAT 規則を使用した接続で学習したルートやアドバタイズされたルートを自動的に変換するには、[Enable BGP Route Translation](BGP ルートの変換を有効にする) を選択します。

  • 学習したルート: IngressSNAT 規則がある接続上で学習されたルートの宛先プレフィックスは、その規則の内部マッピングのプレフィックス (NAT 前) から外部マッピングのプレフィックス (NAT 後) に変換されます。

  • アドバタイズされたルート: Azure VPN ゲートウェイは、VNet アドレス空間の EgressSNAT 規則の外部マッピング (NAT 後) プレフィックスをアドバタイズすると共に、他の接続から学習した、NAT 後アドレス プレフィックスを使用したルートをアドバタイズします。

  • NAT 変換されるオンプレミス ネットワークにおける BGP ピアの IP アドレスの考慮事項:

    • APIPA (169.254.0.1 から 169.254.255.254) アドレス: NAT は BGP APIPA アドレスではサポートされていません。
    • 非 APIPA アドレス: NAT 範囲から BGP ピア IP アドレスを除外します。

Note

IngressSNAT 規則がない接続上で学習されたルートは変換されません。 EgressSNAT 規則のない接続に対してアドバタイズされた VNet ルートも変換されません。

NAT の例

次の図は、Azure VPN NAT 構成の例です。

Diagram showing NAT configuration and rules.

この図は、Azure VNet と 2 つのオンプレミス ネットワークを示しています。いずれもアドレス空間は 10.0.1.0/24 です。 この 2 つのネットワークを Azure VNet と VPN ゲートウェイに接続するには、次の規則を作成します。

  • IngressSNAT 規則 1: この規則は、オンプレミス アドレス空間 10.0.1.0/24 を 100.0.2.0/24 に変換します。

  • IngressSNAT 規則 2: この規則は、オンプレミス アドレス空間 10.0.1.0/24 を 100.0.3.0/24 に変換します。

  • EgressSNAT 規則 1: この規則は、VNet アドレス空間 10.0.1.0/24 を 100.0.1.0/24 に変換します。

この図では、各接続リソースに次の規則が設定されています。

  • 接続 1 (VNet-Branch1):

    • IngressSNAT 規則 1
    • EgressSNAT 規則 1
  • 接続 2 (VNet-Branch2)

    • IngressSNAT 規則 2
    • EgressSNAT 規則 1

各接続に関連付けられている規則に基づき、各ネットワークに使用されるアドレス空間は次のようになります。

ネットワーク 変更元 変換後
VNet 10.0.1.0/24 100.0.1.0/24
ブランチ 1 10.0.1.0/24 100.0.2.0/24
分岐 2 10.0.1.0/24 100.0.3.0/24

次の図は、ブランチ 1 から VNet への、NAT 変換前後の IP パケットを示しています。

Diagram showing before and after NAT translation.

重要

1 つの SNAT 規則で、特定のネットワークの両方向の変換が定義されます。

  • IngressSNAT 規則では、オンプレミス ネットワークから Azure VPN Gateway に入ってくる送信元 IP アドレスの変換が定義されます。 また、同じオンプレミス ネットワークに向かって VNet から出ていく送信先 IP アドレスの変換も処理されます。
  • EgressSNAT 規則では、オンプレミス ネットワークに向かって Azure VPN ゲートウェイから出ていく送信元 IP アドレスの変換が定義されます。 また、その接続を介して VNet に入ってくるパケットの送信先 IP アドレスの変換も EgressSNAT 規則によって処理されます。
  • どちらの場合も、DNAT 規則は必要ありません。

NAT 構成

前のセクションで示したような NAT 構成を実装するには、まず Azure VPN ゲートウェイに NAT 規則を作成してから、対応する NAT 規則を関連付けた接続を作成します。 ご利用のクロスプレミス接続に NAT を構成する手順については、Azure VPN ゲートウェイに NAT を構成する方法に関するページを参照してください。

NAT の制限事項と考慮事項

重要

NAT 機能には、いくつかの制約があります。

  • NAT がサポートされる SKU は、VpnGw2 から 5、および VpnGw2AZ から 5AZ です。
  • NAT は、IPsec/IKE クロスプレミス接続でのみサポートされます。 VNet 間接続や P2S 接続はサポートされません。
  • NAT ルールは、[ポリシー ベースのトラフィック セレクターを使用する] が有効になっている接続ではサポートされません。
  • 動的 NAT でサポートされる外部マッピング サブネットの最大サイズは /26 です。
  • ポート マッピングは静的 NAT の種類でのみ構成できます。 動的 NAT のシナリオは、ポート マッピングには適用できません。
  • 現時点では、ポート マッピングで範囲の指定はできません。 個々のポートを入力する必要があります。
  • ポート マッピングは、TCP および UDP プロトコルの両方に使用できます。

NAT の FAQ

NAT はすべての Azure VPN Gateway SKU でサポートされていますか?

NAT は、VpnGw2 から VpnGw5 および VpnGw2AZ から VpnGw5AZ でサポートされます。

VNet 間接続や P2S 接続で NAT は使用できますか。

いいえ。

VPN Gateway で使用できる NAT 規則はいくつですか。

VPN Gateway には、最大 100 個の NAT 規則 (イングレス規則とエグレス規則の合計) を作成できます。

NAT ルール名に / を使用できますか?

いいえ。 エラーが表示されます。

NAT は、VPN Gateway のすべての接続に適用されるのですか。

NAT は、NAT 規則が設定されている接続に適用されます。 接続に NAT 規則が設定されていない場合、その接続では NAT は無効となります。 同じ VPN Gateway に、NAT のある接続と NAT のない接続を混在させることができます。

Azure VPN Gateway では、どのような種類の NAT がサポートされていますか。

サポートされるのは 1:1 の静的 NAT と動的 NAT のみです。 NAT64 はサポートされていません。

アクティブ/アクティブの VPN Gateway で NAT は機能しますか。

はい。 NAT は、アクティブ/アクティブとアクティブ/スタンバイの両方の VPN Gateway で機能します。 各 NAT 規則は、VPN ゲートウェイの 1 つのインスタンスに適用されます。 アクティブ/アクティブ ゲートウェイで、[IP 構成 ID] フィールドを使用して、ゲートウェイ インスタンスごとに個別の NAT 規則を作成します。

NAT は BGP 接続で機能しますか。

はい。NAT で BGP を使用できます。 重要な考慮事項をいくつか以下に示します。

  • 学習済みのルートとアドバタイズされたルートが、接続に関連付けられている NAT 規則に基づいて NAT 後のアドレス プレフィックス (外部マッピング) に確実に変換されるよう、NAT 規則の構成ページで [BGP ルートの変換を有効にする] を選択します。 オンプレミスの BGP ルーターから、IngressSNAT 規則に定義されているとおりにプレフィックスがアドバタイズされるようにする必要があります。

  • オンプレミスの VPN ルーターが通常の非 APIPA アドレスを使用し、仮想ネットワーク アドレス空間またはその他のオンプレミス ネットワーク空間と競合する場合は、IngressSNAT 規則によって BGP ピア IP が一意の重複しないアドレスに変換され、NAT 後のアドレスがローカル ネットワーク ゲートウェイの BGP ピア IP アドレス フィールドに配置されるようにします。

  • NAT は BGP APIPA アドレスではサポートされていません。

SNAT 規則に対応する DNAT 規則を作成する必要はありますか。

いいえ。 1 つの SNAT 規則で、特定のネットワークの両方向の変換が定義されます。

  • IngressSNAT 規則では、オンプレミス ネットワークから Azure VPN Gateway に入ってくる送信元 IP アドレスの変換が定義されます。 また、仮想ネットワークから同じオンプレミス ネットワークへの移行先 IP アドレスの変換も処理します。

  • EgressSNAT ルールは、Azure VPN ゲートウェイからオンプレミス ネットワークへの仮想ネットワーク ソース IP アドレスの変換を定義します。 また、EgressSNAT 規則との接続を介して仮想ネットワークに送信されるパケットの宛先 IP アドレスの変換も処理します。

  • どちらの場合も、DNAT 規則は必要ありません

VNet またはローカル ネットワーク ゲートウェイのアドレス空間に複数のプレフィックスがある場合は、どうすればよいでしょうか。 それらすべてに NAT を適用できますか? それとも、サブセットだけでしょうか。

NAT に必要なプレフィックスごとに NAT 規則を 1 つ作成する必要があります。各 NAT 規則に含めることができる NAT のアドレス プレフィックスは 1 つだけです。 たとえば、ローカル ネットワーク ゲートウェイのアドレス空間が 10.0.1.0/24 と 10.0.2.0/25 から成る場合、次のように 2 つの規則を作成できます。

  • IngressSNAT 規則 1: 10.0.1.0/24 を 100.0.1.0/24 にマップ
  • IngressSNAT 規則 2: 10.0.2.0/25 を 100.0.2.0/25 にマップ

2 つの規則で、対応するアドレス プレフィックスのプレフィックス長が一致している必要があります。 仮想ネットワーク アドレス空間の EgressSNAT 規則にも同じことが当てはまります。

重要

上記の接続に 1 つしか規則をリンクさせなかった場合、もう一方のアドレス空間は変換されません

外部マッピングに使用できる IP の範囲は何ですか。

外部マッピングには、パブリック IP とプライベート IP を含む、任意の適切な IP 範囲を使用できます。

複数の EgressSNAT 規則を使用して、VNet アドレス空間を異なるオンプレミス ネットワークの異なるプレフィックスに変換することはできますか。

はい。同じ VNet アドレス空間に複数の EgressSNAT 規則を作成し、その EgressSNAT 規則を異なる接続に適用することができます。

同じ IngressSNAT 規則を異なる接続に使用できますか。

はい。冗長性を確保するために同じオンプレミス ネットワークに対する接続が複数ある場合に一般的に使用されています。 複数の接続が別々のオンプレミス ネットワーク用である場合は、同じイングレス規則を使用することはできません。

NAT 接続にはイングレスとエグレスの両方の規則が必要なのですか。

オンプレミスのネットワーク アドレス空間が仮想ネットワーク アドレス空間と重複する場合は、同じ接続にイングレスルールとエグレス ルールの両方が必要です。 接続されているすべてのネットワークで仮想ネットワーク アドレス空間が一意である場合、それらの接続に EgressSNAT ルールは必要ありません。 イングレス規則を使用すると、オンプレミス ネットワーク間でのアドレスの重複を回避できます。

"IP 構成 ID" として何を選択しますか?

"IP 構成 ID" は、NAT 規則で使用する IP 構成オブジェクトの名前にすぎません。 この設定では、NAT 規則に適用するゲートウェイ パブリック IP アドレスを選択するだけです。 ゲートウェイ作成時にカスタム名を指定していない場合、ゲートウェイのプライマリ IP アドレスは "既定" の IPconfiguration に割り当てられ、セカンダリ IP は "activeActive" IPconfiguration に割り当てられます。

次のステップ

ご利用のクロスプレミス接続に NAT を構成する手順については、Azure VPN ゲートウェイに NAT を構成する方法に関するページを参照してください。