専用アクセス レート(CAR)は、分類とポリシング サービスを提供するために使用できるレート制限の機能です。CAR は、アクセス リストを使用しる IP アドレスとポート値などの特定の条件に基づいてパケットを分類するために使用できます。レート制限値に適合し、値を超えたパケットのアクションを定義できます。CAR の設定方法の詳細は、「専用アクセス レートの設定」を参照してください。
このドキュメントでは、conformed(適合)bps 値が、設定された認定情報レート(CIR)を下回る場合に show interface x/x rate-limit コマンドの出力がゼロ以外の exceeded(超過)bps 値を示す理由について説明します。
このドキュメントに特有の要件はありません。
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
このコマンド出力でゼロ以外の超過レートが表示される状況が 3 つあります。
設定したバースト値が低すぎると十分なスループット レートは許可されません。たとえば、Cisco Bug ID CSCdw42923(登録ユーザ専用)を参照してください。
Cisco IOS®ソフトウェアでダブルアカウンティングの問題を解決
Cisco IOS におけるソフトウェア バグ
仮想インターフェイスからの出力例を調べます。この設定では、動的に作成された仮想アクセス インターフェイスにレート制限を割り当てるために、RADIUS が使用されます。
AV Pair from Radius Cisco-AVPair = "lcp:interface-config#1=rate-limit input 256000 7500 7500 conform-action continue exceed-action drop", Cisco-AVPair = "lcp:interface-config#2=rate-limit output 512000 7500 7500 conform-action continue exceed-action drop",
シスコのレガシー ポリシング機能である CAR のパフォーマンスを監視するためには、show interface x rate-limit コマンドを使用します。この例では、このコマンドの出力で、ゼロ以外の超過 bps が存在する理由についてのヒントが示されます。現在のバースト値は 7392 バイトですが、制限値で示される認定バースト(Bc)値は 7500 バイトに設定されます。
router#show interfaces virtual-access 26 rate-limit Virtual-Access26 Cable Customers Input matches: all traffic params: 256000 bps, 7500 limit, 7500 extended limit conformed 2248 packets, 257557 bytes; action: continue exceeded 35 packets, 22392 bytes; action: drop last packet: 156ms ago, current burst: 0 bytes last cleared 00:02:49 ago, conformed 12000 bps, exceeded 1000 bps Output matches: all traffic params: 512000 bps, 7500 limit, 7500 extended limit conformed 3338 packets, 4115194 bytes; action: continue exceeded 565 packets, 797648 bytes; action: drop last packet: 188ms ago, current burst: 7392 bytes last cleared 00:02:49 ago, conformed 194000 bps, exceeded 37000 bps
CAR またはシスコの新しいポリシング機能、クラスベースのポリシングを設定する際、十分に高いバースト値を設定して、予測されるスループットを確保し、短時間の輻輳に対処するときのみポリシング機能がパケットをドロップするようにする必要があります。
バースト値を選択する場合は、キュー サイズにおいて一時的な増加を考慮することが重要です。パケットが同時に到着し発信すると簡単に想定することはできません。また空のキューに 1 つのパケットが入り、パケットが 1 つ 入って 1 つ出るというパターンに基づいて、常にキュー内に 1 つのパケットがあると考えることはできません。通常のトラフィックがかなりバースト性の高いトラフィックである場合、バースト値も相応して高く設定し、リンクの使用率を許容範囲内で高いレベルで維持する必要があります。バースト サイズが低すぎる、つまり最小しきい値が低すぎると、リンク使用率が許容できないほど低くなります。
バーストは、イーサネット ネットワークで発信される 1500 バイト フレームなどの一連のバックツーバック、MTU サイズのフレームとして簡単に定義できます。このようなフレームのバーストが出力インターフェイスに到着すると、出力バッファがいっぱいになり瞬間的にトークン バケットの設定の深さを超えます。ポリシング機能はトークン メータリング システムを使用して到着するパケットが設定ポリシング値に適合するかあるいは超過または違反するかの決定をバイナリで行います。FTP ストリームなどのバースト性トラフィックでは、パケットの瞬間的な到着レートが設定バースト値を超え CAR ドロップとなる場合があります。
また、ポリシング機能が評価するトラフィックのタイプによって輻輳時の全体スループットが変わります。TCP トラフィックは輻輳に対応しますが、他のフローは対応しません。応答しないフローには UDP ベースや ICMP ベースのパケットなどがあります。
TCP は再転送を要求する確認応答に基づきます。TCP はその肯定確認応答メカニズムの一部として、スライディング ウィンドウを使用します。スライディング ウィンドウ プロトコルでは、送信者が確認応答を待たずに複数のパケットを送信できるので、ネットワーク帯域幅をより良く使用することができます。たとえば、ウィンドウ サイズが 8 のスライディング ウィンドウであれば、送信者は確認応答を受信する前に 8 パケットを送信できます。ウィンドウ サイズを大きくすると、ネットワークのアイドル時間は大幅に削減されます。スライディング ウィンドウ プロトコルを適切に調整すると、ネットワークにパケットによる飽和状態を維持し、高いスループットを維持します。
エンドポイントはネットワークの詳細な輻輳ステータスを認識しないので、プロトコルとしての TCP は、輻輳が発生すると送信レートを減らしてネットワーク内の輻輳に対応する設計になっています。具体的には、次の 2 つの技術を使用します。
技術 | 説明 |
---|---|
乗法減少による輻輳回避 | セグメント(TCP ではパケットに相当)を失うと、輻輳ウィンドウを半分に減らします。輻輳ウィンドウは 2 つ目の値またはウィンドウで、確認応答を待たずに送信者がネットワークへ送るパケットの数を制限するために使用します。 |
スロースタート回復 | 新たな接続でトラフィックを開始する、あるいはある一定時間の輻輳後にトラフィックを増加する場合に、1 セグメントのサイズで輻輳ウィンドウを開始し、確認応答が到着するたびに 1 セグメントずつ増やします。TCP は輻輳ウィンドウを 1 に初期化し、最初のセグメントを送信して待ちます。確認応答が返ってきたら、輻輳ウィンドウを 2 に増やし 2 つのセグメントを送って待ちます。詳細については、RFC 2001を参照してください 。 |
再送エラーがデータを妨げたり、ネットワーク ハードウェアに障害が起きたり、存在する負荷を収容しようとしてネットワークの負荷が高くなりすぎると、パケットが喪失または破壊されます。TCP は喪失したパケット(または過度の遅延のため設定された時間間隔内に確認応答できなかったパケット)があればネットワーク内で輻輳があるとみなします。
ポリシング機能のトークンバケット メータリング システムはパケットが到着するたびに起動します。具体的には、適合率と超過率が次の簡単な式に基づいて算出されます。
(conformed bits since last clear counter)/(time in seconds elapsed since last clear counter)
この式はカウンタが最後にクリアになってからの時間でレートを計算するので、カウンタをクリアにして現在のレートをモニタリングすることを推奨します。カウンタをクリアしなければ、上記の式のレートが実際に表すのは、show コマンド出力による非常に長い期間で算出された可能性がある平均であり、現在のレートを特定する上で値が無意味になる場合があります。
平均スループットは、ある一定の期間、設定された認定情報レート(CIR)に一致する必要があります。バースト サイズにより、所定の時間に最大バーストを維持することができます。トラフィックがない、あるいは CIR に相当するほどのトラフィックがなくトークン バケットが埋まっていない場合も、非常に大規模なバーストは通常のバーストおよび超過バーストに基づいて計算した特定のサイズに制限されたままになります。
次のメカニズムからドロップ レートが得られます。
現在の時間を書き留めます。
パケットが最後に到着した後に累積したトークン数でトークン バケットを更新します。
累積したトークンの合計数が最大トークン値を超えることはできません。超過トークンをドロップします。
パケットの適合性を確認します。
レート制限はポリシングでも実現できます。これは、クラスベースのポリシング機能を使用するイーサネット インターフェイスに対するレート制限を提供するためのサンプル設定です。
class-map match-all rtp1 match ip rtp 2000 10 ! policy-map p3b class rtp1 police 200000 6250 6250 conform-action transmit exceed-action drop violate-action drop policy-map p2 class rtp1 police 250000 7750 7750 conform-action transmit exceed-action drop violate-action drop ! interface Ethernet3/0 service-policy output p3b service-policy input p2
次の出力例は show policy-map interface コマンドを使用し、適合および超過 bps レートとともに正しく計算され同期された提示レート値およびドロップ レート値を示しています。
router#show policy-map interface ethernet 3/0 Ethernet3/0 Service-policy input: p2 Class-map: rtp1 (match-all) 88325 packets, 11040625 bytes 30 second offered rate 400000 bps, drop rate 150000 bps Match: ip rtp 2000 10 police: 250000 bps, 7750 limit, 7750 extended limit conformed 55204 packets, 6900500 bytes; action: transmit exceeded 33122 packets, 4140250 bytes; action: drop conformed 250000 bps, exceed 150000 bps violate 0 bps Service-policy : p3b Class-map: rtp1 (match-all) 88325 packets, 11040625 bytes 30 second offered rate 400000 bps, drop rate 50000 bps Match: ip rtp 2000 10 police: 200000 bps, 6250 limit, 6250 extended limit conformed 44163 packets, 5520375 bytes; action: transmit exceeded 11041 packets, 1380125 bytes; action: drop conformed 200000 bps, exceed 50000 bps violate 0 bps Class-map: class-default (match-any) 0 packets, 0 bytes 30 second offered rate 0 bps, drop rate 0 bps Match: any
次の表では、show policy-map コマンド、または show interface rate-limit コマンドで表示されるカウンタについての解決済みの問題を一覧にしています。ログインしている登録ユーザは、バグ検索ツールでバグ情報を確認できます。
症状 | 解決済みのバグ ID と回避策 |
---|---|
予測ドロップ カウンタより低い |
|
ドロップおよびスループットの予測レートの倍増 |
|
ドロップがない、あるいはドロップ レートがゼロ | 通常、クラスベース QoS 機能を適用した場合、トラブルシューティングでは最初に QoS 分類メカニズムが正しく機能しているかどうかを確認します。つまり、クラスマップの match 文で特定されるパケットが正しいクラスに該当しているかどうか確認します。 router#show policy-map interface ATM4/0.1 Service-policy input: drop-inbound-http-hacks (1061) Class-map: http-hacks (match-any) (1063/2) 149 packets, 18663 bytes 5 minute offered rate 2000 bps, drop rate 0 bps Match: protocol http url "*cmd.exe*" (1067) 145 packets, 18313 bytes 5 minute rate 2000 bps Match: protocol http url "*.ida*" (1071) 0 packets, 0 bytes 5 minute rate 0 bps Match: protocol http url "*root.exe*" (1075) 4 packets, 350 bytes 5 minute rate 0 bps Match: protocol http url "*readme.eml*" (1079) 0 packets, 0 bytes 5 minute rate 0 bps police: 1000000 bps, 31250 limit, 31250 extended limit conformed 0 packets, 0 bytes; action: drop exceeded 0 packets, 0 bytes; action: drop violated 0 packets, 0 bytes; action: drop conformed 0 bps, exceed 0 bps violate 0 bps
|
ドロップ レートの誤りまたは不整合 |
|
改定 | 発行日 | コメント |
---|---|---|
1.0 |
15-Feb-2019 |
初版 |