Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

BGPネットワークにおけるSRv6ネットワークプログラミングとレイヤー3サービス

BGPにおけるSRv6ネットワークプログラミングとレイヤー3サービスの概要

SRv6ネットワークプログラミングのメリット

  • 柔軟な導入—BGPは、デバイスのセグメントルーティング機能を活用してレイヤー3 VPNトンネルを設定します。SRv6 イングレスノードは、トランジットルーターが SRv6 に対応していない場合でも、IPv4 パケットを転送できます。これにより、IPv6ネットワーク内のすべてのノードにセグメントルーティングを展開する必要がなくなります。

  • シームレスな導入—ネットワークプログラミングは、パケットを転送するためのIPv6ヘッダーとヘッダー拡張子に完全に依存し、MPLSなどのプロトコルは不要です。これにより、コアIPv6ネットワークにハードウェアやソフトウェアを大きくアップグレードすることなく、シームレスに導入できます。

  • 単一デバイスの汎用性—Junos OSは、単一のセグメント識別子(SID)で複数の機能をサポートし、挿入モードとカプセル化モードで相互運用できます。これにより、1台のデバイスでプロバイダ(P)ルーターとプロバイダエッジ(PE)ルーターの役割を同時に果たすことができます。

BGPネットワークにおけるSRv6ネットワークプログラミング

ネットワークプログラミングとは、ネットワークプログラムを個々の命令にエンコードし、IPv6パケットヘッダーに挿入するネットワークの機能です。セグメントルーティングヘッダー(SRH)は、SRv6 SIDとしてエンコードされたセグメントリストを含むIPv6ルーティング拡張ヘッダーのタイプです。SRv6 SID は、IPv6 アドレスであるロケーターと、SRv6 ネットワーク内の各 SRv6 対応ノードに対して特定のタスクを定義する機能で構成されています。SRv6ネットワークプログラミングでは、MPLSが不要になり、セグメントルーティングを活用する柔軟性が得られます。

注:

BGPがSRv6 SIDを割り当てるために使用する一意のSIDを使用していることを確認してください。

SRv6コア上でIPv4トランスポートを設定するには、[edit protocols bgp source-packet-routing srv6 locator name]階層レベルでend-dt4-sid sidステートメントを含めます。

SRv6コアを介したIPv6トランスポートを設定するには、[edit routing protocols bgp source-packet-routing srv6 locator name]階層レベルでend-dt6-sid sidステートメントを含めます。

SRv6コア上でIPv4およびIPv6トランスポートを設定するには、[edit routing protocols bgp source-packet-routing srv6 locator name]階層レベルでend-dt46-sid sidステートメントを含めます。end-dt4-sid ステートメントは、カプセル化解除と IPv4 テーブルルックアップを使用してエンドポイント SID を示します。end dt6-sid ステートメントは、カプセル化解除と IPv6 テーブルルックアップを備えたエンドポイントです。end-dt46-sid ステートメントは、カプセル化解除と特定の IP テーブル ルックアップを行うエンドポイントです。end-dt46 は、end.dt4 および end.dt6 の動作の変形です。BGPは、IPv4およびIPv6レイヤー3VPNサービスSIDにこれらの値を割り当てます。

SRv6コアを介したレイヤー3VPNサービス

エグレスPEに接続する際、イングレスPEはペイロードを外部IPv6ヘッダーにカプセル化します。宛先アドレスは関連するBGPルート更新に関連付けられたSRv6サービスSIDです。エグレスPEは、ネクストホップをIPv6アドレスの1つに設定します。このアドレスは、SRv6サービスSIDが割り当てられたSRv6ロケータでもあります。同じセグメントルーティングポリシーを介して、複数のルートを解決できます。

図1:SRv6パケットカプセル化 SRv6 Packet Encapsulation

SRv6コア上でBGPベースのレイヤー3サービスを設定できます。コントロールプレーンとしてBGP、データプレーンとしてSRv6を使用して、レイヤー3オーバーレイサービスを有効にできます。SRv6ネットワークプログラミングは、MPLSを展開することなくセグメントルーティングを活用する柔軟性を提供します。このようなネットワークは、データの送信に IPv6 ヘッダーとヘッダー拡張子のみに依存します。

注:

end-dt4-sid sidend-dt6-sid sidがセグメントリストの最後のSIDであるか、SRHヘッダーのないパケットの宛先アドレスであることを確認します。

SRv6コア上でIPv4 VPNサービスを設定するには、[edit routing-instances instance-name protocols bgp source-packet-routing srv6 locator name]階層レベルでend-dt4-sidステートメントを含めます。

終了 dt46 SID はセグメント ルーティングポリシーの最後のセグメントである必要があり、SID インスタンスは IPv4 FIB テーブルと IPv6 FIB テーブルに関連付けられている必要があります。

