ルータ : Cisco 12000 シリーズ ルータ

選択パケット廃棄(SPD)の理解

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

目次

概要
はじめに
     表記法
     前提条件
     使用するコンポーネント
概要
SPD プロセス
     SPD 状態チェック
     入力キュー チェック
その他
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

この文書は、Selective Packet Discard(SPD; 選択パケット廃棄)のメカニズムと、その監視および調整方法について説明しています。

注:この文書では、Cisco 12000 シリーズ インターネット ルータの show interfaces 出力で入力廃棄が増加している場合のトラブルシューティング方法については説明していません。これについては、「トラブルシューティング:Cisco 12000 シリーズ インターネット ルータでの入力ドロップ」を参照してください。

はじめに

表記法

文書表記の詳細については、「シスコ テクニカル ティップスの表記法」を参照してください。

前提条件

この文書には前提条件は特にありません。

使用するコンポーネント

この文書の情報は、次のソフトウェアとハードウェアのバージョンに基づいています。

  • Cisco 7200 シリーズ ルータ

  • Cisco 7500 シリーズ ルータ

  • Cisco 12000 シリーズ インターネット ルータ

  • すべてのバージョンの Cisco IOS(R) ソフトウェア

この文書の情報は、特定のラボ環境にあるデバイスに基づいて作成されています。この文書内で使用されているデバイスはすべて、クリアな状態(デフォルト)から設定作業を始めています。実稼動中のネットワークで作業をしている場合、実際にコマンドを使用する前に、その潜在的な影響について理解しておく必要があります。

概要

Selective Packet Discard(SPD; 選択パケット廃棄)は、Route Processor(RP; ルート プロセッサ)でプロセス レベル入力キューを管理するためのメカニズムです。SPD の目標は、プロセス レベル キューの輻輳が発生したときに、ルーティング プロトコル パケットやその他の重要なトラフィック制御レイヤ 2 キープアライブに優先権を与えることです。

従来、Cisco 7x00 や Cisco Express Forwarding(CEF)非対応の 7500 システムなどのプラットフォームでは、ファースト スイッチング キャッシュにデータをキャッシュするため、ルート プロセッサによって大量のトランジット パケットが転送されていました。そのため、このような場合にルーティング プロトコル パケットを、同じキューを共有するトランジット パケットより優先させるため、SPD が必要になりました。

現在、Cisco 12000 シリーズ インターネット ルータ、および CEF が動作する 7500 では、ルータ自身宛てのトラフィックのみがプロセス レベルに送られます。この場合は、Simple Network Management Protocol(SNMP; 簡易ネットワーク管理プロトコル)などの管理トラフィックが存在するとき、または RP にトラフィックを送信する Denial of Service(DoS; サービス拒絶)攻撃が発生しているときに、ルーティング プロトコル パケットを優先するために SPD が使用されます。

SPD プロセス

Cisco 12000 シリーズでは、着信パケットを RP に送って処理する必要があるとラインカードが判断した場合、パケットはシスコ セルとしてスイッチ ファブリックを通じて伝送され、最終的に Cisco Cell Segmentation And Reassembly(CSAR)Field Programmable Gate Array(FPGA)によって受信されます。

その目的は、スイッチ ファブリックと RP CPU の間のトラフィックを処理することです。ここで SPD チェックが実行されます。これは IP パケット、Connectionless Network Service(CLNS; コネクションレス型ネットワーク サービス)、レイヤ 2 キープアライブ、および RP に送られるこれらと同様のパケットに適用されます。SPD では次の 2 つのチェックを行います。これにより、いずれかの状態チェックでパケットが廃棄される可能性があります。

  • SPD 状態チェック

  • 入力キュー チェック

SPD 状態チェック

