IP : IP ルーテッド プロトコル

ネットワークの入口から出口までのパケット、いわゆる"パケットの一生"のトレース方法

2016 年 10 月 27 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2005 年 8 月 10 日) | 英語版 (2015 年 8 月 22 日) | フィードバック


目次


概要

このドキュメントでは、パケットの一生について説明します。

前提条件

要件

このドキュメントに関する固有の要件はありません。

使用するコンポーネント

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

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 対象のネットワークが実稼働中である場合には、どのような作業についても、その潜在的な影響について確実に理解しておく必要があります。

表記法

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

プロセス

シスコのローエンド ルータには、1xxx、25xx、26xx、3600、3800、4000、4500、および4700シリーズがあります。 これらのルータでは、送信したメッセージは、別のシステムのコントローラで受信されます。 このコントローラは、ほとんどのシステムで、受信したパケットをバッファ メモリに直接保管します。 メッセージを完全に受信すると、コントローラは入力側ドライバがそのメッセージを見つけられるように、何らかのポインタ情報を保管してから、受信割り込みを生成します。

注: コントローラにメッセージを保管するバッファがない場合、コントローラはこの時 "ignore"をログに記録し、メッセージを受信しません。

その後、(通常、ミリ秒で計測される)ある一定の時点で、ドライバがアクティブになります。 ドライバは最初に送信キューをチェックし、次に受信キューをチェックします。 ここでは、受信キューの処理に限って説明します。 ドライバはキューに関する必要なチェックを行い、メッセージがあると判断し、キューからそのメッセージを取り出したあと、コントローラの受信キュー リストを補充します。 それはにそれからどんなフォワーダ、IP または Internet Packet Exchange (IPX)のような、メッセージをか渡すため決定します。

以下の説明では、メッセージがIPメッセージであると想定します。 ドライバは、このIPメッセージを設定済みのIPファスト パスに渡さなければなりません。 まず、メッセージからリンク レイヤ ヘッダーを取り除き、入力インターフェイスにファスト パスが設定されているかどうかを調べます。 設定されていない場合、パケットは" input hold queue "に入れられ(マークされ)、カウンタが調べられます。 カウンタがゼロであれば、"input hold queue"は使い尽くされているので、パケットはドロップされます。 カウンタがゼロ以外であれば、カウンタが減分され、メッセージはプロセス パスのキューに入れられます。

注: "input hold queue"は、文字どおりのキューを意味するわけではありません。 インターフェイスで受信され、(出力インターフェイスへのメッセージの転送、またはバッファの解放によって)完全には処理されていないパケットの集合です。 ただし、設定済みのファスト パスがあれば(通常はあります)、そのメッセージはファスト パスに渡されます。

次にファスト パスがメッセージの有効性をチェックし、まだルーティングされていないメッセージに対して何らかの機能を適用します。 このステップには、暗号解除または圧縮解除(必要な場合、その両方)、Network Addresses Translation (NAT;ネットワーク アドレス変換)、入力Committed Access Rate(CAR)テストの適用、ポリシー ルーティング テストの適用などがあります。

ポリシー ルーティングを使用する場合、それによって実際の出力インターフェイスが選択されます。 ポリシー ルーティングを使用しない場合、次のステップとして、ルート キャッシュ内の宛先アドレスが検索されます(「パケット スイッチング」と呼ばれるプロセスです)。 このキャッシュの構造および内容は、ファスト スイッチング モードによって異なります。 標準のファスト スイッチングでは、このキャッシュには、最近使用された宛先プレフィクス ルートまたは宛先ホスト ルートが含まれていますが、キャッシュ エントリが含まれていない場合もあります。 後者の場合、メッセージはプロセス レベルに押し戻され、再び"input hold queue"としてマークされます。 Cisco Express Forwarding(CEF)スイッチングでは、このキャッシュ(Forwarding Information Base [FIB;転送情報ベース]と呼ばれる)は完全なルート テーブルであるため、このプロセスは発生しません。

ルートが見つかった場合、ルート キャッシュ エントリ(CEFでは「隣接関係」)によって、ソフトウェア、 もしくはハードウェア出力インターフェイス、およびメッセージに付けるヘッダー(該当するネクスト ホップ)が示されます。 多重化されたインターフェイスの場合、これは該当する次の仮想回線または仮想チャネルです。

