Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

EVPN-VXLANデータセンターにおけるBGP番号なしIPv6アンダーレイ

このガイドでは、BGP番号なしピアリング(BGP自動検出またはBGP自動ピアリングとも呼ばれます)を導入および検証する方法について説明します。この機能により、BGP は、直接接続されたネイバーのリンクローカル IPv6 アドレスを使用して、ピアネイバーセッションを自動検出し、作成することができます。

概要

今日、多くの企業や大規模データセンターが、BGPをアンダーレイルーティングプロトコルとして使用しています。OSPF や IS-IS などの従来の IGP とは異なり、BGP では通常、ルート交換を制御するために、ピアリング、自律システム(AS)番号、ルーティングポリシーを明示的に設定する必要があります。

多くの事業者は、まだIPv6の経験が比較的浅い状態です。IPv6ネイバーを動的に検出するBGP番号なしピアリングを使用することで、EVPN-VXLANデータセンター(DC)ファブリックでIPv6アンダーレイを手動で設定する負担を軽減します。Junos OSは、BGPグループ設定をサポートすることで、ベースラインIPv6の機能に基づいて構築されています。BGPグループ設定は、番号なしIPv6ファブリックをサポートするために使用される動的ピアリングパラメーター(許可されたリモートAS番号など)のサポートを提供します。

EVPN-VXLAN DCファブリックは、手動で設定することも、BGP番号なしピアリング機能を使用して設定することもできます。このユースケースでは、ファブリックを手動で設定することの複雑さと、BGPの番号なしピアリング機能を使用した方がはるかに簡単なソリューションが得られる理由について説明します。

シンプルな 2 層のデータセンターについて考えてみましょう。この適度なサイズのファブリックは、4台のスパインデバイスと32台のリーフデバイスで構成されています。各スパインデバイスには、リーフデバイスに接続する32個のリンクがあり、各リーフには2つのファブリックリンク(各スパインデバイスに1つ)があります。

この手動設定では、最初にネットワークのIPアドレスを割り当てる必要があります。このファブリックでは、4*32=128個のIPv6 IPアドレスを設定する必要があります。各ネットワークには、2つのホストアドレス割り当てが必要です。

次に、BGPピアとそれに関連するAS番号を設定します。各ファブリックリンクの各エンドに対して、1つのBGPピアリングセッションが必要です。この計算は、合計4*32*2=256のBGPピア定義に相当し、それぞれに固有のピアリングIPとリモートAS番号が必要です。

256個のBGPピアリングを手動で定義するのは面倒な作業であり、エラーが発生しやすくなります。複雑なファブリックでは、単純な設定ミスでも切り分けるのが難しくなります。ファブリックが128のリーフデバイスをサポートしているとします。ここで、4*128=512 IP IPv6 ネットワークを構成する必要があります。数学から見ても、大規模なファブリックを手動でプロビジョニングする複雑さがすぐに負担になることは明らかです。また、IPv4ファブリックでは、アンダーレイが消費するIPv4アドレスの数が多いことが、見落とされがちな要因です。多くのネットワークでは、IPv4アドレス指定スペースは貴重なものです。

これとは対照的に、BGP 番号なしピアリングでは、アンダーレイ リンクにルーティング可能な IP ネットワークを割り当てる必要はありません。アンダーレイのすべての BGP ピアリングは、リンクローカル IP アドレスのみを使用します。リンクローカルIPアドレスを使用すると、設定や複雑さが軽減され、ルーティングテーブルが小さくなり、IPアドレスを保持できます。

BGP番号なしEVPNファブリックの設定

BGP番号なしピアリングを設定する場合、必要な設定ステートメントは最小限です。これらの設定ステートメントは、IPv6 ベースのアンダーレイを迅速にブートストラップするために使用されます。このアンダーレイは、EVPN-VXLAN オーバーレイをサポートします。アンダーレイはネイティブ IPv6 を使用しますが、IPv6 ネクストホップ (RFC5549) による IPv4 ルートもサポートします。つまり、アンダーレイは、EVPN-VXLAN オーバーレイで IPv4 と IPv6 の両方のワークロードと、それらに関連する仮想ネットワークをサポートします。IPv6 ステートレス自動設定の詳細については、このドキュメントの範囲外です。

以下のリストは、BGP番号なしピアリングの主な機能を示しています。

  • IPv6 が有効なすべてのインターフェイスで、ステートレスなリンクローカル IPv6 アドレスを自動的に設定します。
  • 許可されたAS番号のリストをサポートして、リモートファブリックデバイスへのピアリングを簡素化します。
  • 直接接続されたネイバーの動的な発見を提供するIPv6ルーターアドバタイズメント(RA)を使用します。
  • IPv6近隣探索を使用して、ネイバーのリンクローカルIPを対応するMACアドレスに解決し、リンクレベルの通信を容易にします。
  • ローカルエンドは、検出されたピアのリンクローカルアドレスとMACアドレスを使用して、直接接続されたネイバーにBGPオープンメッセージを送信します。このオープンメッセージには、ローカルピアのAS番号が含まれています。リモートピアはこれを許可されたAS番号のリストと照合して、セッションを許可するかどうかを判断します。同様に、ローカルピアは、リモートピアのオープンメッセージで返されるように、リモートピアのAS番号で一致します。
  • 直接接続されたすべてのネットワークを広告するシンプルな BGP ポリシーを提供します(最低でも、各ファブリックデバイスのループバックアドレスは広告する必要があります)。
  • デフォルトのEBGPポリシーを使用して、他のファブリックデバイスから学習したルートを再アドバタイズします。
  • BGP AS パス長を使用してループを防止し、ECMP ロードバランシングに最適なルート選択を提供します。
  • アンダーレイはループバック到達性を提供するため、EVPN-VXLANオーバーレイの追加が簡素化されます。
