内容

概要

前提条件

要件

使用するコンポーネント

表記法

show interface rate コマンド出力について

CAR およびクラスベースのポリシング カウンタに関する既知の問題

関連情報

概要

専用アクセス レート（CAR）は、分類とポリシング サービスを提供するために使用できるレート制限の機能です。CAR は、アクセス リストを使用しる IP アドレスとポート値などの特定の条件に基づいてパケットを分類するために使用できます。レート制限値に適合し、値を超えたパケットのアクションを定義できます。CAR の設定方法の詳細は、「専用アクセス レートの設定」を参照してください。

このドキュメントでは、conformed（適合）bps 値が、設定された認定情報レート（CIR）を下回る場合に show interface x/x rate-limit コマンドの出力がゼロ以外の exceeded（超過）bps 値を示す理由について説明します。

前提条件

要件

このドキュメントに特有の要件はありません。

使用するコンポーネント

このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

show interface rate コマンド出力について

このコマンド出力でゼロ以外の超過レートが表示される状況が 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 に相当するほどのトラフィックがなくトークン バケットが埋まっていない場合も、非常に大規模なバーストは通常のバーストおよび超過バーストに基づいて計算した特定のサイズに制限されたままになります。

次のメカニズムからドロップ レートが得られます。

1. 現在の時間を書き留めます。

2. パケットが最後に到着した後に累積したトークン数でトークン バケットを更新します。

3. 累積したトークンの合計数が最大トークン値を超えることはできません。超過トークンをドロップします。

4. パケットの適合性を確認します。

レート制限はポリシングでも実現できます。これは、クラスベースのポリシング機能を使用するイーサネット インターフェイスに対するレート制限を提供するためのサンプル設定です。

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

CAR およびクラスベースのポリシング カウンタに関する既知の問題

次の表では、show policy-map コマンド、または show interface rate-limit コマンドで表示されるカウンタについての解決済みの問題を一覧にしています。ログインしている登録ユーザは、バグ検索ツールでバグ情報を確認できます。

症状

解決済みのバグ ID と回避策

予測ドロップ カウンタより低い

- Cisco Bug ID CSCdv41231 （登録ユーザ専用）

入力階層サービス ポリシーが親および子レベルで police コマンドを使用する場合、親レベルのポリシング機能はパケットをドロップする前に輻輳する必要があるため、ポリシング機能が予測パケット数より少なくドロップする可能性があります。このようなポリシーの例を次に示します。

policy-map child

class dscp1

police cir 100000 bc 3000 conform-action transmit exceed-action drop

!

policy-map parent

class rtp1

police cir 250000 bc 7750 conform-action transmit exceed-action drop

service-policy child

回避策として、ポリシーを個別に作成し 1 つを受信、1 つを送信に適用して、階層ポリシーの設定を回避します。

ドロップおよびスループットの予測レートの倍増

- Cisco Bug ID CSCds23924 （登録ユーザ専用）

シスコ エクスプレス フォワーディング（CEF）は、入力から出力インターフェイスへパケットを転送する IOS スイッチング メカニズムを定義します。このバグ ID によって実施される変更以前は、CAR やクラスベース ポリシングなどの CEF および設定 QoS 両方のメカニズムがパケット カウンタを増分していました。結果はいわゆるダブル アカウンティングとなり、適合パケットと超過ドロップの値が膨大になっていました。

- Cisco Bug ID CSCdr40598 （登録ユーザ専用）

Cisco 12000 シリーズでは、出力 CAR がイネーブルで、入力ライン カードが Engine 2 であれば、発信側の出力カウンタは 2 倍になります。このダブル アカウンティングは、出力カウンタの処理方法に原因があります。

- Cisco Bug ID CSCdv84259 （登録ユーザ専用）

Cisco 7500 シリーズ ルータに ip cef distributed コマンドをグローバルでイネーブルにすると、デフォルトでイネーブルの ip route-cache distributed コマンドが非 Versatile Interface Processor（VIP）カード インターフェイスにおいて有効となります。非 VIP は分散 CEF をサポートせず、このコマンドによって非 VIP にまれに見られる副次的な影響がダブル アカウンティングです。

ドロップがない、あるいはドロップ レートがゼロ

通常、クラスベース 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

- Cisco Bug ID CSCds34478 （登録ユーザ専用）

CEF（DCEF ではない）をイネーブルにし入力ポリシーを ATM PVC にアタッチすると、分類は失敗します。Cisco IOS ソフトウェア リリース 12.1T では、CEF（DCEF ではない）をイネーブルにし、出力ポリシーを ATM PVC にアタッチすると、出力分類が失敗します。

ドロップ レートの誤りまたは不整合

- Cisco Bug ID CSCdw50583 （登録ユーザ専用）

クラスマップに表示されるドロップ レートはポリシング処理で示されるドロップ レートと一致しません。次の出力例では、このクラスのドロップ レートは 745000 bps で、ポリシング処理によって示されるドロップ レートは 1072000 bps です。

router#show policy-map interface

Serial3/0.1: DLCI 13 -

Service-policy output: out

Class-map: c2 (match-all)

172483 packets, 91760956 bytes

30 second offered rate 1384000 bps, drop rate 745000 bps

Match: ip precedence 0

police:

384000 bps, 1500 limit, 1500 extended limit

conformed 38903 packets, 20696396 bytes; action: transmit

exceeded 133580 packets, 71064560 bytes; action: drop

conformed 311000 bps, exceed 1072000 bps violate 0 bps

関連情報

- 専用アクセス レートの設定

- CAR を使用したポリシング

- DoS 攻撃中の CAR の使用

- QoS テクノロジーのサポート ページ

- IP ルーティング プロトコルに関するサポート ページ

- IP ルーティングに関するサポート ページ

- テクニカル サポートとドキュメント – Cisco Systems