BGP と Azure VPN Gateway について

この記事では、Azure VPN ゲートウェイでの BGP (Border Gateway Protocol) のサポートの概要を説明します。

BGP は、2 つ以上のネットワーク間でルーティングと到達可能性の情報を交換するためにインターネット上で広く使用されている標準のルーティング プロトコルです。 Azure Virtual Networks のコンテキストでは、Azure VPN ゲートウェイとオンプレミスの VPN デバイス (BGP ピアまたは BGP 近隣ノードと呼ばれる) が BGP を使用して "ルート" を交換します。これによって、関連するゲートウェイまたはルーターの可用性と、BGP のプレフィックスが到達できる可能性に関する情報が両方のゲートウェイに伝達されます。 また、BGP では、BGP ゲートウェイが特定の BGP ピアから学習したルートを他のすべての BGP ピアに伝達することで、複数のネットワークでトランジット ルーティングを行うこともできます。

BGP を使用する理由

BGP は、Azure のルートベースの VPN ゲートウェイで使用できるオプションの機能です。 この機能を有効にするには、オンプレミスの VPN デバイスが BGP をサポートしていることを事前に確認する必要があります。 BGP を使用せずに Azure VPN ゲートウェイとオンプレミスの VPN デバイスを使用することもできます。 これ (BGP を使用しない方法) は静的ルートを使用するのと同等で、BGP を使用する方法はネットワークと Azure の間で動的ルーティングを使用するのに "相当します"。

BGP の使用に関して、いくつかの利点と新しい機能があります。

自動的で柔軟なプレフィックスの更新のサポート

BGP を使用する場合は、IPsec S2S VPN トンネル経由で特定の BGP ピアに最小限のプレフィックスを宣言するだけで済みます。 オンプレミス VPN デバイスの BGP ピア IP アドレスのホスト プレフィックス (/32) のような小さいプレフィックスも指定できます。 どのオンプレミス ネットワーク プレフィックスを Azure にアドバタイズして、Azure 仮想ネットワーク (VNet) にアクセスを許可するかを制御できます。

また、大規模なプライベート IP アドレス空間 (例: 10.0.0.0/8) など、VNet アドレス プレフィックスがいくつか含まれた大規模なプレフィックスをアドバタイズすることもできます。 ただし、このプレフィックスを VNet プレフィックスのいずれかと同じにすることはできませんので注意してください。 VNet プレフィックスと同一のルートは拒否されます。

BGP ベースの自動フェールオーバーを使用した VNet とオンプレミス サイト間の複数のトンネルのサポート

同じ場所にある複数のオンプレミス VPN デバイスと Azure VNet の間に複数の接続を確立できます。 この機能により、2 つのネットワークの間に複数のトンネル (パス) がアクティブ/アクティブ構成で提供されます。 トンネルの 1 つが切断された場合は、対応するルートが BGP によって無効にされ、トラフィックが残りのトンネルに自動的に移行されます。

次の図は、この高可用性セットアップの単純な例を示しています。

Multiple active paths

オンプレミスのネットワークと複数の Azure Vnet の間のトランジット ルーティングのサポート

BGP では、接続が直接か間接的かにかかわらず、複数のゲートウェイが異なるネットワークからプレフィックスを学習して伝達することができます。 これにより、オンプレミス サイト間または複数の Azure Virtual Networks 間で Azure VPN ゲートウェイを使用したトランジット ルーティングを実行できます。

次の図は、Microsoft ネットワーク内の Azure VPN ゲートウェイを通じて 2 つのオンプレミス ネットワーク間でトラフィックをやり取りできる複数のパスを使用したマルチホップ トポロジの例を示しています。

Multi-hop transit

BGP のよくある質問

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

BGP は、Basic SKU を除くすべての Azure VPN Gateway SKU でサポートされています。

Azure Policy の VPN ゲートウェイでは BGP を使用できますか。

いいえ、BGP は、ルートベースの VPN ゲートウェイでのみサポートされています。

どの AS 番号 (自律システム番号) を使用できますか。

オンプレミスのネットワークと Azure 仮想ネットワークの両方に対して独自のパブリック AS 番号またはプライベート AS 番号を使用できます。 Azure または IANA によって予約されている範囲を使用することはできません。

次の ASN は、Azure または IANA によって予約されています。

  • Azure によって予約済みの ASN:

    • パブリック ASN: 8074、8075、12076
    • プライベート ASN: 65515、65517、65518、65519、65520
  • IANA によって予約済みの ASN:

    • 23456、64496 ~ 64511、65535 ~ 65551、および 429496729

これらの ASN は、Azure VPN ゲートウェイに接続する際にオンプレミスの VPN デバイスには指定できません。

32 ビット (4 バイト) の AS 番号を使用できますか。

はい、VPN Gateway では 32 ビット (4 バイト) の AS 番号がサポートされるようになりました。 10 進数形式の AS 番号を使用してを構成するには、PowerShell、Azure CLI、または Azure SDK を使用します。

どのプライベート AS 番号を使用できますか。