BGPピアへのレイヤー3 VPNサービスのアドバタイズ

BGPは、特定のサービスのプレフィックスの到達可能性をエグレスPEデバイスからイングレスPEノードにアドバタイズします。PE デバイス間で交換される BGP メッセージには SRv6 サービス SID が送信されます。BGP はこれを使用して PE デバイスを相互接続して VPN セッションを形成します。BGPがVRF単位のSID割り当てを使用するレイヤー3 VPNサービスでは、同じSIDが複数のネットワーク層到達可能性情報(NLRI)アドレスファミリーで共有されます。

エグレスノードのBGPピアにSRv6サービスをアドバタイズするには、[edit protocols bgp family inet6-vpn unicast]階層レベルでadvertise-srv6-serviceステートメントを含めます。

SRv6ベースのレイヤー3サービスをサポートするエグレスPEデバイスは、サービスSIDとともにオーバーレイサービスプレフィックスをアドバタイズします。BGPイングレスノードはこれらのアドバタイズを受信し、対応する仮想ルーティングおよび転送(VRF)テーブルにプレフィックスを追加します。

ingressノードでSRv6サービスを受け入れるには、[edit protocols bgp family inet6-vpn unicast]階層レベルにaccept-srv6-serviceステートメントを含めます。

BGP の SRv6 ネットワーク プログラミングでサポートされている機能とサポートされていない機能

Junos OSは、BGPのSRv6ネットワークプログラミングで以下の機能をサポートしています。

  • イングレスデバイスは、VPN SIDを含む7つのSIDを削減モードでサポートします

  • エグレスデバイスは、VPN SIDを含む7つのSIDをサポートします

  • カプセル化解除と特定のIPテーブルルックアップを使用したエンドポイント(End.DT46 SID)

  • VPNオプションC

Junos OS は、BGP の SRv6 ネットワーク プログラミングと組み合わせた以下の機能をサポートしていません。

  • SRv6トンネルにおけるフラグメント化と再アセンブリ

  • VPNオプションB

例:BGPネットワークにおけるSRv6を介したレイヤー3サービスの設定

この例では、BGPネットワークでSRv6ネットワークプログラミングとレイヤー3 VPNサービスを設定する方法を示します。SRv6ネットワークプログラミングは、MPLSを展開することなくセグメントルーティングを活用する柔軟性を提供します。この機能は、ネットワークが主にIPv6で、MPLSを導入していないサービスプロバイダに役立ちます。

要件

この例では、以下のハードウェアおよびソフトウェアコンポーネントを使用しています。

  • MPC7E、MPC8E、または MPC9E ライン カードを備えた 5 台の MXシリーズ ルーター

  • Junos OSリリース20.4R1以降

概要

SRv6コアネットワーク上で、BGPベースのレイヤー3サービスを設定できます。SRv6ネットワークプログラミングでは、ネットワークはデータの送信にIPv6ヘッダーとヘッダー拡張子のみに依存します。コントロールプレーンとしてBGP、データプレーンとしてSRv6を使用して、レイヤー3オーバーレイサービスを有効にできます。

トポロジー

図2では、ルーターR0がイングレスで、ルーターR1とR2がIPv4専用のカスタマーエッジデバイスをサポートするエグレスルーターとなっています。ルーターR3およびR4は、IPv6のみのプロバイダコアネットワークを構成しています。すべてのルーターは同じ自律システムに属しています。IS-ISは、IPv6コアルーターR3およびR4でSRv6をサポートするように設定された内部ゲートウェイプロトコルです。この例では、ルーターR0、R1、およびR2でBGPが設定されています。ルーターR0は、ルーターR1とルーターR2の両方にIBGPピアリングセッションを持つIPv6ルートリフレクタとして設定されます。エグレスルーターR1は、L3VPN SIDをイングレスルーターR0にアドバタイズし、イングレスルーターR0はVRFテーブルを受信して更新します。

図2:BGP Networks Layer 3 Services over SRv6 in BGP NetworksにおけるSRv6上のレイヤー3サービス

R1から、BGPルートは、ルーターR0にネクストホップセルフでアドバタイズされます。ルーターR0には、R1への2つのパスがあり、R3を通るプライマリパスとR4を通るバックアップパスの2つです。ルーターR0では、プライマリパスはデフォルトのメトリックで、バックアップパスはメトリック50で設定されています。ルーターR1からR0にアドバタイズされるルートの一部を以下に示します。

IPv4

21.0.0.0

IPv6

2001:21::

IPv4 VPN

31.0.0.0

IPv6 VPN

2001:31::

設定

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