手記:

BGP番号なしピアリングは、EBGPのみをサポートします。マルチホップEBGPおよびIBGPはサポートされていません。

位相幾何学

次の図は、シンプルな2つのスパインと2つのリーフのトポロジーを示しています。

  • ファブリックアンダーレイは、デバイスループバックを含めて純粋なIPv6です。

  • 接続されたサーバは IPv4 ベースであり、IPv6 上での IPv4 のサポートを示しています(RFC 5549 参照)。IPv6ワークロードもオーバーレイでサポートされています。これらのサーバーはベアメタル・サーバー (BMS) であり、示されている IP アドレッシングで事前構成されているとします。VLAN メンバーシップは、これらのワークロードを VXLAN カプセル化によって分離されたオーバーレイ仮想ネットワークにマッピングするために使用されます。この例では、アクセスインターフェイスはタグなしです。

  • オーバーレイを追加するときに、サーバー ワークロード間で接続がルーティングされることが想定されます。オーバーレイは CRB または ERB のいずれかです。BGP 番号なしアンダーレイは、どちらのタイプのオーバーレイもサポートします。

ステップバイステップの設定

このセクションでは、BGP番号なしピアリングを設定する手順を説明します。構成はすべてのファブリックデバイスで類似しているため、ここではリーフ 1 デバイスのみの構成を示します。追加のデバイス設定については、この例の後半で説明します。

ステップバイステップ: リーフ1

  1. すべてのファブリック インターフェイスで inet6 ファミリーを有効にします。これらのファブリック インターフェイスは、リーフ 1 をスパイン デバイスに接続します。 inet6 ファミリーは、IPv6のステートレスな自動設定とネイバー探索をサポートします。IPv4ワークロードをサポートするには、 inet ファミリーも追加する必要があります。

  2. ループバック インターフェイス lo0 を作成し、IPv6 アドレスを設定します。ループバックアドレスは、EVPN-VXLANオーバーレイを追加する際にBGPピアリングをサポートするために使用されます。

  3. 動的BGPピアリングを許可するBGP AS番号のリストを指定するポリシーを設定します。

  4. パケット単位のロードバランシングポリシーを設定します。ロードバランシングポリシーでは、複数の等コストネクストホップを転送テーブルにインストールできます。これにより、リンク障害が発生した場合に、代替の等コストファブリックホップに迅速にフェイルオーバーできます。

  5. パケット単位のロードバランシングポリシーを転送テーブルに適用します。

  6. 直接ルートをアドバタイズするポリシーを設定します。リンクローカルサブネットはエクスポートされないため、この例では、このポリシーはループバックアドレスのみをアドバタイズします。この同じループバックアドレスは、後でオーバーレイでBGPピアリングを設定する際に使用します。

  7. ルーター ID (RID) を構成します。この例はネイティブIPv6ファブリック用であるため、設定にIPv4形式のルーターIDが含まれていることを確認する必要があります。ほとんどの場合、RID はループバック アドレスから自動的に派生しますが、この例ではループバックは IPv6 のみです。

  8. 各ファブリックインターフェイスのルーターアドバタイズメント(RA)を設定します。RA が有効な場合、インターフェイスは定期的に RA メッセージを送信します。RAメッセージは、リモートネイバーのリンクローカルIPを発見するために使用されます。これにより、ネイバー探索と残りの動的ピアリングプロセスが開始されます。

  9. 番号なしピアリングをサポートするBGPグループを設定します。このグループには、直接ルートをエクスポートするポリシーを適用します。このグループにはすべてのファブリック インターフェイスを含める必要があり、[protocols bgp group <group-name> dynamic-neighbor <neighbor-group-name>]階層でpeer-auto-discoveryのあるインターフェイスを有効にする必要があります。このグループは、動的ピアリングに許可されるAS番号を定義するポリシーにリンクされています。

    複数のパスと複数のAS番号でロードバランシングを有効にします。このファブリックでは、各ノードが一意のAS番号を使用することに注意してください。複数のAS番号に対するマルチパスロードバランシング(ECMP)により、RIBがこれらの異なるAS番号を指す複数のネクストホップをインストールできるようにすることで、高速フェイルオーバーが可能になります。拡張IPv4ネクストホップのサポートを追加することで、IPv6 BGPセッション上でのIPv4ルート交換が可能になります。