プライベート AS 番号の有効な範囲は次のとおりです。

  • 64512から 65514 および 65521 から 65534

これらの AS 番号は、IANA または Azure で使用するために予約されていないため、Azure VPN ゲートウェイに割り当てるために使用できます。

VPN Gateway では、BGP ピア IP にどのようなアドレスが使用されますか。

VPN Gateway は、既定では GatewaySubnet 範囲から 1 つの IP アドレスをアクティブ/スタンバイ VPN ゲートウェイに割り当てるか、2 つの IP アドレスをアクティブ/アクティブ VPN ゲートウェイに割り当てます。 これらのアドレスは、VPN ゲートウェイの作成時に自動的に割り当てられます。 PowerShell を使用するか、Azure portal で特定することによって、実際に割り当てられた BGP IP アドレスを取得できます。 PowerShell で Get-AzVirtualNetworkGateway を使用し、bgpPeeringAddress プロパティを探します。 Azure portal の [ゲートウェイの構成] ページで、[BGP AS 番号の構成] プロパティを確認します。

オンプレミスの VPN ルーターが BGP IP アドレスとして APIPA IP アドレス (169.254.x.x) を使用している場合は、Azure VPN ゲートウェイで、追加の Azure APIPA BGP IP アドレスを指定する必要があります。 Azure VPN Gateway では、ローカル ネットワーク ゲートウェイに指定されているオンプレミスの APIPA BGP ピアで使用する APIPA アドレス、または非 APIPA のオンプレミス BGP ピア用のプライベート IP アドレスが選択されます。 詳細については、「BGP を構成する」を参照してください。

VPN デバイスの BGP ピア IP アドレスに関する要件はどんなものですか。

オンプレミスの BGP ピア アドレスを、ご使用の VPN デバイスまたは VPN ゲートウェイの VNet アドレス空間のパブリック IP アドレスと同じにすることはできません。 VPN デバイスでは BGP ピア IP に別の IP アドレスを使用してください。 デバイス上のループバック インターフェイスに割り当てられたアドレス (通常の IP アドレスまたは APIPA アドレス) を使用することができます。 デバイスで BGP に APIPA アドレスを使用する場合は、「BGP を構成する」の説明に従って、Azure VPN ゲートウェイで APIPA BGP IP アドレスを指定する必要があります。 この場所を表している、対応するローカル ネットワーク ゲートウェイにこのアドレスを指定します。

BGP を使用する際、ローカル ネットワーク ゲートウェイのアドレス プレフィックスとして何を指定する必要がありますか。

重要

これは、以前に記載された要件からの変更です。 接続に BGP を使用する場合は、対応するローカル ネットワーク ゲートウェイ リソースの [アドレス空間] フィールドを空のままにしておきます。 Azure VPN Gateway では、IPsec トンネルを介したオンプレミスの BGP ピア IP へのホスト ルートが内部的に追加されます。 [アドレス空間] フィールドに /32 ルートを追加しないでください。 これは冗長であり、APIPA アドレスをオンプレミスの VPN デバイスの BGP IP として使用する場合、このフィールドに追加することはできません。 [アドレス空間] フィールドにその他のプレフィックスを追加すると、BGP 経由で学習したルートに加えて、Azure VPN ゲートウェイで静的ルートとして追加されます。

オンプレミスの VPN ネットワークと Azure 仮想ネットワークの両方に同じ AS 番号を使用できますか。

いいえ、BGP を使用して接続している場合は、オンプレミスのネットワークと Azure 仮想ネットワークに異なる AS 番号を割り当てる必要があります。 Azure VPN ゲートウェイには、クロスプレミス接続向けに BGP が有効になっているかどうかにかかわらず、AS 番号の既定値として 65515 が割り当てられています。 VPN ゲートウェイを作成する際に異なる AS 番号を割り当てて既定値をオーバーライドするか、ゲートウェイの作成後に AS 番号を変更することができます。 対応する Azure ローカル ネットワーク ゲートウェイにオンプレミスの AS 番号を割り当てる必要があります。

Azure VPN ゲートウェイはどのようなアドレス プレフィックスをアドバタイズしますか。

ゲートウェイでは、オンプレミスの BGP デバイスに次のルートをアドバタイズします。

  • 仮想ネットワークのアドレス プレフィックス。
  • Azure VPN ゲートウェイに接続されている各ローカル ネットワーク ゲートウェイのアドレス プレフィックス。
  • Azure VPN ゲートウェイに接続されている他の BGP ピアリング セッションから学習したルート。ただし、既定のルートまたは仮想ネットワーク プレフィックスと重複しているルートは除外されます。

何個のプレフィックスを Azure VPN Gateway にアドバタイズできますか。

Azure VPN Gateway では最大 4,000 個のプレフィックスがサポートされます。 プレフィックスの数がこの制限を超えると、BGP セッションは切断されます。

Azure VPN ゲートウェイへの既定のルート (0.0.0.0/0) をアドバタイズすることはできますか。

