Junos OS CoSプロセスを通した基本的なパケットフローの設定
図 1 と 図 2 は、Junos OS CoS 機能のコンポーネントを示し、それらが対話するシーケンスを示しています。


以下の設定は、CoS プロセスを通過するパケット フローを示しています。
分類子の定義
パケット ヘッダーの CoS 値を信頼できる場合、動作集約分類を使用して、それらの値を転送クラスにマッピングし、優先度をドロップできます。例えば:
[edit class-of-service] classifiers { exp exp_classifier { forwarding-class data-queue { loss-priority high code-points 001; loss-priority low code-points 000; } forwarding-class nc-queue { loss-priority high code-points 111; loss-priority low code-points 110; } forwarding-class video-queue { loss-priority high code-points 011; loss-priority low code-points 010; } forwarding-class voice-queue { loss-priority high code-points 101; loss-priority low code-points 100; } }
パケット ヘッダーの CoS 値を信頼できない場合、より複雑なマルチフィールド分類を使用して、イングレス トラフィックを転送クラスにマッピングし、優先度を落とすことができます。例えば:
[edit firewall] family inet { filter classify { term sip { from { protocol [ udp tcp ]; port 5060; } then { forwarding-class nc-queue; loss-priority low; accept; } } } }
「」も参照
インターフェイス上の受信パケットに分類子を適用する
階層レベルで、動作集約分類子を論理インターフェイスに [edit class-of-service interfaces]
適用します。例えば:
[edit class-of-service] interfaces { so-* { unit 0 { classifiers { exp exp_classifier; } } } t3-* { unit 0 { classifiers { exp exp_classifier; } } } }
階層レベルの論理インターフェイスに、入力フィルターとしてマルチフィールドの分類子を [edit interfaces]
適用します。例えば:
[edit interfaces] fe-0/0/2 { unit 0 { family inet { filter { input classify; } address 10.12.0.13/30; } } }
ポリサーを定義してトラフィックを制限し、輻輳を制御する
トラフィックフローをレート制限する必要がある場合は、過剰なトラフィック(ハードポリシング)を破棄するか、過剰なトラフィックを別の転送クラスや損失優先度(ソフトポリシング)に再割り当てすることで、ポリサーを定義し、そのトラフィックフローのファイアウォールフィルターにポリサーを適用します。例えば:
[edit firewall] policer be-lp { if-exceeding { bandwidth-limit 10m; burst-size-limit 62500; } then loss-priority high; } family inet { filter be-lp { term t1 { from { protocol tcp; port 80; } then policer be-lp; then loss-priority low; then accept; } } }
「」も参照
ドロッププロファイルの定義
ドロッププロファイルを使用して、遅延バッファの占有範囲全体のドロップ確率を定義し、ランダム早期検出(RED)プロセスをサポートします。
[edit class-of-service] drop-profiles { be-red { fill-level 20 drop-probability 25; fill-level 30 drop-probability 50; fill-level 40 drop-probability 75; fill-level 50 drop-probability 100; } }
「」も参照
各転送クラスをキューに割り当てる
各転送クラスに差別化されたサービスを提供するには、各転送クラスを独自の出力キューに割り当てます。例えば:
[edit class-of-service] forwarding-classes { queue 0 data-queue; queue 1 video-queue; queue 2 voice-queue; queue 3 nc-queue; }
「」も参照
スケジューラの定義
各転送クラスのスケジューラ特性を定義します。例えば:
[edit class-of-service] schedulers { # data-scheduler { buffer-size percent 50; drop-profile-map loss-priority high protocol any drop-profile be-red; priority low; transmit-rate percent 50; } nc-scheduler { buffer-size percent 5; priority high; transmit-rate percent 5; } video-scheduler { buffer-size percent 25; priority strict-high; transmit-rate percent 25; } voice-scheduler { buffer-size percent 20; priority high; transmit-rate percent 20; } }
「」も参照
スケジューラ マップの定義
スケジューラ マップを使用して、スケジューラを転送クラスにマッピングします。例えば:
[edit class-of-service] scheduler-maps { sched1 { forwarding-class data-queue scheduler data-scheduler; forwarding-class nc-queue scheduler nc-scheduler; forwarding-class video-queue scheduler video-scheduler; forwarding-class voice-queue scheduler voice-scheduler; } }
「」も参照
CoS ヘッダー書き換えルールの定義
書き換えルールを使用して、発信パケットの CoS ビット パターンを再定義します。例えば:
[edit class-of-service] rewrite-rules { inet-precedence inet-rewrite { forwarding-class data-queue { loss-priority high code-point 001; loss-priority low code-point 000; } forwarding-class nc-queue { loss-priority high code-point 111; loss-priority low code-point 110; } forwarding-class video-queue { loss-priority high code-point 101; loss-priority low code-point 100; } forwarding-class voice-queue { loss-priority high code-point 011; loss-priority low code-point 010; } } }
「」も参照
スケジューラ マップを適用し、エグレス インターフェイスにルールを書き換える
[edit class-of-service] interfaces { ge-* { scheduler-map sched1; unit * { rewrite-rules { inet-precedence inet-rewrite; } } } }