RP 上にある IP プロセス キューは、一般パケット キューとプライオリティ キューの 2 つの部分に分かれます。一般パケット キューに入れられたパケットは SPD 状態チェックを受け、プライオリティ キューに入れられたパケットはこのチェックを受けません。プライオリティ パケット キューに入る資格があるのは 6 や 7 などの高い IP 優先順位を持つパケットで、このようなパケットが廃棄されることはありません。しかし、プライオリティ パケット キューに入る資格のないパケットは、SPD 状態によっては、一般パケット キューの長さに応じてここで廃棄できます。一般パケット キューには次の 3 つの状態があり、これらの状態の変化に応じて低優先順位パケットの扱いが変わります。

  • NORMAL:キュー サイズ <= 最小

  • RANDOM DROP:最小 <= キュー サイズ <= 最大

  • FULL DROP:最大 <= キュー サイズ

NORMAL 状態では、形式が正しいパケットも正しくないパケットも廃棄されません。

RANDOM DROP 状態では、形式が正しいパケットがランダムに廃棄されます。アグレッシブ モードに設定されている場合は、形式が正しくないパケットがすべて廃棄されます。それ以外の設定の場合は、形式が正しくないパケットが、形式が正しいパケットとして扱われます。

FULL DROP 状態では、形式が正しいパケットも正しくないパケットもすべて廃棄されます。これらの最小値(デフォルトは 73)と最大値(デフォルトは 74)は、シャーシ上の最小保持キューから算出されますが、グローバル コマンド ip spd queue min-threshold および ip spd queue max-threshold によって上書きできます。

アグレッシブ モード

SPD には、通常(デフォルト)とアグレッシブの 2 つの設定モードがあります。両者の違いは、ルータが無効な IP パケット(無効なチェックサム、不正確なバージョン、不正確なヘッダー長、不正確なパケット長)をどのように取り扱うかという点のみです。アグレッシブ モードの場合に RANDOM DROP 状態になると、形式が正しくない IP パケットが SPD によって廃棄されます。アグレッシブ モードに設定するには、ip spd mode aggressive コマンドを使用します。

注:アグレッシブ モードは、Cisco 12000 シリーズ インターネット ルータには実装されていません。これは、形式が正しくない IP パケットが入力ラインカードによって直接廃棄され、Gigabit Route Processor(GRP; ギガビット ルート プロセッサ)には送られないためです。そのため、このプラットフォームではアグレッシブ モードは必要ありません。

入力キュー チェック

入力キューはハードウェア インターフェイスごとに維持され、すべてのサブインターフェイス間で共有されます。SPD を使用しない場合は、パケットが到達したときに入力キューがいっぱいであれば、パケットは廃棄されます。デフォルトの入力キュー サイズは 75 です。このサイズは、hold-queue [size] in インターフェイス設定コマンドを使用してインターフェイスごとに設定できます。入力キューのパケット数は、show interfaces コマンドの「input queue」フィールドに表示されます。

router#show interfaces pos 3/0
   POS3/0 is up, line protocol is up
   Hardware is Packet over SONET
   Internet address is 137.40.55.2/24
   MTU 4470 bytes, BW 2488000 Kbit, DLY 100 usec, rely 255/255, load 1/255
   Encapsulation PPP, crc 32, loopback not set
   Keepalive not set
   Scramble disabled
   LCP Open
   Open: IPCP, CDPCP, OSICP, TAGCP
   Last input 00:00:01, output 00:00:00, output hang never
   Last clearing of "show interface" counters 2w3d
   Queueing strategy: fifo
   Output queue 0/40, 0 drops; input queue 0/75, 0 drops
   30 second input rate 9000 bits/sec, 0 packets/sec
   30 second output rate 0 bits/sec, 0 packets/sec
      456292 packets input, 917329913 bytes, 0 no buffer
      Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
               0 parity
   0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
   112046977 packets output, 32078928095 bytes, 0 underruns
   0 output errors, 0 applique, 3 interface resets
   0 output buffer failures, 0 output buffers swapped out
   1 carrier transitions

注:1 つのインターフェイスの入力キュー サイズを減らすと、他のすべてのインターフェイスで膨大な入力廃棄が発生することがあります。最小入力保持キューのサイズは必ず 75 以上にしてください。

SPD ヘッドルーム

SPD を使用しても、通常の IP パケットの動作には変化はありません。ただし、SPD では IP 優先順位フィールドによってルーティング プロトコル パケットを認識するため、ルーティング プロトコル パケットにはより高い優先順位が与えられます。したがって、IP 優先順位が 6 に設定されている場合、そのパケットは優先されます。