はい。 これにより、すべての仮想ネットワークのエグレス トラフィックがオンプレミス サイトに強制的に送信されることに注意してください。 また、仮想ネットワーク VM が、インターネットからのパブリック通信 (RDP や SSH など) をインターネットから VM に直接受け入れなくなります。

自分の仮想ネットワーク プレフィックスとまったく同じプレフィックスをアドバタイズすることはできますか。

いいえ、お使いの仮想ネットワーク アドレス プレフィックスのいずれかと同じプレフィックスのアドバタイズは、Azure によってブロックされるか、フィルター処理されます。 ただし、仮想ネットワークの内部に存在するアドレス空間のスーパーセットであるプレフィックスをアドバタイズすることができます。

たとえば、仮想ネットワークでアドレス空間 10.0.0.0/16 を使用した場合、10.0.0.0/8 をアドバタイズすることができます。 しかし、10.0.0.0/16 や 10.0.0.0/24 をアドバタイズすることはできません。

仮想ネットワーク間の接続に BGP を使用できますか。

はい、クロスプレミス接続と仮想ネットワーク間接続の両方で BGP を使用できます。

Azure VPN ゲートウェイで BGP 接続を BGP 以外の接続と混在させることはできますか。

はい、同じ Azure VPN ゲートウェイに対して BGP 接続と非 BGP 接続の両方を混在させることができます。

Azure VPN Gateway では、BGP トランジット ルーティングをサポートしていますか。

はい。BGP トランジット ルーティングはサポートされています。ただし、Azure VPN ゲートウェイは既定のルートを他の BGP ピアにアドバタイズしません。 複数の Azure VPN ゲートウェイでトランジット ルーティングを有効にするには、仮想ネットワーク間のすべての中間接続で BGP を有効にする必要があります。 詳細については、BGP に関する記事を参照してください。

Azure VPN ゲートウェイとオンプレミス ネットワークの間で複数のトンネルを確立することはできますか。

はい、Azure VPN ゲートウェイとオンプレミス ネットワークの間に複数のサイト間 (S2S) VPN トンネルを確立することができます。 これらのトンネルはすべて Azure VPN ゲートウェイのトンネルの合計数にカウントされる点に注意してください。さらに、両方のトンネルの BGP を有効にする必要があります。

たとえば、Azure VPN ゲートウェイとオンプレミス ネットワークのいずれかの間に 2 つの冗長トンネルがある場合は、Azure VPN ゲートウェイの合計クォータから 2 つのトンネルが消費されることになります。

BGP で 2 つの Azure 仮想ネットワークの間に複数のトンネルを確立することはできますか。

はい。ただし、少なくとも 1 つの仮想ネットワーク ゲートウェイが、アクティブ/アクティブ構成になっている必要があります。

Azure ExpressRoute とサイト間 VPN の共存構成でサイト間 VPN に BGP を使用することはできますか。

はい。

BGP ピアリング セッション向けにオンプレミスの VPN デバイスに何を追加する必要がありますか。

VPN デバイスに Azure BGP ピア IP アドレスのホスト ルートを追加します。 このルートは、IPsec サイト間 VPN トンネルを指しています。 たとえば、Azure VPN ピア IP が 10.12.255.30 の場合は、10.12.255.30 のホスト ルートを VPN デバイスに追加し、対応する IPsec トンネル インターフェイスの次ホップ インターフェイスを指定する必要があります。

仮想ネットワーク ゲートウェイは、BGP を使用したサイト間接続用の BFD をサポートしていますか。

いいえ。 双方向転送検出 (BFD) は、標準の BGP "keepalive" を使用するよりも、近隣のダウンタイムを迅速に検出するために BGP で使用できるプロトコルです。BFD では、LAN 環境で動作するように設計された秒未満タイマーが使用されますが、パブリック インターネットやワイド エリア ネットワーク接続向けであはりません。

パブリック インターネット経由の接続では、特定のパケットが遅延したりドロップされたりすることは珍しくありません。そのため、これらの積極的なタイマーの導入は不安定さを増長する可能性があります。 この不安定さによって、ルートが BGP によって抑制される可能性があります。 別の方法として、既定の 60 秒の "keepalive" 間隔と 180 秒のホールド タイマーより低いタイマーを使用してオンプレミスのデバイスを構成することができます。 その結果、収束時間が短縮されます。

Azure VPN ゲートウェイは、BGP ピアリング セッションまたは接続を開始しますか?

ゲートウェイは、VPN ゲートウェイのプライベート IP アドレスを使用して、ローカル ネットワーク ゲートウェイ リソースに指定されたオンプレミス BGP ピア IP アドレスに対する BGP ピアリング セッションを開始します。 オンプレミス BGP IP アドレスが APIPA 範囲内にあるか、通常のプライベート IP アドレスであるかは関係ありません。 オンプレミス VPN デバイスに BGP IP として APIPA アドレスが使用されている場合、接続を開始するための構成を BGP スピーカーに対して行う必要があります。

次のステップ

クロスプレミス接続と VNet 間接続向けに BGP を構成する手順については、 Azure VPN ゲートウェイでの BGP の使用 に関する記事を参照してください。