この例を迅速に設定するには、以下のコマンドをコピーしてテキストファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを [edit] 階層レベルでCLIにコピーアンドペーストして、設定モードからコミットを入力します。

ルーターR0

ルーターR1

ルーターR2

ルーターR3

ルーターR4

ルーターR0の設定

ステップバイステップの手順

レイヤー 3 VPN サービスで SRv6 ネットワーク プログラミングを設定するには、ルーター R0 で以下の手順を実行します。

  1. IPトランスポートを有効にするようにデバイスインターフェイスを設定します。

  2. ルーターIDと自律システム(AS)番号を設定して、同じASに属する一連のルーティングデバイス内でルーティング情報を伝送します。

  3. SRv6をグローバルに有効にし、ロケータアドレスを有効にして、ルーターのSRv6機能を示します。SRv6 SIDは、ロケーターと関数で構成されるIPv6アドレスです。ルーティングプロトコルは、ロケーターアドレスをアドバタイズします。

  4. IPv4 と IPv6 の両方のトラフィックに対して、外部ルーティングインスタンス VPN1 を設定します。VPN1のBGPプロトコルを設定して、プロバイダーのエッジデバイス間のピアリングとトラフィックトランスポートを有効にします。

  5. ルーティングインスタンスに参加する各PEルーターのVPNタイプと一意のルート識別子を設定します。

  6. レイヤー3 VPNサービスを有効化するためのend-dt4およびend-dt6のSID値を設定します。

  7. パケットの負荷を分散するポリシーを定義します。

  8. パケットごとのポリシーを適用して、トラフィックのロードバランシングを有効にします。

  9. R1からアドバタイズされたルートを受け入れるポリシー adv_globalを定義します。

  10. コアに面するインターフェイスで BGP を設定して、内部および外部のピアリング セッションを確立します。

  11. デバイスが SRv6 サービスを BGP ピアにアドバタイズし、エグレス プロバイダー エッジ(PE)デバイスによってアドバタイズされたルートを受け入れられるようにします。

  12. コアプロバイダルーター間でトラフィックをルーティングするための内部ゲートウェイプロトコル(IGP)としてIS-ISを有効にします。

  13. プレフィックス セグメントの end-dt4 および end-dt6 SID 値を設定します。end-dt4はカプセル化解除とIPv4テーブルルックアップを備えたエンドポイントSIDであり、end-dt6はカプセル化解除とIPv6テーブルルックアップを備えたエンドポイントです。BGPは、これらをIPv4およびIPv6レイヤー3VPNサービスSIDに割り当てます。

結果

設定モードから、 show interfacesshow protocolsshow policy-options、および show routing-options コマンドを入力して設定を確認します。出力に意図した設定が表示されない場合は、この例の手順を繰り返して設定を修正します。

デバイスの設定が完了したら、設定モードから commit を入力します。

検証

設定が正常に機能していることを確認します。

アドバタイズされたIPv4ルートがIPv4テーブルにインストールされていることを確認します

目的

ingressルーター R0 が、egressルーター R1 から IPv4 プレフィックス 21.0.0.0 へのルートを学習したことを確認します。

アクション

動作モードから、ルーター R0で show route 21.0.0.0 コマンドを実行します。

意味

出力から、IPv4プレフィックス21.0.0.0がinet.0テーブルにインストールされていることを確認します。

SRv6 SIDがIPv4テーブルにインストールされていることを確認します

目的

イングレスルーターR0が、エグレスルーターR1からSRv6 end-dt4 SID 3011::2を受信し、受け入れたことを確認します。

アクション

運用モードから、ルーターR0で show route 21.0.0.0 extensive コマンドを実行します。

意味

出力でSRv6 SIDが表示され、ルーターR0とR1の間にSRv6トンネルが確立されていることを確認します。

IPv6 VPNルートがVPNテーブルにインストールされていることを確認します

目的

ingressルーター R0がegressルーター R1からVPN IPv6プレフィックス2001::30::/126へのルートを学習したことを確認します。

アクション

動作モードから、ルーター R0で show route 2001:31:: コマンドを実行します。

意味

出力から、プレフィックス 2001:31::/126 のルート詳細が vpn.inet6.0 テーブルにインストールされていることを確認します。

IPv4 VPNルートがVPNテーブルにインストールされていることを確認します

目的

ingressルーターR0が、egressルーターR1からVPN IPv4プレフィックス31.0.0.0へのルートを学習したことを確認します。

アクション

動作モードから、ルーター R0で show route 31.0.0.0 コマンドを実行します。

意味

出力から、IPv4プレフィックス31.0.0.0がvpn.inet.0テーブルにインストールされていることを確認します。

変更履歴テーブル

サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がお使いのプラットフォームでサポートされているかどうかを確認します。

リリース
説明
変更完了