SPD では、これらのパケットを優先するために、これらのパケットが通常の入力キュー制限を超えてプロセス レベル入力キューにキューイングされることを許可します。通常の制限を超えて許可されるパケットの数を、SPD ヘッドルームと呼びます。デフォルトは 100 です。これは、入力保持キューのサイズ(入力キューのデフォルト サイズ + SPD ヘッドルームのサイズ)が 175 未満であれば、高優先順位のパケットは廃棄されないことを意味します。

Cisco IOS ソフトウェア リリース 12.0(22)S 以降は、Cisco 12000 シリーズ インターネット ルータがより大規模な SP ネットワークに対応できるように、SPD ヘッドルームのデフォルトが 1000 になっています。これは、ますます多くの近隣デバイスの間で Border Gateway Protocol(BGP; ボーダーゲートウェイ プロトコル)ピアリングが形成され、ますます高速なインターフェイスを経由して、ますます多くのルートがアドバタイズされているためです。BGP が 1 回クリアされると 1 つのインターフェイスで数千の入力キューが廃棄され、これによってコンバージェンス時間が著しく妨げられる可能性があります。

SPD ヘッドルームは、spd headroom コマンドを使用して設定できます。SPD ヘッドルームの現在のレベルは、show spd または show ip spd コマンドの出力に表示されます。

Router#show spd
   Headroom: 1000, Extended Headroom: 10
   
   Router#show ip spd
   Current mode: normal
   Queue min/max thresholds: 73/74, Headroom: 1000, Extended Headroom: 10
   IP normal queue: 0, priority queue: 0.
   SPD special drop mode: none

注:IP 通常キューのサイズも、show ip spd コマンドによって監視できます。

拡張 SPD ヘッドルーム

Connectionless Network Service Intermediate System-to-Intermediate System(CLNS ISIS; コネクションレス型ネットワーク サービス IS-IS)パケット、Point-to-Point Protocol(PPP; ポイントツーポイント プロトコル)パケット、High-Level Data Link Control(HDLC; 高レベル データリンク制御)キープアライブなどの非 IP パケットは、レイヤ 3 ではなくレイヤ 2 であるために、最近まで通常の優先順位で扱われていました。また、レイヤ 3 以上で動作する Interior Gateway Protocol(IGP; 内部ゲートウェイ プロトコル)には、通常の IP パケットよりは高いものの、BGP パケットと同一の優先順位が与えられていました。このため、BGP コンバージェンスの間、または BGP アクティビティが非常に高いときには、IGP hello やキープアライブがしばしば廃棄され、IGP の隣接関係がダウンしていました。

IGP およびリンクの安定性は、BGP の安定性よりも脆くかつ重大であるため、現在では IGP 関連のパケットに最高の優先順位と、デフォルトで 10 パケットの拡張 SPD ヘッドルームが与えられています。これは、入力保持キューのサイズが 185(入力キューのデフォルト サイズ + SPD 拡張ヘッドルーム)未満であれば、これらのパケットは廃棄されないことを意味します。

拡張 SPD ヘッドルームは、spd extended [size] コマンドを使用して拡張できます。拡張 SPD ヘッドルームの現在のレベルは、show spd または show ip spd コマンドの出力から把握できます。

Router#show ip spd
   Current mode: normal
   Queue min/max thresholds: 73/74, Headroom: 100, Extended Headroom: 10
   IP normal queue: 0, priority queue: 0.
   SPD special drop mode: none

注:Cisco 12000 シリーズ インターネット ルータでは、HDLC および PPP キープアライブが、CLNS ISIS ルーティング プロトコル パケットとともに高優先順位のパケットとして扱われます。Cisco IOS ソフトウェア リリース 12.0(12)S1 以降では、これらが拡張 SPD ヘッドルームにキューイングされる可能性があります。Cisco IOS ソフトウェア リリース 12.0(18)S 以降では、同様にすべての IGP パケットが拡張 SPD ヘッドルームにキューイングされる可能性があります。

