ルート解決を使用したVPNルートの制限
このトピックでは、PE ルーターとルート リフレクターでルート解決を設定し、CE ルーターから制限された数のプレフィックスを受け入れるように PE ルーターを設定することにより、VPN ルートを制限する方法について説明します。
例:PE ルーターでのルート解決の設定
この例では、特定のルーティングテーブルからルートを受信するようにルーティングテーブルを設定する方法を示しています。また、特定のインポートポリシーを使用してルートを解決するためのルート解決テーブルを生成するように、ルーティングテーブルを設定する方法も示します。
必要条件
開始する前に、以下の例のいずれかに示すように、レイヤー 3 VPN を構成します。
概要
IPv4 ルート スケーリングを実現する方法の 1 つは、BGP ルートを転送テーブルに追加する方法を変更することです。デフォルトでは、ルーティングプロトコルプロセス(rpd)は inet.0 と inet.3 のすべてのルートを解決ツリーに追加します。通常、これには解決されたIPv4 BGPルートが含まれるため、メモリ消費量が増加する可能性があります。IPv4 ルートのスケーリングを向上させるために、この例では、解決済みの BGP ルートが解決ツリーに追加されないように Junos OS を設定する方法を示しています。これは、ルート解決テーブルにインポートポリシーを適用し、inet.0からのBGPルートを受け入れないようにすることで実現されます。
この設定は、レイヤー 3 VPN 内のすべての PE(プロバイダ エッジ)ルーターに適用します。
構成
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、 [edit]
階層レベルのCLIにコマンドをコピー&ペーストしてください。
PEルーター
set policy-options policy-statement protocol-bgp from protocol bgp set policy-options policy-statement protocol-bgp then reject set routing-options resolution rib inet.0 import protocol-bgp
プロシージャ
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。CLIのナビゲーションについては、CLIユーザー・ガイド の コンフィギュレーション・モードでのCLIエディタの使用を参照してください。
ルート解決を設定するには:
ルーティングポリシーを設定します。
[edit policy-options policy-statement protocol-bgp] user@PE# set from protocol bgp user@PE# set then reject
ルーティングポリシーを適用します。
[edit routing-options resolution] user@PE# set rib inet.0 import protocol-bgp
デバイスの設定が完了したら、設定をコミットします。
[edit] user@PE# commit
業績
show policy-options
コマンドとshow routing-options
コマンドを発行して、設定を確認します。
user@PE# show policy-options policy-statement protocol-bgp { from protocol bgp; then reject; }
user@PE# show routing-options resolution { rib inet.0 { import protocol-bgp; } }
検証
次のコマンドを実行して、設定が正しく機能していることを確認します。
例:ルートリフレクタでのルート解決の設定
この例では、ネクストホップ解決にinet.3ではなくinet.0を使用するようにルートリフレクタ(RR)のデフォルトの解決動作を変更する方法を示しています。
必要条件
開始する前に、以下の例のいずれかに示すように、レイヤー 3 VPN を構成します。
概要
ルート解決のシナリオの 1 つは、RR からプロバイダ エッジ(PE)ルーターへのラベルスイッチ パスが設定されている場合、または PE ルーターが RR とのみピアリングする場合です。これにより、ルートが非表示になることがあります。この問題を解決するには、デフォルトの解決動作を変更して、ネクストホップ解決に inet.0 を使用します。
デフォルトでは、bgp.l3vpn.0 ルーティングテーブルには、すべての VPN-IPv4 ユニキャストルートが格納されます。この表は、PE ルーターや RR など、レイヤー 3 VPN が設定されているすべてのルーターに表示されます。
レイヤー 3 VPN ルーターは、他のレイヤー 3 VPN ルーターからルートを受信すると、そのルートを bgp.l3vpn.0 ルーティングテーブルに配置します。ルートは、inet.3 ルーティングテーブルの情報を使用して解決されます。つまり、BGP がテーブル bgp.l3vpn.0 宛てのルートを受信すると、プロトコル ネクストホップ(受信 BGP ネクストホップ)の転送ネクストホップは、inet.3 テーブルから再帰的に決定されます。結果のルートはIPv4形式に変換され、VRFインポートポリシーに一致する場合は、すべての routing-instance-name.inet.0ルーティングテーブルに再配布されます。
カスタマーエッジ(CE)ルーターが接続されていないRRでは、 resolution rib bgp.l3vpn.0 resolution-ribs inet.0
設定により、bgp.l3vpn.0のルートはinet.3ではなくinet.0の情報を使用してルートを解決します。この設定は、CE ルーターに直接接続されているルーターでは使用しないでください。つまり、PE ルーターで resolution rib bgp.l3vpn.0 resolution-ribs inet.0
を使用しないでください。
inet.0 と inet.3 の両方を使用する場合は、 set resolution rib bgp.l3vpn.0 resolution-ribs [inet.0 inet.3]
のように両方を設定する必要があります。
この例では、ポリシー POLICY-limit-resolve-routes
ルート解決をIS-ISを通じて学習したルートのみに制限しています。インポートポリシーを省略すると、inet.0内のすべてのルートが評価され、プロトコルネクストホップを解決するために使用される可能性があります。すべてのエントリーを解決したくない場合は、ポリシーを使用して、ルート解決に使用されるテーブルからルートのサブセットをフィルタリングします。
一般的な例の 1 つは、デフォルト ルート(0/0)を除く inet.0 内のすべてのルートに対して解決する場合です。
この設定では import
ステートメントを使用していますが、ルートがインポートまたはコピーされることはありません。むしろ、 import policy-name
設定は、ルート解決のために考慮できる可能なルートのセットを制限します。
resolution rib bgp.l3vpn.0 resolution-ribs inet.0
設定は、BGP RRが転送パスにない場合に有効です。つまり、RR にはイングレス LSP は存在しません。RSVPがラベルシグナリングプロトコルであり、エッジルーターでRSVPがフルメッシュに設定されている場合を考えます。RR はルートを反映できる必要があります。そのために、BGP はルート解決可能性チェックを実行することが期待されます。レイヤー 3 VPN ルートを受信しても、ネクストホップが inet.3 テーブルにない場合、ルートは解決できません。ルーターは転送パスにないため、効果的な回避策は inet.0 の情報を使用することです。inet.0 のメトリック情報は、転送には使用できませんが、最適なルートを選択するのに役立ちます。
別のアプローチは、LSP が RR にプロビジョニングされていることを確認することです。LDP を設定すると、これは自動的に行われます。
構成
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、 [edit]
階層レベルのCLIにコマンドをコピー&ペーストしてください。
ルートリフレクタ
set routing-options resolution rib bgp.l3vpn.0 resolution-ribs inet.0 set routing-options resolution rib inet.0 import POLICY-limit-resolve-routes set policy-options policy-statement POLICY-limit-resolve-routes term isis from protocol isis set policy-options policy-statement POLICY-limit-resolve-routes term isis then accept set policy-options policy-statement POLICY-limit-resolve-routes then reject
プロシージャ
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。CLIのナビゲーションについては、CLIユーザー・ガイド の コンフィギュレーション・モードでのCLIエディタの使用を参照してください。
ルート解決を設定するには:
bgp.l3vpn.0 を設定して、inet.3 ではなく inet.0 の情報を使用してルートを解決します。
[edit routing-options resolution rib bgp.l3vpn.0] user@RR# set resolution-ribs inet.0
(オプション)ルーティングポリシーを設定します。
[edit policy-options policy-statement POLICY-limit-resolve-routes] user@RR# set term isis from protocol isis user@RR# set term isis then accept user@RR# set then reject
(オプション)ポリシーを適用します。
[edit routing-options resolution rib inet.0] user@RR# set import POLICY-limit-resolve-routes
デバイスの設定が完了したら、設定をコミットします。
[edit] user@RR# commit
業績
show policy-options
コマンドとshow routing-options
コマンドを発行して、設定を確認します。
user@RR# show policy-options policy-statement POLICY-limit-resolve-routes { term isis { from protocol isis; then accept; } then reject; }
user@RR# show routing-options resolution { rib bgp.l3vpn.0 { resolution-ribs inet.0; } rib inet.0 { import POLICY-limit-resolve-routes; } }
検証
次のコマンドを実行して、設定が正しく機能していることを確認します。
レイヤー 3 VPN の CE ルーターから受け入れるパスとプレフィックスの数の制限
ルーティング テーブルにインストールできるプレフィックスとパスの数に上限を設定できます。プレフィックスとパスの制限を使用して、VPN 内の CE ルーターから受信するプレフィックスとパスの数を削減できます。プレフィックスとパスの制限は、動的ルーティング プロトコルにのみ適用され、スタティック ルートやインターフェイス ルートには適用されません。
PE ルーターが CE ルーターから受け入れるパスの数を制限するには、 maximum-paths
ステートメントを含めます。
maximum-paths path-limit <log-interval interval | log-only | threshold percentage>;
このステートメントを設定できる階層レベルの一覧については、このステートメントの概要のセクションを参照してください。
ログのみオプションを指定して、警告メッセージのみを生成します(アドバイザリの制限)。しきい値オプションを指定すると、制限に達する前に警告が生成されます。log-interval オプションを指定して、ログ メッセージ間の最小時間間隔を構成します。
ルート制限には、アドバイザリと必須の 2 つのモードがあります。アドバイザリ制限は警告をトリガーします。強制制限は、制限に達した後、追加のルートを拒否します。
ルート制限を適用すると、動的ルーティング プロトコルの動作が予測できなくなる可能性があります。例えば、上限に達してルートが拒否された場合、ルート数が上限以下に戻った後、BGP は拒否したルートを再インストールしないことがあります。BGP セッションのクリアが必要な場合があります。
PE ルーターが CE ルーターから受け入れるプレフィックス数を制限するには、 maximum-prefixes
ステートメントを含めます。
maximum-prefixes prefix-limit <log-interval interval | log-only | threshold percentage>;
このステートメントを設定できる階層レベルの一覧については、このステートメントの概要のセクションを参照してください。
ルート制限には、アドバイザリと必須の 2 つのモードがあります。アドバイザリ制限は警告をトリガーします。強制制限は、制限に達した後、追加のルートを拒否します。
ルート制限を適用すると、動的ルーティング プロトコルの動作が予測できなくなる可能性があります。例えば、上限に達してルートが拒否された場合、ルート数が上限以下に戻った後、BGP は拒否したルートを再インストールしないことがあります。BGP セッションのクリアが必要な場合があります。
必須のパスまたはプレフィックス制限は、警告メッセージをトリガーするだけでなく、制限に達すると、追加のパスまたはプレフィックスを拒否します。
パスまたはプレフィックス制限を設定すると、動的ルーティング プロトコルの動作が予測できなくなる可能性があります。
また、 maximum-paths ステートメントと maximum-prefixes
ステートメントの両方で、以下のオプションを設定することができます。
log-interval—ログメッセージが送信される間隔を指定します。このオプションは、警告メッセージのみを生成します (アドバイザリの制限)。
log-interval オプションを指定して、ログ メッセージ間の最小時間間隔を構成します。
log-only:警告メッセージのみを生成します。ルーティング テーブルに格納されるパスまたはプレフィックスの数に制限はありません。
threshold—最大パスまたはプレフィックスの指定された割合に達した後に警告メッセージを生成します。