非同期転送モード(ATM) : IP over ATM

ATM インターフェイスの最大伝送ユニット(MTU)について理解する

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

目次


概要

最大伝送ユニット(MTU) は、インターフェイスがフラグメント化することなく伝送できる最大サイズのパケットを定義します。 MTU よりも大きい IP パケットは、IP フラグメント化の手順を経ることが必要です。

Cisco ATM ルータ インターフェイスは、64 から 17966 バイトまでの MTU をサポートします。 各インターフェイスは、デフォルトの最大パケットサイズをサポートします。 たとえば、ATM インターフェイス プロセッサ(AIP)とネットワーク プロセッサ モジュール(NP)ではデフォルトの最大値は 9288 バイトで、PA-A3 と PA-A2 ポート アダプタでは 4470 です。

このテクニカル ノートはATM インターフェイスのデフォルト MTU 値をレビューし、ルータが AAL5 オーバーサイズ SDU と AAL5 長さ違反カウンタをカウントアップする時の原因を説明します。

MTU が 4470 バイトの理由

ほとんどの Cisco ATM ルータ インターフェイスはデフォルト MTU サイズの4470 バイトを使用します。 自律スイッチングのFiber Distributed Data Interface(FDDI)とHigh Speed Serial Interface(HSSI)への共通するためこの数字が選択されるようになります。

インターフェイス設定モードで mtu コマンドを使用してデフォルト以外の値を設定します。 サブインターフェイス のMTU値、メインインターフェースのMTU値がサブインターフェイスよりも大きいか、または同じである時にサポートします。

   7200#show interface atm 3/0 
     ATM3/0 is up, line protocol is up 
      Hardware is ENHANCED ATM PA 
      Internet address is 1.1.1.1/8 
      MTU 4470 bytes, sub MTU 1500, BW 149760 Kbit, DLY 80 usec,    
      reliability 255/255, txload 1/255, rxload 1/255
show atm interface atm コマンドを使用して現在設定されている値を表示します。
   7200#show atm interface atm 3/0 
     Interface ATM3/0: 
     AAL enabled: AAL5 , Maximum VCs: 4096, Current VCCs: 2 
     Maximum Transmit Channels: 0 
     Max. Datagram Size: 4528 
     PLIM Type: SONET - 155000Kbps, TX clocking: LINE 
     Cell-payload scrambling: ON 
     sts-stream scrambling: ON 
     8359 input, 8495 output, 0 IN fast, 0 OUT fast, 0 out drop 
     Avail bw = 155000 
     Config. is ACTIVE

AAL5 オーバーサイズ SDU と長さ違反

show interface atm コマンドは、パケットサイズのディスカッションに関係のある 2 つのカウンタを太字でハイライト表示して報告します。
   7200#show interface atm1/ima0 
     ATM1/IMA0.1 is up, line protocol is up 
      Hardware is ATM IMA 
      MTU 4470 bytes, BW 6000 Kbit, DLY 20000 usec, 
      reliability 255/255, txload 1/255, rxload 2/255    
      Encapsulation ATM 
      1382 packets input, 399282 bytes 
      1558 packets output,205883 bytes 
      0 OAM cells input, 0 OAM cells output 
      AAL5 CRC errors : 280 
      AAL5 SAR Timeouts : 0 
     AAL5 Oversized    SDUs : 0 
      AAL5 length violation : 210285    
      AAL5 CPI Error : 302
両方のカウンタは ATM アダプテーション層 5(AAL5)を参照して、ルーテッドまたはブリッジド プロトコル データ ユニット(PDU)を ATM スタックの Common Part Convergence Sublayer(CPCS)でカプセル化します。 RFC 1483leaving cisco.com によって定義される AAL5 トレーラの書式を次の図に示します。

AAL5 トレーラ

AAL5 トレーラにある 2 バイト長さフィールドは、CPCS-PDU ペイロード フィールドのサイズを示します。 2 バイトは 16 ビットまたは最大長さ値の 65,535 (216)オクテットです。

