階層型ポリサー
階層ポリサーの概要
階層型ポリサーを使用して、物理 インターフェイスまたは論理インターフェイス でイングレスレイヤー 2トラフィックのレート制限を行い、パケットが優先転送(EF)に分類されるか、より低いプライオリティに分類されるかに基づいて、異なるポリシングアクションを適用できます。
階層型ポリシングは、受信フレキシブルPICコンセントレータ(FPC)をSFPCとして、送信FPCをFFPCとするM40E、M120、およびM320エッジルーター、および拡張インテリジェントキューイング(IQE)PICを備えたMX シリーズ、 ACX7100-L、 T320、T640、およびT1600コアルーターでサポートされています。
階層ポリシングを論理インターフェイスに適用できます。
階層型ポリサー構成では、階層的に機能する 2 つのポリサー(EF トラフィックのみ用と非 EF トラフィック用)を定義します。
-
プレミアム ポリサー:優先度の高い EF トラフィックに対してのみトラフィック制限を指定してプレミアム ポリサーを設定します。保証された帯域幅とそれに対応するバーストサイズ制限。EF トラフィックは、平均到着率が保証帯域幅を超え、平均パケット サイズがプレミアム バースト サイズ制限を超えた場合、不適合として分類されます。プレミアム ポリサーの場合、不適合トラフィックに対する唯一の設定可能なアクションは、パケットの廃棄です。
-
集約ポリサー:集約帯域幅(保証帯域幅までの優先度の高い EF トラフィックと通常の優先度の非 EF トラフィックの両方に対応するため)と、非 EF トラフィックのみのバースト サイズ制限を使用して集約ポリサーを設定します。非 EF トラフィックは、平均到着率が現在 EF トラフィックによって消費されていない集約帯域幅の量を超え、その平均パケット サイズが集約ポリサーで定義されているバースト サイズ制限を超えた場合、不適合として分類されます。集約ポリサーの場合、不適合トラフィックに対する設定可能なアクションは、パケットの破棄、転送クラスの割り当て、またはパケット損失の優先度(PLP)レベルの割り当てです。
プレミアム ポリサーの帯域幅制限は、集約ポリサーの帯域幅制限以下に設定する必要があります。2 つの帯域幅制限が等しい場合、非 EF トラフィックはインターフェイスを無制限に通過し、EF トラフィックはインターフェイスに到着しません。
EF トラフィックにはプレミアム帯域幅制限として指定された帯域幅が保証され、非 EF トラフィックには、EF トラフィックによって現在消費されていない集約帯域幅の量にレート制限されます。非 EF トラフィックは、EF トラフィックが存在しない間のみ、集約帯域幅全体にレート制限されます。
例えば、以下のコンポーネントで階層型ポリサーを構成するとします。
-
帯域幅制限を 2 Mbps、バーストサイズ制限を 3000 バイトに設定、不適合アクションをパケット破棄に設定したプレミアム ポリサー。
-
帯域幅制限を 10 Mbps、バーストサイズ制限を 3000 バイトに設定、不適合アクションをパケット破棄に設定した集約ポリサー。
EF トラフィックは 2 Mbps の帯域幅が保証されています。EF トラフィックのバースト(2 Mbps を超えるレートでインターフェイスに到着する EF トラフィック)も、3,000 バイトのバケットで十分なトークンが使用可能であれば、インターフェイスを通過できます。非 EF トラフィックのバーストに使用できるトークンがない場合、パケットはプレミアム ポリサーのポリシング アクションを使用してレート制限されます。
非 EF トラフィックは、EF トラフィックの平均到着率に応じて、8 Mbps から 10 Mbps の範囲の帯域幅制限まで測定されます。非 EF トラフィック (非 EF トラフィックの現在の制限を超えるレートでインターフェイスに到着する非 EF トラフィック) のバーストも、3,000 バイトのバケットで十分なトークンが使用可能な場合、インターフェイスを通過します。非 EF トラフィックが現在許可されている帯域幅を超えた場合、または非 EF トラフィックのバーストに利用できるトークンがない場合、パケットは集約ポリサーのポリシングアクションを使用してレート制限されます。
加入者サービスファイアウォールポリサー(ACX7100-48Lデバイス)
-
Junos Evolvedリリース23.4R1以降、加入者ログインまたはCoA中にアクティブ化される、加入者インターフェイスでのDHCPおよびPPPoEアクセスモデル上の階層ポリサーを設定できます。この機能は、パケットの色分類に従って色分けされたトラフィック ポリシングをサポートします。パケットの色は、2 つのユーザー定義トラフィック クラスに指定されたパケット一致基準によって分類されます。この機能の関連する設定例と制限事項については、 例:加入者サービスファイアウォールの階層型ポリサーの設定(ACX7100-48Lデバイス) セクションを参照してください。
関連項目
例:階層ポリサーの設定
この例では、階層型ポリサーを設定し、サポートされているプラットフォーム上の論理インターフェイスでイングレスレイヤー2トラフィックにポリサーを適用する方法を示します。
要件
開始する前に、環境が次の要件を満たしていることを確認してください。
階層ポリサーを適用するインターフェイスは、次のいずれかのルーティング プラットフォームでホストされる SONET インターフェイスです。
M40e、M120、または M320エッジルーターで、受信FPCをSFPCとして、送信FPCをFFPCとして使用します。
MX シリーズ、T320、T640、T1600 コア ルーターと拡張インテリジェント キューイング(IQE)PIC
階層ポリサーを適用するインターフェイスの入力に他のポリサーは適用されません。
入力フィルターも適用されている論理インターフェイスに階層ポリサーを適用すると、ポリサーが最初に実行されることに注意してください。
概要
この例では、階層ポリサーを設定し、そのポリサーを論理インターフェイスでイングレスレイヤー2トラフィックに適用します。
トポロジー
ポリサーを SONET 論理インターフェイス so-1/0/0.0
に適用し、IPv4 および VPLS トラフィック用に構成します。その論理インターフェイスに階層型ポリサーを適用すると、IPv4 と VPLS の両方のトラフィックが階層的にレート制限されます。
MPLS トラフィックの論理インターフェイス so-1/0/0.1
も設定します。階層ポリサーを物理インターフェイス so-1/0/0
に適用する場合、階層ポリシングは、 so-1/0/0.0
の IPv4 および VPLS トラフィックと、 so-1/0/0.1
の MPLS トラフィックに適用されます。
設定
次の例では、設定階層のいくつかのレベルに移動する必要があります。CLIのナビゲーションについては、 設定モードでのCLIエディターの使用を参照してください。
この例を設定するには、以下のタスクを実行します。
CLIクイック構成
この例をすばやく設定するには、次の設定コマンドをテキスト ファイルにコピーし、改行を削除してから、 [edit]
階層レベルの CLI にコマンドを貼り付けます。
set interfaces so-1/0/0 unit 0 family inet address 192.168.1.1/24 set interfaces so-1/0/0 unit 0 family vpls set interfaces so-1/0/0 unit 1 family mpls set class-of-service forwarding-classes class fc0 queue-num 0 priority high policing-priority premium set class-of-service forwarding-classes class fc1 queue-num 1 priority low policing-priority normal set class-of-service forwarding-classes class fc2 queue-num 2 priority low policing-priority normal set class-of-service forwarding-classes class fc3 queue-num 3 priority low policing-priority normal set firewall hierarchical-policer policer1 aggregate if-exceeding bandwidth-limit 300m burst-size-limit 30k set firewall hierarchical-policer policer1 aggregate then forwarding-class fc1 set firewall hierarchical-policer policer1 premium if-exceeding bandwidth-limit 100m burst-size-limit 50k set firewall hierarchical-policer policer1 premium then discard set interfaces so-1/0/0 unit 0 layer2-policer input-hierarchical-policer policer1
インターフェイスの定義
ステップバイステップでの手順
インターフェイスを定義するには:
物理インターフェイスの設定を有効にします。
[edit] user@host# edit interfaces so-1/0/0
論理ユニット 0 を設定します。
[edit interfaces so-1/0/0] user@host# set unit 0 family inet address 192.168.1.1/24 user@host# set unit 0 family vpls
この論理インターフェイスにレイヤー2ポリサーを適用する場合、少なくとも1つのプロトコルファミリーを設定する必要があります。
論理ユニット 1 を設定します。
[edit interfaces so-1/0/0] user@host# set unit 1 family mpls
結果
show interfaces
コンフィギュレーション コマンドを入力して、インターフェイスの設定を確認します。コマンドの出力結果に意図した設定内容が表示されない場合は、この手順の手順を繰り返して設定を修正します。
[edit] user@host# show interfaces so-1/0/0 { unit 0 { family inet { address 192.168.1.1/24; } family vpls; } unit 1 { family mpls; } }
転送クラスの定義
ステップバイステップでの手順
集約ポリサーアクションとして参照される転送クラスを定義するには:
転送クラスの設定を有効にします。
[edit] user@host# edit class-of-service forwarding-classes
転送クラスを定義します。
[edit class-of-service forwarding-classes] user@host# set class fc0 queue-num 0 priority high policing-priority premium user@host# set class fc1 queue-num 1 priority low policing-priority normal user@host# set class fc2 queue-num 2 priority low policing-priority normal user@host# set class fc3 queue-num 3 priority low policing-priority normal
結果
show class-of-service
設定コマンドを入力して、集約ポリサーアクションとして参照されている転送クラスの設定を確認します。コマンドの出力結果に意図した設定内容が表示されない場合は、この手順の手順を繰り返して設定を修正します。
[edit] user@host# show class-of-service forwarding-classes { class fc0 queue-num 0 priority high policing-priority premium; class fc1 queue-num 1 priority low policing-priority normal; class fc2 queue-num 2 priority low policing-priority normal; class fc3 queue-num 3 priority low policing-priority normal; }
階層ポリサーの設定
ステップバイステップでの手順
階層ポリサーを設定するには:
階層ポリサーの設定を有効にします。
[edit] user@host# edit firewall hierarchical-policer policer1
集合型ポリサーを設定します。
[edit firewall hierarchical-policer policer1] user@host# set aggregate if-exceeding bandwidth-limit 300m burst-size-limit 30k user@host# set aggregate then forwarding-class fc1
集約ポリサーの場合、不適合フローのパケットに対して設定可能なアクションは、パケットの廃棄、損失優先度の変更、または転送クラスの変更です。
プレミアム ポリサーを構成します。
[edit firewall hierarchical-policer policer1] user@host# set premium if-exceeding bandwidth-limit 100m burst-size-limit 50k user@host# set premium then discard
プレミアム ポリサーの帯域幅制限は、集約ポリサーの帯域幅制限より大きくすることはできません。
プレミアム ポリサーの場合、不適合トラフィック フロー内のパケットに対して設定可能な唯一のアクションは、パケットを廃棄することです。
結果
show firewall
設定コマンドを入力して、階層ポリサーの設定を確認します。コマンドの出力結果に意図した設定内容が表示されない場合は、この手順の手順を繰り返して設定を修正します。
[edit] user@host# show firewall hierarchical-policer policer1 { aggregate { if-exceeding { bandwidth-limit 300m; burst-size-limit 30k; } then { forwarding-class fc1; } } premium { if-exceeding { bandwidth-limit 100m; burst-size-limit 50k; } then { discard; } } }
物理または論理インターフェイスのレイヤー2イングレストラフィックへの階層ポリサーの適用
ステップバイステップでの手順
論理インターフェイス so-1/0/0.0でのみ、IPv4 および VPLS トラフィックのレイヤー 2 イングレス トラフィックを階層的にレート制限するには、論理インターフェイス構成からポリサーを参照します。
論理インターフェイスの設定を有効にします。
[edit] user@host# edit interfaces so-1/0/0 unit 0
論理インターフェイスでレイヤー2トラフィックにポリサーを適用する場合、論理インターフェイスに少なくとも1つのプロトコルファミリーを定義する必要があります。
ポリサーを論理インターフェイスに適用します。
[edit] user@host# set layer2-policer input-hierarchical-policer policer1
または、すべての プロトコルファミリーと、物理インターフェイス
so-1/0/0
上で設定されたすべての論理インターフェイスのレイヤー 2イングレストラフィックを階層的にレート制限するには、物理インターフェイス設定からポリサーを参照することもできます。
結果
show interfaces
設定コマンドを入力して、階層ポリサーの設定を確認します。コマンドの出力結果に意図した設定内容が表示されない場合は、この手順の手順を繰り返して設定を修正します。
[edit] user@host# show interfaces so-1/0/0 { unit 0 { layer2-policer { input-hierarchical-policer policer1; } family inet { address 192.168.1.1/24; } family vpls; } unit 1 { family mpls; } }
デバイスの設定が完了したら、設定モードから commit
を入力します。
検証
設定が正常に機能していることを確認します。
論理インターフェイスのトラフィック統計とポリサーの表示
目的
論理インターフェイスを通過するトラフィック フローと、論理インターフェイスでパケットを受信したときにポリサーが評価されることを確認します。
アクション
論理インターフェイスso-1/0/0.0
には show interfaces
operational mode コマンドを使用し、detail
または extensive
オプションを含めます。Traffic statistics の コマンド出力セクションには、論理インターフェイス上で送受信されたバイト数とパケット数が一覧表示され、Protocol inet セクションには、次のように入力または出力ポリサーとしてポリサーpolicer1
を一覧表示するPolicerフィールドが含まれています。
Input: policer1-so-1/0/0.0-inet-i
Output: policer1-so-1/0/0.0-inet-o
この例では、ポリサーは入力方向の論理インターフェイス トラフィックにのみ適用されます。
ポリサーの統計情報の表示
目的
ポリサーによって評価されたパケットの数を確認します。
アクション
show policer
動作モード コマンドを使用し、オプションでポリサーの名前を指定します。コマンドの出力は、設定された各ポリサー(または指定されたポリサー)が各方向に評価したパケットの数を表示します。ポリサー policer1
の場合、入出力ポリサー名は次のように表示されます。
policer1-so-1/0/0.0-inet-i
policer1-so-1/0/0.0-inet-o
-inet-i サフィックスは IPv4 入力トラフィックに適用されるポリサーを示し、-inet-o サフィックスは IPv4 出力トラフィックに適用されるポリサーを示します。この例では、ポリサーは入力トラフィックにのみ適用されます。
例:加入者サービスファイアウォールの階層型ポリサーの設定(ACX7100-48Lデバイス)
この例では、階層型ポリサーを設定し、そのポリサーを、サポートされているプラットフォーム(ACX7100-48L)の加入者インターフェイスのイングレストラフィックに適用する方法を示します。
概要
Junos Evolvedリリース23.4R1以降、階層型ポリサーを設定し、加入者インターフェイスの入力トラフィックにポリサーを適用できるようになりました。この機能は、ACX7100-48L デバイスでサポートされています。
-
加入者サービスの階層ポリサーには、以下の制限があります。
-
階層型ポリシーの設定レベルは 4 つだけで、各レベルには集約型とプレミアム構成があります。
-
論理インターフェイス ポリサーと集約ポリサーは、加入者サービスではサポートされていません。
- 転送クラス内で設定されたポリシング優先度はサポートされていません。たとえば、以下のように表示されます。
class-of-service { forwarding-classes { class BestEffort queue-num 0 priority low policing-priority normal; } }
next term
は階層ポリサーでのみ許可され、フィルターに対しては許可されません。- インターフェイスまたはファミリーへのポリサーの直接アタッチはサポートされていません。ポリサーは、ファイアウォール フィルター アクションによってのみサポートされます。
- ポリサー アクション
forwarding-class
は、イングレスおよびエグレスではサポートされていません。loss-priority high
アクションはイングレスでサポートされています。エグレスではdiscard
アクションのみがサポートされています。 - 1つのポリシーに
loss-priority
およびpolicer
アクションを構成することはできません。一度にサポートされるのは、両方のアクションのいずれかのみです。 filter-specific
オプションはポリサー構成でサポートされていません。- 階層型ポリサーとトライ カラー ポリサーは、エグレス方向ではサポートされていません。
-
フィルター項目チェーン機能は使用できません。
-
トライカラー ポリサーおよび階層型ポリサーは、エグレス方向ではサポートされていません。
-
設定シナリオ
次のセクションでは、さまざまな階層ポリサー オプションのさまざまな設定について説明します。
- シングル レート ツー カラー マーキング ポリサーの設定 シングル レート トライ カラー マーキング ポリサーの設定
- ツーレートトライカラーマーキングポリサー
- DHCP および PPPoE の階層ポリサー
シングル レート ツー カラー マーキング ポリサーの設定
DHCP および PPPoE アクセス モデルでは、シングル レート ツー カラー マーキング ポリサーを設定できます。この設定は、加入者ログインまたはCoA中に有効になります。show dynamic-profiles pppoe-client-policer-1-profile
コマンドを入力して、設定を表示します。構成例を以下に示します。
[edit] root@bng-controller# show dynamic-profiles pppoe-client-policer-1-profile variables { downstream-inet uid; upstream-inet uid; HPolicer-in uid; HPolicer-out uid; } interfaces { pp0 { unit "$junos-interface-unit" { actual-transit-statistics; no-traps; ppp-options { chap; pap; } pppoe-options { underlying-interface "$junos-underlying-interface"; server; } keepalives interval 30; family inet { filter { input "$upstream-inet"; output "$downstream-inet"; } unnumbered-address lo0.0; } family inet6 { unnumbered-address lo0.0; } } } } firewall { family inet { filter "$downstream-inet" { interface-specific; term t1 { from { source-port 80; } then { policer "$HPolicer-in"; accept; } } } filter "$upstream-inet" { interface-specific; term t1 { from { source-port 80; } then { policer "$HPolicer-out"; accept; } } } } policer "$HPolicer-in" { if-exceeding { bandwidth-limit 5m; burst-size-limit 5k; } then discard; } policer "$HPolicer-out" { if-exceeding { bandwidth-limit 10m; burst-size-limit 10k; } then discard; } }
DHCP および PPPoE アクセス モデルでは、シングル レート トライ カラー マーキング ポリサーを設定できます。加入者ログインまたはCoA中にアクティブになります。show dynamic-profiles pppoe-client-policer-1-profile
コマンドを入力して、設定を表示します。構成例を以下に示します。
[edit] user@bng-controller# show dynamic-profiles pppoe-client-policer-2-profile | no-more variables { downstream-inet uid; upstream-inet uid; HPolicer-in uid; HPolicer-out uid; } interfaces { pp0 { unit "$junos-interface-unit" { actual-transit-statistics; no-traps; ppp-options { chap; pap; } pppoe-options { underlying-interface "$junos-underlying-interface"; server; } keepalives interval 30; family inet { filter { input "$upstream-inet"; output "$downstream-inet"; } unnumbered-address lo0.0; } family inet6 { unnumbered-address lo0.0; } } } } firewall { family inet { filter "$downstream-inet" { interface-specific; term t1 { from { source-port 80; } then { policer "$HPolicer-out"; accept; } } } filter "$upstream-inet" { interface-specific; term t1 { from { source-port 80; } then { three-color-policer { single-rate "$HPolicer-in"; } count three-color-policer-count; accept; } } } } policer "$HPolicer-out" { if-exceeding { bandwidth-limit 10m; burst-size-limit 10k; } then discard; } three-color-policer "$HPolicer-in" { action { loss-priority high then discard; } single-rate { color-blind; committed-information-rate 5m; committed-burst-size 5k; excess-burst-size 15k; } } }
ツーレートトライカラーマーキングポリサー
DHCP および PPPoE アクセス モデルでは、ツー レート トライ カラー マーキング ポリサーを設定できます。加入者ログインまたはCoA中にアクティブになります。
このセクションでは、コントローラー ポイントの動的プロファイル構成の例を示します。動的プロファイルの内容は、クライアント プロファイルの加入者ログイン中、またはサービス プロファイルのサービス アクティブ化中に前方に反映されます。show dynamic-profiles pppoe-client-policer-1-profile
コマンドを入力して、設定を表示します。構成例を以下に示します。
[edit] root@bng-controller# show dynamic-profiles pppoe-client-policer-3-profile | no-more variables { downstream-inet uid; upstream-inet uid; HPolicer-in uid; HPolicer-out uid; } interfaces { pp0 { unit "$junos-interface-unit" { actual-transit-statistics; no-traps; ppp-options { chap; pap; } pppoe-options { underlying-interface "$junos-underlying-interface"; server; } keepalives interval 30; family inet { filter { input "$upstream-inet"; output "$downstream-inet"; } unnumbered-address lo0.0; } family inet6 { unnumbered-address lo0.0; } } } } firewall { family inet { filter "$downstream-inet" { interface-specific; term t1 { from { source-port 80; } then { policer "$HPolicer-out"; accept; } } } filter "$upstream-inet" { interface-specific; term t1 { from { source-port 80; } then { three-color-policer { two-rate "$HPolicer-in"; } count three-color-policer-count; accept; } } } } policer "$HPolicer-out" { if-exceeding { bandwidth-limit 10m; burst-size-limit 10k; } then discard; } three-color-policer "$HPolicer-in" { action { loss-priority high then discard; } two-rate { color-blind; committed-information-rate 5m; committed-burst-size 5k; peak-information-rate 10m; peak-burst-size 10k; } } }
DHCP および PPPoE の階層ポリサー
このセクションでは、DHCP および PPPoE アクセス モデルのコントローラ ポイントで動的プロファイル設定の例を示します。動的プロファイルの内容は、クライアント プロファイルの加入者ログイン中、またはサービス プロファイルのサービス アクティブ化中に前方に反映されます。show dynamic-profiles pppoe-client-policer-1-profile
コマンドを入力して、設定を表示します。構成例を以下に示します。
[edit] user@host# show dynamic-profiles pppoe-client-policer-4-profile variables { downstream-inet uid; upstream-inet uid; HPolicer-in uid; HPolicer-out uid; P0-IN uid; P1-IN uid; P2-IN uid; Session-IN uid; } interfaces { pp0 { unit "$junos-interface-unit" { actual-transit-statistics; no-traps; ppp-options { chap; pap; } pppoe-options { underlying-interface "$junos-underlying-interface"; server; } keepalives interval 30; family inet { filter { input "$upstream-inet"; output "$downstream-inet"; } unnumbered-address lo0.0; } family inet6 { unnumbered-address lo0.0; } } } } firewall { family inet { filter "$downstream-inet" { interface-specific; term t1 { from { source-port 80; } then { policer "$HPolicer-out"; accept; } } } filter "$upstream-inet" { interface-specific; term P0-Aggregate { from { dscp 46; } then { hierarchical-policer "$P0-IN"; next term; } } term P1-Premium { from { dscp [ 46 22 ]; } then { force-premium; next term; } } term P1-Aggregate { from { dscp [ 46 22 ]; } then { hierarchical-policer "$P1-IN"; next term; } } term P2-Premium { from { dscp [ 46 22 56 ]; } then { force-premium; next term; } } term P2-Aggregate { from { dscp [ 46 22 56 ]; } then { hierarchical-policer "$P2-IN"; next term; } } term final-Premium { from { dscp [ 46 22 56 00 ]; } then { force-premium; next term; } } term final { then { hierarchical-policer "$Session-IN"; accept; } } } } policer "$HPolicer-out" { if-exceeding { bandwidth-limit 10m; burst-size-limit 10k; } then discard; } hierarchical-policer "$HPolicer-in" { aggregate { if-exceeding { bandwidth-limit 30m; burst-size-limit 30k; } then { loss-priority high; } } premium { if-exceeding { bandwidth-limit 10m; burst-size-limit 10k; } then { discard; } } } hierarchical-policer "$P0-IN" { logical-interface-policer; aggregate { if-exceeding { bandwidth-limit 5m; burst-size-limit 5k; } then { discard; } } premium { if-exceeding { bandwidth-limit 5m; burst-size-limit 5k; } then { discard; } } } hierarchical-policer "$P1-IN" { logical-interface-policer; aggregate { if-exceeding { bandwidth-limit 5m; burst-size-limit 5k; } then { discard; } } premium { if-exceeding { bandwidth-limit 5m; burst-size-limit 5k; } then { discard; } } } hierarchical-policer "$P2-IN" { logical-interface-policer; aggregate { if-exceeding { bandwidth-limit 5m; burst-size-limit 5k; } then { discard; } } premium { if-exceeding { bandwidth-limit 5m; burst-size-limit 5k; } then { discard; } } } hierarchical-policer "$Session-IN" { logical-interface-policer; aggregate { if-exceeding { bandwidth-limit 5m; burst-size-limit 5k; } then { discard; } } premium { if-exceeding { bandwidth-limit 5m; burst-size-limit 5k; } then { discard; } } } }
デバイスの設定が完了したら、設定モードから commit
を入力します。