入力キューの図

Cisco IOS ソフトウェア リリース 12.0(22)S より前のデフォルト値は次のとおりです。

  • 入力キュー サイズ = 75

  • SPD ヘッドルーム サイズ = 100

  • 拡張ヘッドルーム サイズ = 10

Cisco IOS ソフトウェア リリース 12.0(22)S 以降のデフォルト値は次のとおりです。

  • 入力キュー サイズ = 75

  • SPD ヘッドルーム サイズ = 1000

  • 拡張ヘッドルーム サイズ = 10

最初のケースを図示すると次のようになります。

spd_29920a.gif

  • 通常の優先順位の IP パケットは、デフォルトのキュー制限(75)に達するまでキューイングできます。

  • 高優先順位の IP パケットは、デフォルトのキュー制限 + SPD ヘッドルーム(Cisco IOS ソフトウェア リリースに応じて 175 または 1075)に達するまでキューイングできます。

  • CLNS、IGP、および LC キープアライブ パケットは、デフォルトのキュー制限 + SPD ヘッドルーム、SPD 拡張ヘッドルーム(Cisco IOS ソフトウェア リリースに応じて 185 または 1085)に達するまでキューイングできます。

その他

ここでは、SPD に関するその他のヒントや情報を示します。

  • デフォルトでは、SPD は「オン」です。SPD を有効/無効にするには、spd enable グローバル コマンドを使用します。

  • 当初、SPD は Packet Over Sonet(PoS)インターフェイスでのみ使用できました。

  • Cisco IOS ソフトウェア リリース 12.0(21)S より前のリリースでは、Cisco 12000 シリーズ インターネット ルータに取り付けられたギガビット イーサネット ラインカード(エンジン 1 およびエンジン 2)およびファースト イーサネット ラインカードでは、SPD が機能しませんでした。超過パケットを格納するためには、入力保持キューを増やす必要がありました。

  • Cisco 7200/7500 シリーズ ルータでは、show interfaces コマンドの出力に SPD フラッシュ(ドロップ)カウンタが表示されます(非 First In, First Out(FIFO; 先入れ先出し)キューイングについては Cisco IOS ソフトウェア リリース 12.1(1)、12.1(1)T、および 12.0(9)ST 以降、FIFO キューイングについては 12.2(7)、12.2(7)T、および 12.1(7)E 以降)。その他のリリースおよび Cisco 12000 シリーズ インターネット ルータでは、このカウンタは show interface switching コマンドを入力した場合にのみ表示されます。たとえば、SPD フラッシュ、アグレッシブ ドロップ、および優先順位を表示するには show interface pos 0/1 switching コマンドを使用します。

    次に例を示します。

    7500_Router#show interfaces
       
       FastEthernet0/0/0 is up, line protocol is up
       
       Hardware is cyBus FastEthernet Interface, address is 0090.9282.7000 (bia 0090)
       
       MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec, rely 255/255, load 1/255
       
       Encapsulation ARPA, loopback not set
       
       Keepalive set (10 sec)
       
       Full-duplex, 100Mb/s, 100BaseTX/FX
       
       ARP type: ARPA, ARP Timeout 04:00:00
       
       Last input 00:00:01, output 00:00:01, output hang never
       
       Last clearing of "show interface" counters never
       
       Queueing strategy: fifo
       
       Output queue 0/40, 0 drops; input queue 0/75, 0 drops, 0 flushes
       
       30 second input rate 4000 bits/sec, 9 packets/sec
       
       30 second output rate 0 bits/sec, 0 packets/sec
       
       2628397 packets input, 546327119 bytes, 0 no buffer
       
       Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
       
       0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
       
       0 watchdog, 0 multicast
       
       0 input packets with dribble condition detected
       
       264792 packets output, 225434458 bytes, 0 underruns
       
       0 output errors, 0 collisions, 20 interface resets
       
       0 babbles, 0 late collision, 0 deferred
       
       22 lost carrier, 0 no carrier
       
       0 output buffer failures, 0 output buffers swapped out
       
       

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

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


関連情報


Document ID: 29920