MTU は、第 3 層データグラムのサイズを定義します。 AAL5 サービス データ ユニット(SDU)は、第 3 層データグラムにオプションの論理リンク制御(LLC)や Subnetwork Access Protocol(SNAP)ヘッダを加えて定義されます。 AAL5 PDU は、結合 AAL5 SDU に 8 バイト AAL5 トレーラを加えて定義されます。 したがって、9180 の MTU は、9180 バイトの AAL5 SDU と 8 バイト AAL5 トレーラを加えた 9188 バイトの AAL5 PDU を作成します。

ATM インターフェイスが MTU よりも大きいパケットを受信した場合、ルータは Oversized SDU カウンタをカウントアップします。 Oversized SDU カウンタは、RFC 1695 leaving cisco.com にて定義しています。

    aal5VccOverSizedSDUs OBJECT-TYPE 
      SYNTAX Counter32 
      MAX-ACCESS read-only 
      STATUS    current 
      DESCRIPTION 
      "The number of AAL5 CPCS PDUs discarded    
      on this AAL5 VCC at the interface 
      associated with an AAL5 entity because the    
      AAL5 SDUs were too large." 
      ::= { aal5VccEntry 5 }
RFC 1695 は、次に示すオブジェクト ID を使用して伝送 及び受信を別々のSDUサイズの設定はサポートしています。
    atmVccAal5CpcsTransmitSduSize OBJECT-TYPE 
      SYNTAX INTEGER (1..65535) 
      MAX-ACCESS read-create 
      STATUS    current 
      DESCRIPTION 
      "An instance of this object only exists when the 
      local VCL end-point is also the VCC end-point, 
      and AAL5 is in use. 
      The maximum AAL5 CPCS SDU size in octets that is 
      supported on the transmit direction of this VCC." 
      DEFVAL { 9188 } 
      := { atmVclEntry 9 }
 atmVccAal5CpcsReceiveSduSize OBJECT-TYPE 
      SYNTAX INTEGER (1..65535) 
      MAX-ACCESS read-create    
      STATUS    current 
      DESCRIPTION 
      "An instance of this object only exists when the 
      local VCL end-point is also the VCC end-point, 
      and AAL5 is in use. 
      The maximum AAL5 CPCS SDU size in octets that is 
      supported on the receive direction of this VCC." 
      DEFVAL { 9188 } 
      ::= { atmVclEntry 10 }
RFC 1695 に準拠した ATM インターフェイスは、RFC に定義されている 2 つのカウンタである CRC-32 と SAR タイムアウト エラーと同じように、Oversized SDU エラーを検出した場合にも ifInErrors カウンタをカウントアップします。

ルータは、MTU とは関係なく再構成したパケットの算出サイズが AAL5 長さフィールドで受信した値に一致させることができない場合に、AAL5 長さ違反カウンタをカウントアップします。 これらの違反がどのようにして発生するかを理解するには、受信側 ATM インターフェイスがどのようにしてフレームの最後のセルを認識したかを理解する必要があります。

セル ヘッダには 3 ビットのペイロードタイプ識別子(PTI)フィールドが含まれます。 これらのビットの意味は次のとおりです。

    ビット 1:セルにユーザ データまたは管理データを含ませるかどうかを示す。
    ビット 2:セルの伝送中に輻輳が発生したかどうかを示す。
    ビット 3:セルが高レイヤ データ フレームの最後のセルかどうかを示す。 1 に設定した場合、このビットは End Of Marker(EOM)と呼ばれます。
001 または 011 の PTI 値は、AAL5 PDU の最後のセルにマークを付けて受信側 ATM インターフェイスに再構成を開始するように伝えます。 輻輳またはエラー状態の間に、ATM リンクは最後のセルをドロップする場合があります。 その結果として受信側インターフェイスは、2 番目の AAL5 パケットの最後のマーカ セルを受信するまで再構成を開始しないため長さ違反を生じます。

