CoSベースの転送の設定
CoSベースの転送(CBF)は、定義されたルートセットにのみ適用できます。そのため、次の例のようにポリシーステートメントを設定する必要があります。
[edit policy-options]
policy-statement my-cos-forwarding {
from {
route-filter destination-prefix match-type;
}
then {
cos-next-hop-map map-name;
}
}
この設定では、ルートフィルターに一致するルートが、 map-nameで指定されたCoSネクストホップマッピングの対象となることを指定します。ポリシーステートメントの設定の詳細については、 ルーティングポリシー、ファイアウォールフィルター、およびトラフィックポリサーユーザーガイドを参照してください。
サポートされている数以下の転送クラスとデフォルトの転送クラスのみを持つデバイスでCBFを設定できます。この条件下では、転送クラスからキューへのマッピングは、1対1または1対多のいずれかになります。ただし、設定されている転送クラスの数がサポートされている数を超える場合、CBFを設定することはできません。同様に、CBFを設定した場合、サポートされている転送クラスの数とデフォルトの転送クラスを超えて設定することはできません。
CoSネクストホップマップを指定するには、[edit class-of-service]階層レベルでforwarding-policyステートメントを含めます。
[edit class-of-service] forwarding-policy { next-hop-map map-name { forwarding-class class-name { discard; lsp-next-hop [ lsp-regular-expression ]; next-hop [ next-hop-name ]; non-lsp-next-hop; } forwarding-class-default { discard; lsp-next-hop [ lsp-regular-expression ]; next-hop [next-hop-name]; non-lsp-next-hop; } } }
内部ゲートウェイプロトコル(IGP)としてOSPFを使用してCBFを設定する場合、IPv4またはIPv6アドレスとしてではなく、インターフェイス名またはネクストホップエイリアスとしてネクストホップを指定する必要があります。これは、OSPFがポイントツーポイントインターフェイスのネクストホップとしてインターフェイスを持つルートを追加するためです。ネクストホップにIPアドレスは含まれていません。設定例については、 例:CoSベースの転送の設定を参照してください。
レイヤー3 VPNの場合、VRFインスタンス内の末端のプロバイダーエッジ(PE)ルーターから受信したルートにクラスベースの転送を使用する場合、ソフトウェアは受信したルートに付属する属性のみに基づいてルートをマッチングできます。つまり、RIB-in内のルートに基づいてマッチングを行うことができます。この場合、ポリシーはvrf.inet.0テーブルではなくbgp.l3vpn.0テーブルをチェックするため、[edit policy-options policy-statement my-cos-forwarding from]階層レベルに含めるroute-filterステートメントは効果がありません。
Junos は、以前に定義された一連のネクストホップに CoS ネクストホップマップを適用します。ネクストホップ自体は、ルーティングデバイス上のあらゆる発信インターフェイスに配置できます。例えば、以下の設定は、一連の転送クラスとネクストホップ識別子を関連付けています。
[edit class-of-service forwarding-policy]
next-hop-map map1 {
forwarding-class expedited-forwarding {
next-hop next-hop1;
next-hop next-hop2;
}
forwarding-class best-effort {
next-hop next-hop3;
lsp-next-hop lsp-next-hop4;
}
forwarding-class-default {
lsp-next-hop lsp-next-hop5;
}
}
この例では、 next-hop N は、あるネクストホップのIPアドレスまたはegressインターフェイスのいずれかであり、 lsp-next-hop N は、そのラベルを持つ任意のネクストホップに対応する正規表現です。Q1からQN は、特定のネクストホップにマッピングされる一連の転送クラスです。つまり、パケットがQ1からQNを介してスイッチングされると、関連するネクストホップに関連付けられたインターフェイスから転送されます。
この設定には、以下のような意味があります。
-
1つの転送クラスを、複数の標準ネクストホップまたはLSPネクストホップにマッピングできます。これは、同じクラス値を提供する標準ネクストホップまたはLSPネクストホップ間で負荷分散が行われることを意味します。これを適切に機能させるために、Junos OS は等コスト ネクスト ホップのリストを作成し、その転送クラスの標準負荷分散ルールに従ってパケットを転送します。
-
転送クラスの設定にLSPネクストホップと標準ネクストホップが含まれる場合、LSPネクストホップが標準ネクストホップよりも優先されます。上記の例では、
lsp-next-hop4next-hop3map1が適用されるルートに対して有効なネクストホップである場合、転送テーブルにはエントリーlsp-next-hop4のみが含まれます。 -
next-hop-map可能なすべての転送クラスを指定しない場合、デフォルトの転送クラスがデフォルトとして選択されます。default-forwarding classは、ネクストホップマップのどの転送クラスも満たさないトラフィックのネクストホップを定義します。ネクストホップマップでデフォルトの転送クラスが指定されていない場合、デフォルトがランダムに指定されます。デフォルトの転送クラスは、キュー0に関連付けられたクラスです。 -
LSPネクストホップでは、Junos UNIX
regex(3)スタイルの正規表現を使用します。例えば、lsp、lsp1、lsp2、lsp3のラベルが存在する場合、ステートメントlsp-next-hop lspはlsp、lsp1、lsp2、およびlsp3に一致します。この動作を望まない場合は、lspのみに一致するアンカー文字lsp-next-hop " ^lsp$"を使用する必要があります。 -
ポリシーが
vrf.inet.0テーブルではなくbgp.l3vpn.0テーブルに対してチェックするため、ルートフィルターは機能しません。
最後のステップは、転送エンジンにエクスポートされたルートにルートフィルターを適用することです。これを次の例に示します。
routing-options {
forwarding-table {
export my-cos-forwarding;
}
}
この設定は、関連するネクストホップCBFルールと一致する my-cos-forwarding に、転送エンジンにルートを挿入するようにルーティングプロセスに指示します。
ルートに設定を適用する場合、次のアルゴリズムが使用されます。
-
ルートが単一のネクストホップルートである場合、すべてのトラフィックがそのルートに移動します。つまり、CBF は有効になりません。
-
ネクストホップごとに、適切な転送クラスを関連付けます。ネクストホップがルートに表示されているが、
cos-next-hopマップに表示されない場合、転送テーブルエントリーには表示されません。 -
ネクストホップマップですべての転送クラスが指定されていない場合、デフォルトの転送クラスが使用されます。デフォルトを指定しない場合、ネクストホップマップで定義された最低クラスにデフォルトが割り当てられます。
プラットフォーム固有のCBFの動作
お使いのプラットフォームに固有の動作を確認するには、以下の表を使用して下さい。
| プラットフォーム |
違い |
|---|---|
| MXシリーズ |
|
| PTXシリーズ |
|