サービス品質(QoS) : QoS ポリシング

show interface rate コマンド出力におけるパケット カウンタの専用アクセス レート(CAR)

2008 年 7 月 27 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2008 年 2 月 15 日) | フィードバック

目次


概要

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

show interface rate コマンド出力

このコマンド出力でゼロ以外の超過レートが表示される状況が 3 つあります。

  • 設定されるバースト値が低すぎて十分なスループット レートを得られない。例については、「ツール & リソース」のBug Tool Kitで 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",

show interface x rate-limit コマンドは、シスコのレガシー ポリシング機能、Committed Access Rate(CAR;専用アクセス レート)のパフォーマンスをモニタリングするのに使用します。この例では、コマンドの出力からゼロ以外のドロップ レートの結果になる理由が推定できます。「current burst(現在のバースト)」値は 7392 バイトで、「limit(制限)」値で示す committed burst(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 leaving cisco.com を参照してください。

再送エラーがデータを妨げる、あるいはネットワーク ハードウェアに障害が起きる、あるいは存在する負荷を収容しようとしてネットワークの負荷が高くなりすぎると、パケットが喪失または破壊されます。TCP は喪失したパケット(あるいは過度の遅延のため設定された時間間隔内に確認応答できなかったパケット)があればネットワーク内で輻輳があるとみなします。

ポリシング機能のトークンバケット メータリング システムはパケットが到着するたびに起動します。具体的には、適合レートと超過レートは次の簡単な数式で計算します。

(最後のクリア カウンタ以降のconformed bit数)/(最後のクリア カウンタから経過した秒数)

この式はカウンタが最後にクリアになってからの時間でレートを計算するので、カウンタをクリアにして現在のレートをモニタリングすることを推奨します。カウンタをクリアにしなければ、上記の式のレートが実際に表すのは、show command 出力による非常に長い期間で算出された可能性がある平均であり、現在のレートを特定する上で値が無意味になる場合があります。

平均スループットは、設定された認定情報レートにある一定の期間一致する必要があります。バースト サイズにより、所定の時間に最大バーストを維持することができます。トラフィックがない、あるいは CIR に相当するほどのトラフィックがなくトークン バケットが埋まっていない場合も、非常に大規模なバーストは通常のバーストおよび超過バーストに基づいて計算した特定のサイズに制限されたままになります。

次の方法からドロップ レートが得られます。

  1. 現在の時間を書き留めます。
  2. パケットが最後に到着した後に累積したトークン数でトークン バケットを更新します。
  3. 累積したトークンの合計数が最大トークン値を超えることはできません。超過トークンをドロップします。
  4. パケットの適合性を確認します。

次の出力例は 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 および回避策
予測ドロップ カウンタより低い
  • 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 つを送信に適用して、階層ポリシーの設定を回避します。
ドロップおよびスループットの予測レートの倍増
  • CSCds23924
Cisco Express Forwarding(CEF)は、パケットを入力インターフェイスから出力インターフェイスへ転送する IOS スイッチング メカニズムを定義します。このバグ ID によって実施される変更以前は、CAR やクラスベース ポリシングなどの CEF および設定 QoS 両方のメカニズムがパケット カウンタを増分していました。その結果いわゆるダブル アカウンティングとなり、適合パケットと超過ドロップの値が膨大になっていました。
  • CSCdr40598
Cisco 12000 シリーズでは、出力 CAR がイネーブルで、入力ライン カードが Engine 2 であれば、発信側の出力カウンタは 2 倍になります。このダブル アカウンティングは、出力カウンタの処理方法に原因があります。
  • 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
      
  • CSCds34478
CEF(DCEF ではない)をイネーブルにし入力ポリシーをATM PVC にアタッチすると、分類は失敗します。Cisco IOS ソフトウェア リリース 12.1T では、CEF(DCEF ではない)をイネーブルにし出力ポリシーを ATM PVC にアタッチすると、出力分類は失敗します。
ドロップ レートの誤りまたは不整合
  • CSCdw50583
クラスマップに表示されるドロップ レートはポリシング処理で示されるドロップ レートと一致しません。次の出力例では、このクラスのドロップ レートは 745000 バイトで、ポリシング処理によって示されるドロップ レートは 1072000 バイトです。
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
  

 

関連情報

関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


Document ID: 28882