場合によって、ルータはAAL5の 長さ違反カウンタはAAL5のCRC エラー カウンタより小さな値を報告する場合があります。この条件が発生するのは、再構成したパケットにはATM インターフェイスが長さ違反を宣言 し、CRC を確認せずにパケットをドロップするためです。 ATM インターフェイスが CRC を検査するのは、パケットサイズが AAL5 長さフィールドに一致することを確認したあとのみです。

MTUは大きいかつ同じサイズ の利点

ネットワーク上の複数のインターフェイスに一貫した最大サイズの MTU を使用すると、次のような利点があります。
    フラグメント化の減少または排除。 より大きな MTU は、フラグメント化を減少することによって TCP の性能を拡張するので、Network File System(NFS)のようなアプリケーションでは、8 kB 程度の大きな固有 MTU を最大限に利用ができます。
    パケット バッファ プールのサイズを Cisco 7500 シリーズ プラットフォームの Route Switch Processor(RSP)にあるパケット メモリ(MEMD)に分割して最適化する。 このプラットフォームで、MTU はバッファの分割を行う際に重要な役割を果たします。 具体的には、このプラットフォームは MTU をベースにした 4 つのバッファ プールを作成するバッファ分割アルゴリズムを使用します。 すべてのインターフェイスが同じ MTU を使用すると、ルータは同じサイズのバッファで大きなプールを作成します。 このプラットフォームで大きく広範囲に及ぶさまざまな MTU を使用すると、Cisco IOS ® ソフトウェアは大きなバッファを小さな数に分割することを余儀なくされ、ほかのインターフェイスに影響を及ぼす場合があります。 したがって、7500 シリーズプラットフォームでは、MTU を調整することによってignored input エラーの数が少なくなります。 "%RSP-3-RESTART: cbus complex" の原因について も参照してください。

    注: 本来、AIP は 9180 の MTU をサポートしました。理由を知るためには、アーキテクチャを理解することが必要です。 ATM インターフェイスがアクティブ同時仮想回線(VC)のアドバタイズ最大数をサポートできるのは、統計の多重化と、いくつかの再構成を同時に行うことができるようなパケットバッファを十分に所有していることに基づきます。 Cisco は、AIP での MTU サイズをおよそ 9000 バイトに制限して 2000 のアドバタイズ最大アクティブ VC 値をサポートします。

    処理するパケット数を最少化することによって、ルータの性能を向上させます。 ルータの性能の損失のほとんどは、「伝送したバイト」よりも「処理したパケット」に関係します。 ルータは一般的に、割り込みモードで伝送パケットを処理します。 CPU の速度が速いと必ずしも割り込み中心の操作が速くなるというわけではありませんが、MTU が大きいと性能が高くなる場合があります。

関連 RFC

次の表に、データグラムサイズに関する Request For Comment(RFC)を一覧表示します。注: 表にあるすべてのリンクは、RFC1483 leaving cisco.com です。
 Request For Comment(RFC) 説明
RFC 791 IP フラグメント化の手順を定義する。
RFC 1191RFC 1435 インターネットで IP フラグメント化を減少させる重要なメカニズムであるパス MTU ディスカバリを定義する。 ATM は、イーサネットや FDDI のようなほかのテクノロジとはまったく異なるデフォルト MTU サイズを使用するため、このメカニズムは特に重要です。
RFC 1209 9180 オクテットの SMDS における IP MTU を指定する。 RFC 2225 に定義されているように、インターネット技術特別調査委員会(IETF)はこの値と RFC を使用して 9180 オクテットの MTU を ATM AAL5 上の IP に設定しました(次を参照)。
RFC 1626RFC 2225 相手先選択接続 (SVC) に ATM シグナリング プロトコルを使用して、ATM インターフェイスが AAL CPCS-SDU サイズの取り決めを試みる必要のあるほかのアイテムを指定します。

IP フラグメント化

