**ポリシング(Policing)とシェーピング(Shaping)**は、ネットワークトラフィックの制御手法であり、トラフィックの量を管理してネットワーク全体のパフォーマンスを最適化するために使用されます。それぞれ異なる方法でトラフィックを制御しますが、両方とも帯域幅の使用を制限するという点で共通しています。
ポリシング
ポリシングは、ネットワークを流れるトラフィックの速度を監視し、特定の閾値を超えるトラフィックを制限する手法です。ポリシングでは、指定された帯域幅を超えたトラフィックをドロップするか、優先度を下げて再マーキングすることでトラフィックの量を制御します。
ポリシングの特徴:
- 速度制限: トラフィックの速度が設定された制限を超えると、超過分のトラフィックはドロップされるか、再マーキングされます。
- リアルタイム性: ポリシングは、即座にトラフィックの量を制御します。トラフィックが設定された閾値を超えると即座にアクションが取られます。
- 適用場所: 主に入力(インバウンド)方向で使用されることが多いですが、出力(アウトバウンド)でも適用可能です。
シェーピング
シェーピングは、トラフィックを設定された帯域幅に抑えるために、トラフィックの送信を一時的に遅延させる手法です。シェーピングは、トラフィックのピーク時に余分なトラフィックをキューに入れ、ネットワークの負荷が軽減されたときにキューイングされたトラフィックを送信します。
シェーピングの特徴:
- 帯域幅のスムージング: トラフィックを一定の帯域幅内に収めるため、バーストトラフィックを一時的に遅延させ、トラフィックフローを平滑化します。
- バッファリング: 送信を遅延させるために、一時的にトラフィックをバッファに格納し、後で送信します。
- 適用場所: 主に出力(アウトバウンド)方向で使用されます。
ポリシングとシェーピングの違い
| ポリシング | シェーピング | |
| トラフィックの送信方法 | 許可されたトラフィックは、設定されたラインレートで送信されます。 バーストが許可されている場合、その分のトラフィックも送信されます。 | トラフィックは一定の固定レートでスムーズに送信されます。 急激なバーストは発生せず、トラフィックフローが均一に保たれます。 |
| トークンの不足時の処理 | トラフィックが設定された限度を超えると、即座にアクションが実行されます。 例えば、超過したトラフィックがドロップされるか、別の処理が施されます。 | トラフィックが制限を超えた場合、そのトラフィックはバッファに一時的に保存されます。 トークンが利用可能になった時点で、バッファ内のパケットが順次送信されます。シェーピングでは、キューを使ってトラフィックを一時的に保管し、後で送信します。 |
| 設定単位 | 設定はビット/秒、パケット/秒、セル/秒といった複数の単位で可能です。 | 設定単位はビット/秒のみです。 |
| イベント時のアクション | 超過トラフィックに対して、さまざまなアクションが可能です。 例として、トラフィックをドロップしたり、マーキング(ラベル付け)したりします。 | 超過トラフィックをバッファリングする以外のアクションは行いません。 マーキング機能はありません。 |
| 適用場所 | 入力トラフィックと出力トラフィックの両方で適用できます。 | 出力トラフィックにのみ適用されます。 |
| TCPへの影響 | トラフィックがドロップされると、TCPはそれをライン速度(帯域幅制限を超えた速度)で検出しますが、ポリシングによって設定された制限内に収まるように再調整されます。 これにより、TCPの通信速度が急激に低下することがあります。 | シェーピングによってトラフィックがスムーズに制御されるため、TCPは低速な回線を検出し、適切に再送信タイマーを調整します。 これにより、再送信が無駄に行われることが少なくなり、TCPへの負担が軽減されます。 |
ポリシングの設定
QoS では次のポリシング形式またはポリサーがサポートされます。
- シングルレート 2 カラー ポリシング
- デュアルレート 3 カラー ポリシング
シングルレート 2 カラー ポリシング
シングルレート 2 カラー ポリシングは、指定されたCIR(Committed Information Rate、コミット情報レート)とBc(Committed Burst Size、コミットバーストサイズ)に基づいてトラフィックを制御します。この方式は、トラフィックを「適合(conform)」または「違反(exceed)」の2つのカテゴリに分類します。
シングルレート 2 カラー ポリシングの仕組み
- CIR(Committed Information Rate): トラフィックの許可される平均レートです。
- Bc(Burst Committed): 許可されるバーストサイズ。設定されていない場合は自動計算されます。
トラフィックがCIR内であれば適合と見なされ、設定されたアクション(通常はそのまま転送)が行われます。CIRを超えたトラフィックは違反と見なされ、ドロップされるか、別のアクションが適用されます。
シングルレート 2 カラー ポリシングの設定例
IP Precedenceが5のトラフィックに対してCIRをMbps、Bcを20000バイトに設定しています。
R1(config)#class-map match-any TRAFFIC_TO_POLICE
R1(config-cmap)#match ip precedence 5
R1(config-cmap)#exit
R1(config)#
R1(config)#policy-map POLICE_POLICY
R1(config-pmap)#class TRAFFIC_TO_POLICE
R1(config-pmap-c)#police 1000000 20000 conform-action transmit exceed-action drop
R1(config-pmap-c-police)#exit
R1(config-pmap-c)#
R1(config-pmap-c)#interface GigabitEthernet0/1
R1(config-if)#service-policy input POLICE_POLICY
R1(config-if)#
デュアルレート 3 カラー ポリシング
CIR(Committed Information Rate)とPIR(Peak Information Rate)の2つのレートを設定し、トラフィックを「適合(conform)」「超過(exceed)」「違反(violate)」の3つのカテゴリに分類するものです。
デュアルレート 3 カラー ポリシングの仕組み
- CIR(Committed Information Rate): トラフィックが通常許容される平均レート。
- PIR(Peak Information Rate): 一時的に許容される最大レート。CIRよりも高い値に設定されます。
- Bc(Burst Committed): CIRに関連付けられたバーストサイズ。
- Be(Burst Exceed): PIRに関連付けられたバーストサイズ。
デュアルレート 3 カラー ポリシングのトラフィック分類の流れ
- 適合(Conform):
- トラフィックがCIRおよびBc内に収まる場合、適合と見なされ、通常そのまま転送されます。
- 超過(Exceed):
- トラフィックがCIRを超えてPIR内に収まる場合、超過と見なされ、特定のアクション(例えば、再マーキングなど)が適用されます。
- 違反(Violate):
- トラフィックがPIRおよびBeを超えた場合、違反と見なされ、ドロップされるか別のアクションが適用されます。
デュアルレート 3 カラー ポリシングの設定例
トラフィックに対してCIRを1 Mbps、PIRを2 Mbpsに設定し、違反するトラフィックをドロップし、超過トラフィックを再マーキングします。PIR内に収まるトラフィックはDSCP値をAF21に設定して送信して、PIRを超えるトラフィックはドロップします。
R1(config)#class-map match-any TRAFFIC_TO_POLICE
R1(config-cmap)#match ip precedence 5
R1(config-cmap)#exit
R1(config)#
R1(config)#policy-map DUAL_RATE_3_COLOR_POLICY
R1(config-pmap)#class TRAFFIC_TO_POLICE
R1(config-pmap-c)#police cir 1000000 bc 25000 pir 2000000 be 50000
R1(config-pmap-c-police)#conform-action transmit
R1(config-pmap-c-police)#exceed-action set-dscp-transmit af21
R1(config-pmap-c-police)#violate-action drop
R1(config-pmap-c-police)#
R1(config-pmap-c-police)#interface GigabitEthernet0/1
R1(config-if)#service-policy input DUAL_RATE_3_COLOR_POLICY
R1(config-if)#
シェーピングの設定
シェーピングには、**平均レートシェーピング(Average Rate Shaping)と階層型シェーピング(Hierarchical Shaping)**の2つの主要な手法があります。
平均レート シェーピング
平均レートシェーピングは、トラフィックを一定の平均レートに保つように制御する方法です。シェーピングは、トラフィックのピーク時にトラフィックを一時的にバッファに蓄え、その後、ネットワークの状態に応じて送信します。これにより、ネットワークにかかる負荷を均等に分散させ、突発的な帯域幅の消費を抑えることができます。
平均レートシェーピングの特徴
- バッファリング: トラフィックが設定された帯域幅を超えると、そのトラフィックはバッファに蓄えられます。バッファに蓄えられたトラフィックは、後で送信されます。
- スムージング: トラフィックの送信をスムーズにし、急激な帯域幅の変動を抑えます。
- 適用場所: 平均レートシェーピングは、主に出力(アウトバウンド)トラフィックで使用されます。
平均レート シェーピングの設定例
ACl101に一致するトラフィクのみ2 Mbpsの平均レートでシェーピングを行います。トラフィックが2 Mbpsを超えた場合、一時的にバッファリングされ、その後に送信されます。
R1(config)#class-map match-any DATA
R1(config-cmap)#match access-group 101
R1(config-cmap)#exit
R1(config)#
R1(config)#policy-map SHAPING_POLICY
R1(config-pmap)#class DATA
R1(config-pmap-c)#shape average 2000000
R1(config-pmap-c)#exit
R1(config-pmap)#
R1(config-pmap)#interface GigabitEthernet0/1
R1(config-if)#service-policy output SHAPING_POLICY
階層型シェーピング
階層型シェーピングは、複数のレベルのシェーピングを適用し、トラフィックの種類や優先度に応じて帯域幅を管理する方法です。階層型シェーピングでは、親ポリシーと子ポリシーを設定し、親ポリシーが全体の帯域幅を管理し、子ポリシーが個々のトラフィッククラスに対してさらに詳細なシェーピングを適用します。
階層型シェーピングの特徴
- 複数レベルの制御: 親ポリシーが全体の帯域幅を制限し、その下にある子ポリシーが個別のトラフィッククラスに対してさらに制御を行います。
- 柔軟な帯域幅管理: トラフィックの種類や優先度に応じて、きめ細かい帯域幅管理が可能です。
- 適用場所: 主に出力(アウトバウンド)トラフィックで使用されますが、特定のシナリオでは入力(インバウンド)にも適用可能です。
階層型シェーピングの設定例
ポリシーで、全体の帯域幅を10 Mbps(10000000 bps)に制限して、親ポリシー内で、子ポリシーCHILD_POLICYを適用します。子ポリシー内でVIDEOクラスに対して、平均5 Mbps(5000000 bps)でシェーピングを適用します。
R1(config)#class-map match-any VIDEO
R1(config-cmap)#match protocol rtp
R1(config-cmap)#exit
R1(config)#
R1(config)#policy-map CHILD_POLICY
R1(config-pmap)#class VIDEO
R1(config-pmap-c)#shape average 5000000
R1(config-pmap-c)#exit
R1(config-pmap)#policy-map PARENT_POLICY
R1(config-pmap)#class class-default
R1(config-pmap-c)#shape average 10000000
R1(config-pmap-c)#service-policy CHILD_POLICY
R1(config-pmap-c)#exit
R1(config-pmap)#interface GigabitEthernet0/1
R1(config-if)#service-policy output PARENT_POLICY
参考文献
Cisco IOS XE Amsterdam 17.2.x(Catalyst 9300 スイッチ)Quality of Service コンフィギュレーション ガイド