業績

すべてのファブリックデバイスの構成が似ていることを思い出してください。簡潔にするために、リーフ 1 の設定差分のみを示しています。

クイックコンフィグレーション

すぐに使い始められるように、トポロジー内の各ノードに簡単な構成が用意されています。ご使用の環境に合わせて、必要に応じて以下のコマンドをコピーして編集します(通常、ここに示されているコマンドを正確に使用することはありません)。変更したコマンドを、関連するファブリック デバイスの端末ウィンドウに貼り付けます。 [edit] 階層で設定モードになっている必要があります。

リーフ 1 の簡易設定:

リーフ 2 の簡易設定:

スパイン1の簡易設定:

スパイン2の簡易設定:

必ずすべてのデバイスで設定変更をコミットしてください。

検証

これらのコマンドとサンプル出力を使用して、番号なしアンダーレイの適切な動作を確認します。すべてのノードの構成と動作は似ています。以下に、リーフ 1 のコマンドと出力のみを示します。すべてのノードに同じコマンドが適用され、すべてのデバイスで同様の出力が期待されます。

全体として、主な検証タスクは、すべてのノードがリンクローカルアドレスを使用して確立された予期されたBGPセッションを持っていること、およびファブリックデバイスがループバックルートを適切に交換していることを確認することです。私たちは、BGPセッションを正常に確立するために必要な各側面を確認する構造化されたボトムアップアプローチを採用しています。

ファブリック インターフェイスが稼働し、動作していることを確認します。

この出力は、リーフ1のファブリックインターフェイスが動作していることを示しています。また、明示的な IPv4 または IPv6 アドレスがないことも見られます。インターフェイスには、 inet および inet6 ファミリーのみが設定されます。その結果、IPv6 ステートレス アドレス設定の一部として、IPv6 リンクローカル IPv6 アドレスのみが存在します。また、ループバックアドレスには、想定されるIPv6アドレスが割り当てられていることにも注意してください。

show interfaces terse CLIコマンドの出力により、ループバックアドレスを含むすべてのインターフェイスの状態と設定を簡単に確認することができます。

すべてのファブリックインターフェイスがIPv6ルーターアドバタイズメント(RA)を送受信していることを確認します。

この出力では、リーフ1が両方のスパインデバイスとの間でRAを送受信していることを確認します。RA は、送信側のリンクローカルアドレスを正しく報告します。

ファブリックデバイスが、IPv6 NDを使用して、直接接続されたすべてのIPv6ネイバーのMACからリンクローカルアドレスへのバインディングを学習したことを確認します。

この出力では、リーフ1がMAC を両方のネイバー(つまり2つのスパインデバイス)のリンクローカルアドレスに正常に解決したことを確認します。

リンクローカル アドレスを使用してネイバーに ping を実行できることを確認します。

リーフ 1 からスパイン 1 への ping は成功します。この結果、リンクローカル アドレスを使用した IPv6 接続が確認されます。

すべてのファブリックデバイスが、直接接続されたネイバーとのBGPピアリングセッションを確立していることを確認します。

予想通り、リーフ1デバイスで2つのBGPセッションが確立されていることが出力に示されています。表示により、IPv6 ルートが交換されたことが確認されます。確認については、後で詳しく説明します。必要に応じて、BGPネイバーの詳細を表示します。

すべてのノードが、他のノードのループバックアドレスを学習しながら、自身のループバックアドレスをアドバタイズしていることを確認します。

予想通り、この出力では、リーフ1が他のすべてのファブリックデバイスのループバックアドレスを学習したことを確認しています。リーフ 2 では、スパイン 1 を経由するパスとスパイン 2 を経由するパスの 2 つの等コスト パスが示されています。

必要に応じて、特定のBGPネイバーにアドバタイズされた、または特定のBGPネイバーから受信した特定のルートを表示することで、ルーティングの問題を切り分けることができます。リンクローカル アドレスへの ping と同様に、対応するエグレス インターフェイスでピアのリンクローカル IP を修飾する必要があることに注意してください。

ファブリックがECMPロードバランシングをサポートしていることを確認します。リーフ 1 がリーフ 2 に到達するために使用するルートの詳細を表示します。各スパインデバイスを1つずつ、合計2つの等コスト ルートが想定されます。以下では、ルーティングテーブルとフォワーディングテーブル(RIBとFIB)の両方でECMPを確認します。

この出力から、リーフ1とリーフ2の間の両方のパスがトラフィックの転送にアクティブに使用されており、マルチパスルートの一部であることがわかります。

リーフ 1 とリーフ 2 がアンダーレイを介して接続されていることを確認します。

この出力では、リーフ 1 とリーフ 2 にアンダーレイ接続があることを確認します。このパスは、最初のホップとしてのループバックアドレスで示されるように、このフローがスパイン1を通過したことを示しています。

これで、このアンダーレイは、選択したEVPN-VXLANオーバーレイをサポートする準備が整いました。使用可能なオーバーレイ オプションの詳細については、 VXLAN データ プレーン カプセル化を使用した EVPN について を参照してください。