RFC 791 は IP フラグメント化を定義して、手順について次のように説明します。 「合計の長さが最大伝送ユニットよりも短いかまたは同じである場合は、このデータグラムをデータグラム処理の次のステップにサブミットします。それ以外の場合は、データグラムを 2 つのフラグメントに分割し、1 番めのフラグメントを最大サイズにして、2 番めのフラグメントを残りのデータグラムにします。」

debug ip packet {host access-list} コマンドを使用して、次のサンプル出力は、2 つのホスト間 (192.168.1.51 と 192.168.1.254)の PING を取り込みます。 ルータは、各パケットに 2 つのフラグメントを受信したことを報告します。 1 つは長さが 1500 バイトで、もう 1 つは長さが 48 バイトです。

注意: debug コマンドを発行するまえに、デバッグ コマンドに関する重要事項 を参照してください。

 *Mar 28 09:59:27.002: IP: s=192.168.1.51 (ATM4/0.3), d=192.168.1.254, len 1500, rcvd 4 
   *Mar 28 09:59:27.002: IP: recv fragment from 192.168.1.51 offset 0 bytes  
   *Mar 28 09:59:27.002: IP: s=192.168.1.51 (ATM4/0.3), d=192.168.1.254, len  48, rcvd 4 
   *Mar 28 09:59:27.002: IP: recv fragment from 192.168.1.51 offset 1480 bytes
ルータはエコー応答で応答して 2 つのフラグメントを送信中であることを報告します。
  *Mar 28 09:59:27.002: ICMP: echo reply sent, src 192.168.1.254, dst 192.168.1.51 
    *Mar 28 09:59:27.002: IP: s=192.168.1.254 (local), d=192.168.1.51 (ATM4/0.3), 
    len 1528, sending 
    *Mar 28 09:59:27.002: IP: s=192.168.1.254 (local), d=192.168.1.51 (ATM4/0.3), 
    len 1500, sending fragment   
    *Mar 28 09:59:27.006: IP: s=192.168.1.254 (local), d=192.168.1.51 (ATM4/0.3), 
    len 48, sending last fragment

巨大フレームのサポート

Cisco Catalyst 5000 と 6000 スイッチのギガビット イーサネット インターフェイスは、MTU が 9,216 バイトの巨大フレームをサポートします。 Catalyst ATM モジュールにおける巨大フレームのサポートは、進行中です(Cisco バグ ID CSCdp00676 を経由)。 巨大フレームを最初からサポートできないのは、すべての VC をサポートするバッファの最大数が原因です。

8540 拡張ギガビット イーサネット回線カードのロードマップでは、既に巨大フレームをサポートしています。 巨大フレームのサポートは、8510 のギガビット イーサネット カードでは調査中です。8540 の ATM ルータ モジュール 2 (ARM2)は、現在は構成可能な MTU のサイズをサポートします。

Catalyst ATM モジュールは、コマンド行で最大値 9218 バイトの MTU コマンドを許可します。 ただし、巨大フレーム サポートをしない場合は、この構成変更は誤りです。

   ATM#show interface atm0 
     ATM0 is down, line protocol is down 
      Hardware is Catalyst 5000 ATM 
      MTU 1584 bytes, sub MTU 0, BW 156250 Kbit, DLY 80 usec, rely 255/255, 
      load 1/255 
      Encapsulation ATM, loopback not set, keepalive not supported
      Encapsulation(s): AAL5, PVC mode 
      4096 maximum active VCs, 1024 VCs per VP, 0 current VCCs 
      VC idle disconnect time: 300 seconds 
      Signalling vc = 1, vpi = 0, vci = 5 
      UNI Version = 3.1, Link Side = user 
      PHY Type : SINGLE PHY;    Link Status: DOWN 
     [snip]
LANE バージョン 1 仕様には、SETUP メッセージに AAL パラメータ Information Element(IE)を含ませることが必要です。 この IE では、発呼側または発信元 ATM インターフェイスは、順方向最大 CPCS-SDU サイズおよび逆方向最大 CPCS-SDU サイズを指定する必要があります。 サポートされている AAL5 SDU 最大オクテット値は、1516、4544、9234、および 18190 です。シスコでは、現在 1516 の値だけをサポートしています。

