ルーティングポリシーについて
一部のルーティングプラットフォームベンダーでは、ルートのフローはさまざまなプロトコル間で発生します。例えば、RIPからOSPFへの再配布を設定したい場合、RIPプロセスは、再配布に含まれる可能性のあるルートがあることをOSPFプロセスに通知します。Junos OSでは、ルーティングプロトコル間の直接的な相互作用はあまりありません。代わりに、すべてのプロトコルがルーティング情報をインストールする中央の収集ポイントがあります。これらは、メインのユニキャストルーティングテーブルinet.0とinet6.0です。
これらのテーブルから、ルーティング プロトコルは各宛先への最適なルートを計算し、これらのルートを転送テーブルに配置します。これらのルートは、ルーティングプロトコルのトラフィックを宛先に転送するために使用され、ネイバーにアドバタイズできます。
ルートのインポートとエクスポート
インポートとエクスポートの2つの用語は、ルーティングプロトコルとルーティングテーブル間をルートがどのように移動するかを説明するものです。
ルーティングエンジンがルーティングプロトコルのルートをルーティングテーブルに配置するとき、ルーティングテーブルにルート をインポート します。
ルーティングエンジンがルーティングテーブルからのアクティブなルートを使用してプロトコルアドバタイズメントを送信する場合、ルーティングテーブルからルートを エクスポートします 。
注:ルーティングプロトコルとルーティングテーブルの間でルートを移動するプロセスは、常に ルーティングテーブルの視点から記述されます。つまり、ルートはルーティングプロトコルからルーティングテーブル にインポート され、ルーティングテーブルからルーティングプロトコルに エクスポート されます。ルーティングポリシーを使用する際には、この違いを覚えておいてください。
図 1 に示すように、インポートルーティングポリシーを使用して、どのルートをルーティングテーブルに配置するかを制御し、エクスポートルーティングポリシーを使用して、どのルートをルーティングテーブルからネイバーにアドバタイズするかを制御します。
一般に、ルーティングプロトコルは、すべてのルートをルーティングテーブルに配置し、ルーティングテーブルからの限られたルートセットをアドバタイズします。ルーティングプロトコルとルーティングテーブル間のルーティング情報を処理するための一般的なルーティング ポリシーフレームワークは、ルーティングポリシーフレームワークとして知られています。
ルーティングポリシーフレームワークは、各ルーティングプロトコルのデフォルトルールで構成されており、プロトコルがどのルートをルーティングテーブルに配置し、ルーティングテーブルからアドバタイズするかを決定します。各ルーティングプロトコルのデフォルトルールは、 デフォルトルーティングポリシーと呼ばれます。
ルーティングポリシーを作成して、常に存在するデフォルトポリシーをプリエンプトすることができます。 ルーティングポリシー では、ニーズに合わせてルーティングポリシーフレームワークを変更することができます。独自のルーティングポリシーを作成して実装し、以下を実行できます。
ルーティングプロトコルがルーティングテーブルに配置するルートを制御します。
ルーティングプロトコルがルーティングテーブルからアドバタイズするアクティブなルーティングテーブルを制御します。 アクティブルート とは、目的地に到達するためにルーティングテーブル内のすべてのルートから選択されるルートです。
ルーティングプロトコルがルートをルーティングテーブルに配置したり、ルーティングテーブルからルートをアドバタイズしたりするときに、ルート特性を操作します。
ルート特性を操作して、目的地に到達するためのアクティブなルートとして選択するルートを制御できます。アクティブなルートは転送テーブルに配置され、ルートの宛先に向けてトラフィックを転送するために使用されます。一般に、アクティブなルートはルーターのネイバーにもアドバタイズされます。
アクティブおよび非アクティブなルート
ルーティングテーブルに宛先向けの複数のルートが存在する場合、プロトコルはアクティブなルートを選択し、そのルートは適切なルーティングテーブルに配置されます。等コストルートの場合、Junos OS は適切なルーティングテーブルに複数のネクストホップを配置します。
プロトコルがルーティングテーブルからルートをエクスポートする場合、アクティブなルートのみをエクスポートします。これは、デフォルトとユーザー定義の両方のエクスポートポリシーで指定されたアクションに適用されます。
エクスポートするルートを評価する場合、ルーティングエンジンはルーティングテーブルからのアクティブなルートのみを使用します。例えば、ルーティングテーブルに同じ宛先への複数のルートが含まれていて、1つのルートに好ましいメトリックがある場合、そのルートのみが評価されます。つまり、エクスポートポリシーはすべてのルートを評価するわけではありません。ルーティングプロトコルがネイバーにアドバタイズできるルートのみを評価します。
デフォルトでは、BGPはアクティブなルートをアドバタイズします。ただし、他のルートと同じ宛先に行くが、あまり好ましくないメトリックを持つ非 アクティブなルートをアドバタイズするように BGP を設定することができます。
明示的に設定されたルート
明示的 に設定されたルート は、設定したルートです。 直接ルート は明示的に設定されていません。インターフェイス上で設定されたIPアドレスの結果として作成されます。明示的に設定されたルートには、集約ルート、生成ルート、ローカルルート、スタティックルートが含まれます。( 集約ルート とは、共通のアドレスを持つルートのグループを1つのルートに抽出するルートのことです。 生成されたルート は、ルーティングテーブルに特定の宛先に到達する方法に関する情報がない場合に使用されるルートです。 ローカルルート は、ルーターインターフェイスに割り当てられたIPアドレスです。 静的ルート は、宛先への不変のルートです。)
ポリシー フレームワーク ソフトウェアは、明示的に設定された直接ルートを、あたかもルーティング プロトコルを介して学習したかのように扱います。したがって、ルーティングテーブルにインポートできます。このプロトコルは実際のルーティングプロトコルではないため、ルートをルーティングテーブルから疑似プロトコルにエクスポートすることはできません。ただし、集約ルート、ダイレクトルート、生成ルート、スタティックルートはルーティングテーブルからルーティングプロトコルにエクスポートできますが、ローカルルートは書き出せません。
動的データベース
Junos OS リリース 9.5 以降では、標準設定データベースで要求されるのと同じ検証の対象とならない動的データベースでルーティング ポリシーと特定のルーティングポリシー オブジェクトを設定できます。その結果、これらのルーティング ポリシーとポリシー オブジェクトを迅速にコミットでき、必要に応じて標準設定で参照および適用できます。BGPは、動的データベースで設定されたポリシーを参照するルーティングポリシーを適用できる唯一のプロトコルです。動的データベースに基づくルーティングポリシーが設定され、標準設定でコミットされた後、動的データベース内のポリシーオブジェクトを変更することで、既存のルーティングポリシーに迅速に変更を加えることができます。Junos OS は動的データベースへの設定変更を検証しないため、この機能を使用する場合は、コミットする前にすべての設定変更をテストして検証する必要があります。
循環ポリシーの参照
ルーティングポリシーを構築する際、 from policy policy-name ステートメントと then next policy ステートメントを使用して複数のポリシーを作成できます。ソフトウェアは、コミット中にこれらのポリシー チェーンを検証し、循環参照を導入する設定を拒否するようになりました。
循環参照は、ポリシーがそれ自体を直接参照する場合、または一連のポリシーがループを形成した場合に発生します(たとえば、ポリシーAはポリシーBを参照し、ポリシーBはポリシーAを参照します)。このような設定はサポートされていません。コミットが循環ポリシー参照を検出した場合、コミットは失敗するため、設定を有効にする前にポリシー構造を修正する必要があります。