このソフトウェア インターフェイス上では、いくつかの問題が関与する場合があります。 たとえば、インターフェイスはメッセージのサイズより小さい最大伝送ユニット (MTU)で設定されるかもしれません。 高速経路にフラグメントがないので、この特定のイベントはプロセス レベルに」ぶつかる原因「です。 さらに、インターフェイスにNAT処理、出力CARなどが設定されている場合があります。 こういった機能は、メッセージ処理のこの段階で適用されます。 そして最後に、出力インターフェイスのリンク レイヤ ヘッダーがメッセージに付加され、メッセージが出力ドライバに渡されます。

メッセージがドライバのファスト送信ルーチンに渡されると、次の処理が行われます。

  1. ドライバは、いくつかの判断(たとえば、「メッセージを新しいバッファにコピーしてから送信する必要があるか?」)を行います。

  2. ドライバは、トラフィック シェーピングがアクティブかどうかを判別します。 トラフィック シェーピングがアクティブであれば、指定されたクラスのメッセージについて、メッセージの着信レートと送信レートを比較します。 サブインターフェイスにシェーピング キューが形成されている場合、またはキューは存在しないがレートを超過している場合には、ソフトウェア インターフェイスのキューにメッセージを入れます。

  3. トラフィック シェーピングがアクティブでない場合や このメッセージにはトラフィック シェーピングが適用外である場合、またはレートが超過していない場合には、ドライバは、出力コントローラの送信キューの深さがtx-queue-limit値未満であるかどうかを判別します。 この値未満であれば、ドライバはメッセージを送信のためにキューイングします。 このパスをたどったメッセージは、入力側でファスト スイッチングされ、出力側でファスト スイッチングされたものと見なされます。

  4. ファスト スイッチングが不可能な場合、ドライバはメッセージをソフトウェア キュー(一般に"output hold queue"と呼ばれる)に転送します。 このようなホールド キューの例としては、First In, First Out(FIFO)キューイング、プライオリティ キューイング、カスタム キューイング、およびWeighted Fair Queuing(WFQ;均等化キューイング)があります。

プロセス パスが使用するメッセージの宛先と同じ なので、このようなメッセージは、入力側でファスト スイッチングされ、出力側ではプロセス スイッチングされたものと見なされます。 しかしこれらのメッセージは、実際にはプロセス スイッチングされているわけではありません。 スイッチングの決定は、パケットがファスト パスでスイッチングされる際に行われます。 ただし、メッセージはプロセス パスと共有のキューに転送されています。 その後メッセージがホールド キューから取り除かれ、送信コントローラのキューに入れられる時点で、メッセージはプロセス スイッチングされたものと見なされます。

プロセス スイッチングは、メッセージをファスト パスで送信できない場合に発生します。 これは、メッセージがこのシステムに送信され、最終的(理想的)にルーティング プロセス、リンク メンテナンス プロセス、ネットワーク管理プロセスなどで消費されることを意味します。 ただし、トラフィックは Link Fragmentation and Interleaving (LFI)をフラグメンテーションを必要とするトラフィック jumbogram のセグメント間の音声を、X.25 トラフィック入れ込むのに、使用しているトラフィックがそこに高速経路 ルート エントリでなくトラフィックのようなプロセスパスで全く、行きます。 プロセス パス上での処理は、概念的にはファスト パスと同じですが、さまざまな理由で実装が異なります。 相違点の1つは、出力側で"input hold queue"フラグがクリアされ、入力インターフェイスのカウンタが増分され(input hold queueからのメッセージの削除)、メッセージがoutput hold queueに入れられる点です。 そのあと、割り込みがシミュレートされ、それによって出力インターフェイスでのメッセージ送信がトリガされる場合があります。 それはプロセス オーバーヘッドが理由でファースト スイッチングより遅いです; そのようなメッセージが受け取られる、取扱われなければならないもう少しの複雑なデータ構造がありますとき他のプロセスが実行があるかもしれ。


関連情報


Document ID: 13713