トラブルシューティング

データグラムのサイズに問題の症状がある場合には、トラブルシューティングの範囲を狭めるために、次に示すステップに従います。
  1. 正確な MTU がメイン インターフェイスとサブインターフェイスにあることを確認する。
  2. ある一定のパケットサイズよりも大きい PING が失敗した場合は、問題がトラフィック シェーピングに関係している場合がある。 ATM インターフェイスにおける VBR-nrt トラフィック シェーピングの設定 を参照してください。 パケットが発信元ルータを出たことを確認するか、または次に示すコマンドを使用して送信先ルータを入力するか、あるいはその両方を行います。
      debug ip packet(ホスト アクセス リストだけ)

      注意:このデバッグは、実働出力で大量に出力を作成します。 このデバッグをイネーブルにする場合は、厳重な注意が必要です。

      debug atm packet interface atm mod/port vpi vci

    • debug atm errors
  3. show interface atm の出力にgiants カウンタで 0 以外の値をチェックする。 巨大カウンタは PING を行うとカウントアップしますか。
  4. show buffers コマンドを実行して、ミスと失敗カウンタで 0 以外の値を検索する。 特にルータを PING したり、システム バッファを使用する場合には、カウンタがカウントアップされているかどうかを判定します。 詳細については、この バッファ調整 テクニカル ノートを参照してください。
       7500#show buffers
       Buffer elements: 
          499 in free list (500 max allowed) 
          913677 hits, 0 misses, 0 created
       Public buffer pools: 
         Small buffers, 104 bytes (total 480, permanent 480): 
            474 in free list (20 min, 1000 max allowed)
            1036212 hits, 0 misses, 0 trims, 0 created
            0 failures (0 no memory)
         Middle buffers, 600 bytes (total 360, permanent 360):
            358 in free list (20 min, 800 max allowed)
            635809 hits, 0 misses, 0 trims, 0 created
            0 failures (0 no memory) 
         Big buffers, 1524 bytes (total 360, permanent 360):
            360 in free list (10 min, 1200 max allowed)
            23457 hits, 0 misses, 0 trims, 0 created
            0 failures (0 no memory)      
         VeryBig buffers, 4520 bytes (total 40, permanent 40):
            40 in free list (5 min, 1200 max allowed)
            8969 hits, 0 misses, 0 trims, 0 created
            0 failures (0 no memory)
         Large buffers, 5024 bytes (total 40, permanent 40):
            40 in free list (3 min, 120 max allowed)
            0 hits, 0 misses, 0 trims, 0 created
            0 failures (0 no memory)
         Huge buffers, 18024 bytes (total 4, permanent 0):
            3 in free list (3 min, 52 max allowed)
            0 hits, 1 misses, 427 trims, 431 created
            0 failures (0 no memory)
  5. show ip interface atm コマンドを実行して Cisco Express Forwarding(CEF)がイネーブルかどうかを判定する。 イネーブルであれば、隣接関係エントリを参照して送信先への MTU のサイズを検査します。
   router#show adj atm 5/0.1 interface
     Protocol Interface    Address
     IP ATM5/0.1    point2point(6)
         0 packets, 0 bytes
         00040000
         AAAA030000000800
         CEF expires: 00:02:49
         refresh: 00:00:49
         ATM-PVC never
         Fast adjacency enabled
         IP redirect enabled
        IP mtu 4470 (0x0)
        Fixup disabled

既知の問題:MTU とブリッジング

Bug ID CSCdv42095 は、MTU がブリッジインターフェイスで 1502 バイトよりも小さく設定された場合は、1498 バイトよりも大きいパケットで失敗する PING の問題を解決します。最大パケットのサイズは、MTU と同じ数に最大 ATM カプセル化のバイト数を加えた数にまで変更できます。回避策として MTU を 1502 に設定します。


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

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


関連情報


Document ID: 10479