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 ネクストホップ マッピングの対象になることを指定します。ポリシーステートメントの設定の詳細については、 ルーティングポリシー、ファイアウォールフィルター、およびトラフィックポリサーユーザーガイドを参照してください。
Mシリーズルーター(M120およびM320ルーターを除く)では、転送クラスが入力インターフェイス上のマルチフィールドフィルターで設定されている場合、転送クラスベースのマッチングとCBFは想定通りに機能しません。
Junos OSリリース17.2以降、MPCまたはMS-DPCを搭載したMXルーター、VMX、PTX3000ルーター、PTX5000ルーターは、最大16の転送クラスに対するCoSベースフォワーディング(CBF)の設定をサポートしています。その他のすべてのプラットフォームは、最大8つの転送クラスに対してCBFをサポートしています。MXルーターでCBFに対して最大16の転送クラスをサポートするには、 [edit chassis network-services]
階層レベルで を有効にしますenhanced-ip
。
サポートされている数以下の転送クラスとデフォルトの転送クラスのみを持つデバイスで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; } } }
OSPFを内部ゲートウェイプロトコル(IGP)としてCBFを設定する場合、IPv4またはIPv6アドレスとしてではなく、インターフェイス名またはネクストホップエイリアスとしてネクストホップを指定する必要があります。これは、OSPF がポイントツーポイント インターフェイスのネクスト ホップとしてインターフェイスにルートを追加するためです。ネクストホップにIPアドレスが含まれていません。設定例については、 例: CoSベース転送の設定を参照してください。
レイヤー 3 VPN では、VRF インスタンス内の末端プロバイダ エッジ(PE)ルーターから受信したルートに対してクラスベースの転送を使用する場合、ソフトウェアは、受信したルートに付属する属性に基づいてルートを一致させることができます。つまり、マッチングは RIB-in 内のルートに基づいて行うことができます。この場合、 route-filter
ポリシーはテーブルではなくテーブルを [edit policy-options policy-statement my-cos-forwarding from]
チェック bgp.l3vpn.0
するため、 階層レベルに含めるステートメントは vrf.inet.0
有効ではありません。
Junos OSは、以前に定義された一連のネクストホップに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アドレスまたはエグレスインターフェイスであり lsp-next-hop N
、そのラベルを持つ任意のネクストホップに対応する正規表現です。Q1~QN は、特定のネクスト ホップにマップされる転送クラスのセットです。つまり、パケットが Q1 から QN に切り替えると、関連するネクスト ホップに関連付けられたインターフェイスから転送されます。
この設定には、以下のような影響があります。
1つの転送クラスは、複数の標準ネクストホップまたはLSPネクストホップにマッピングできます。つまり、負荷分散は、同じクラス値をサービスする標準のネクストホップまたはLSPネクストホップ間で行われます。これを正しく機能させるために、Junos OSはイコールコストのネクストホップのリストを作成し、その転送クラスの標準的な負荷分散ルールに従ってパケットを転送します。
転送クラス設定にLSPネクストホップと標準ネクストホップが含まれる場合、LSPネクストホップは標準ネクストホップよりも優先されます。前述の例では、 と
lsp-next-hop4
の両方next-hop3
が適用されるmap1
ルートに有効なネクストホップである場合、転送テーブルにはエントリーlsp-next-hop4
のみが含まれます。すべての可能な転送クラスを指定しない場合
next-hop-map
、デフォルトの転送クラスがデフォルトとして選択されます。 default-forwarding class は、ネクストホップマップで転送クラスを満たさないトラフィックのネクストホップを定義します。ネクストホップ マップでデフォルト転送クラスが指定されていない場合、デフォルトがランダムに指定されます。デフォルトの転送クラスは、キュー 0 に関連付けられたクラスです。LSPネクストホップの場合、Junos OSはUNIX
regex(3)
スタイルの正規表現を使用します。例えば、以下のラベルが存在する場合、lsp
、lsp2
、 、lsp3
ステートメントlsp-next-hop lsp
は 、 と 一致しますlsp3
lsp2
lsp
lsp1
。lsp1
この動作が必要ない場合は、一致lsp
するアンカー文字lsp-next-hop " ^lsp$"
のみを使用する必要があります。ポリシーがテーブルではなくテーブルをチェックするため、
bgp.l3vpn.0
ルートフィルターはvrf.inet.0
機能しません。
最後のステップは、転送エンジンにエクスポートされたルートにルートフィルターを適用することです。これは、以下の例で示しています。
routing-options { forwarding-table { export my-cos-forwarding; } }
この設定は、関連するネクストホップCBFルールと一致 my-cos-forwarding
する転送エンジンへのルートを挿入するようにルーティングプロセスに指示します。
ルートに設定を適用する場合、以下のアルゴリズムが使用されます。
ルートが単一のネクストホップ ルートの場合、すべてのトラフィックがそのルートに向かう。つまり、CBFは有効ではありません。
ネクストホップごとに、適切な転送クラスを関連付けます。ネクストホップがルートに表示されていても、マップには
cos-next-hop
表示されない場合、転送テーブルのエントリーには表示されません。ネクストホップマップですべての転送クラスが指定されていない場合、デフォルトの転送クラスが使用されます。デフォルトが指定されていない場合、ネクストホップマップで定義された最も低いクラスにデフォルトが割り当てられます。