このドキュメントでは、イーサネット コリジョンに関連するさまざまなカウンタの概要を示し、次の(プラットフォームに基づいた)エラー メッセージによって報告されるイーサネット コリジョンに関する問題のトラブルシューティング方法について説明します。
%AMDP2_FE-5-COLL
%DEC21140-5-COLL
%ILACC-5-COLL
%LANCE-5-COLL
%PQUICC-5-COLL
%PQUICC_ETHER-5-COLL
%PQUICC_FE-5-COLL
%QUICC_ETHER-5-COLL
%AMDP2_FE-5-LATECOLL
%DEC21140-5-LATECOLL
%ILACC-5-LATECOLL
%LANCE-5-LATECOLL
%PQUICC-5-LATECOLL
%PQUICC_ETHER-5-LATECOLL
%PQUICC_FE-5-LATECOLL
%QUICC_ETHER-5-LATECOLL
%SIBYTE-4-SB_EXCESS_COLL
注:このドキュメントの情報は、半二重イーサネットにのみ適用されます。全二重イーサネットでは、コリジョン検出はディセーブルになっています。
このドキュメントに関する固有の要件はありません。
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
表記法の詳細については、『シスコ テクニカル ティップスの表記法』を参照してください。
コリジョンとは、共有されたメディア上で同時にフレームを送信している端末の間で、アクセスを制御し、共有帯域幅を割り当てるために、イーサネットで使用されるメカニズムです。メディアが共有されているため、2 台の端末が同時にフレームを送信していることを検出できるメカニズムが必要となります。このメカニズムがコリジョン検出です。
イーサネットでは、コリジョン検出方式として、Carrier Sense Multiple Access/Collision Detect(CSMA/CD; キャリア検知多重アクセス/コリジョン検出)が使用されます。次に、イーサネットの動作の簡略化した例を示します。
端末 A がフレームを送信しようとしています。端末 A は最初に、メディアが使用可能であるかをチェックします(キャリア検知)。メディアが使用可能でない場合、端末 A は、現在メディアを使用している端末の送信が完了するまで待機します。
端末 A が、メディアが使用可能であると判断し、フレームを送信したと仮定します。メディアは共有されているため(多重アクセス)、他の端末が同時に送信する可能性があります。ここで、端末 B が端末 A と同時にフレームを送信したとします。
端末 A と端末 B はすぐに、他の端末がフレームを送信していることを認識します(コリジョン検出)。各端末は、再送信を実行する前に、待機状態になります。待機状態になる期間はランダムに決定されます。コリジョン後の時間がタイムスロットに分割され、端末 A と端末 B はそれぞれランダムなスロットを選択して再送を試みます。
端末 A と端末 B が同じスロットで再送を試みた場合、両端末はスロットの数を拡張します。続いて各端末は新しいスロットを選択するため、同じスロットで再送される確率が下がります。
つまり、コリジョンとは、共有メディアへのアクセスを調節することで、ある時間にわたってトラフィックの負荷を分散させる方法といえます。コリジョンは障害ではなく、イーサネットが適切に動作するために必要不可欠なものです。
有用な情報:
タイムスロットの最大数は 1024 に制限されています。
コリジョン メカニズムでは、同一フレームの最大再送信回数は 16 になっています。16 回連続して失敗すると、excessive collision(過度のコリジョン)としてカウントされます。
show interface コマンドの出力例を次に示します。
router#show interface ethernet 0 Ethernet0 is up, line protocol is up Hardware is Lance, address is 0010.7b36.1be8 (bia 0010.7b36.1be8) Internet address is 10.200.40.74/22 MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation ARPA, loopback not set Keepalive set (10 sec) ARP type: ARPA, ARP Timeout 04:00:00 Last input 00:00:00, output 00:00:06, output hang never Last clearing of "show interface" counters never Input queue: 1/75/1/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: random early detection(RED) Output queue :0/40 (size/max) 5 minute input rate 1000 bits/sec, 2 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 2058015 packets input, 233768993 bytes, 1 no buffer Received 1880947 broadcasts, 0 runts, 0 giants, 1 throttles 3 input errors, 0 CRC, 0 frame, 0 overrun, 3 ignored 0 input packets with dribble condition detected 298036 packets output, 32280269 bytes, 0 underruns 0 output errors, 10 collisions, 0 interface resets 0 babbles, 0 late collision, 143 deferred 0 lost carrier, 0 no carrier 0 output buffer failures, 0 output buffers swapped out
deferred カウンタでは、インターフェイスがフレームを送信しようとしたものの、最初の試行時にキャリア ビジーが検出された(キャリア検知)回数がカウントされます。これによって障害が生じることはありません。これはイーサネットの正常な動作の一部です。
show interface コマンドの別の出力例を次に示します。
router#show interface ethernet 0 Ethernet0 is up, line protocol is up Hardware is Lance, address is 0010.7b36.1be8 (bia 0010.7b36.1be8) Internet address is 10.200.40.74/22 MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation ARPA, loopback not set Keepalive set (10 sec) ARP type: ARPA, ARP Timeout 04:00:00 Last input 00:00:00, output 00:00:06, output hang never Last clearing of "show interface" counters never Input queue: 1/75/1/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: random early detection(RED) Output queue :0/40 (size/max) 5 minute input rate 1000 bits/sec, 2 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 2058015 packets input, 233768993 bytes, 1 no buffer Received 1880947 broadcasts, 0 runts, 0 giants, 1 throttles 3 input errors, 0 CRC, 0 frame, 0 overrun, 3 ignored 0 input packets with dribble condition detected 298036 packets output, 32280269 bytes, 0 underruns 0 output errors, 10 collisions, 0 interface resets 0 babbles, 0 late collision, 143 deferred 0 lost carrier, 0 no carrier 0 output buffer failures, 0 output buffers swapped out
前述したように、コリジョンによって障害が生じることはありません。collisions カウンタは、フレームの送信時に 1 回以上のコリジョンが発生したフレームの数をカウントします。
collisions カウンタは、次の show controller コマンドの出力に示されるように、single collisions(単一コリジョン)と multiple collisions(複数コリジョン)に分割可能です。
8 single collisions, 2 multiple collisions
つまり、(10 フレームの内の)8 フレームが 1 回のコリジョンで送信に成功し、残りの 2 フレームは、メディアへのアクセスを調停するため、複数のコリジョンが必要だったことになります。
衝突率(出力パケット数を衝突数で割った値)の増加は問題を示すものではなく、単にネットワークに与えられた負荷が大きいことを示しているに過ぎません。たとえば、ネットワークに端末を追加したためにコリジョン率が上昇する場合があります。
「コリジョンは何回発生したら障害といえるか」という問いや、最大のコリジョン率に対して、決められた制限はありません。
つまり、collisions カウンタは、ネットワークのパフォーマンスや障害の分析に役立つ統計情報を提供するものではありません。
コリジョン検出が正常に機能するために、コリジョン検出対象の時間は 512 ビットを処理する時間に制限されています。これは、イーサネットでは 51.2us(マイクロ秒)で、ファースト イーサネットでは 5.12us です。イーサネット端末の場合、コリジョンは送信開始後、最大 51.2 マイクロ秒、つまりフレームの 512 番目のビットまで検出できます。
フレームの 512 番目のビットを送信した後で端末がコリジョンを検出すると、レイト コリジョンとしてカウントされます。
レイト コリジョンは、次のようなエラー メッセージによってレポートされます。
%AMDP2_FE-5-LATECOLL: AMDP2/FE 0/0/[dec], Late collision %DEC21140-5-LATECOLL: [chars] transmit error %ILACC-5-LATECOLL: Unit [DEC], late collision error %LANCE-5-LATECOLL: Unit [DEC], late collision error %PQUICC-5-LATECOLL: Unit [DEC], late collision error %PQUICC_ETHER-5-LATECOLL: Unit [DEC], late collision error %PQUICC_FE-5-LATECOLL: PQUICC/FE([DEC]/[DEC]), Late collision %QUICC_ETHER-5-LATECOLL: Unit [DEC], late collision error
正確なエラー メッセージはプラットフォームによって異なります。レイト コリジョンの回数は、show interface ethernet [interface number] コマンドの出力でチェックできます。
router#show interface ethernet 0 Ethernet0 is up, line protocol is up Hardware is Lance, address is 0010.7b36.1be8 (bia 0010.7b36.1be8) Internet address is 10.200.40.74/22 MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation ARPA, loopback not set Keepalive set (10 sec) ARP type: ARPA, ARP Timeout 04:00:00 Last input 00:00:00, output 00:00:06, output hang never Last clearing of "show interface" counters never Input queue: 1/75/1/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: random early detection(RED) Output queue :0/40 (size/max) 5 minute input rate 1000 bits/sec, 2 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 2058015 packets input, 233768993 bytes, 1 no buffer Received 1880947 broadcasts, 0 runts, 0 giants, 1 throttles 3 input errors, 0 CRC, 0 frame, 0 overrun, 3 ignored 0 input packets with dribble condition detected 298036 packets output, 32280269 bytes, 0 underruns 0 output errors, 10 collisions, 0 interface resets 0 babbles, 0 late collision, 143 deferred 0 lost carrier, 0 no carrier 0 output buffer failures, 0 output buffers swapped out
注:レイトコリジョンをレポートするステーションは、単に問題を示しているに過ぎません。通常、これが問題の原因ではありません。一般に考えられる原因は、不適切なケーブル接続や、ネットワーク内にあるハブの数が規格を超えていることです。Network Interface Card(NIC; ネットワーク インターフェイス カード)の不良によってレイト コリジョンが起きる場合もあります。
前述したように、バックオフ アルゴリズムにおけるリトライの最大回数は 16 に設定されています。つまり、新たなコリジョンがなくて、インターフェイスがフレームを送信できるスロットの割り当てを 16 回連続で失敗した場合、その割り当てはキャンセルされるということです。そのフレームは送信されないだけでなく、excessive collision としてマークされます。
過度のコリジョンは、次のようなエラー メッセージによってレポートされます。
%AMDP2_FE-5-COLL: AMDP2/FE 0/0/[DEC], Excessive collisions, TDR=[DEC], TRC=[DEC] %DEC21140-5-COLL: [chars] excessive collisions %ILACC-5-COLL: Unit [DEC], excessive collisions. TDR=[DEC] %LANCE-5-COLL: Unit [DEC], excessive collisions. TDR=[DEC] %PQUICC-5-COLL: Unit [DEC], excessive collisions. Retry limit [DEC] exceeded %PQUICC_ETHER-5-COLL: Unit [DEC], excessive collisions. Retry limit [DEC] exceeded %PQUICC_FE-5-COLL: PQUICC/FE([DEC]/[DEC]), Excessive collisions, TDR=[DEC], TRC=[DEC] %QUICC_ETHER-5-COLL: Unit [DEC], excessive collisions. Retry limit [DEC] exceeded %SIBYTE-4-SB_EXCESS_COLL : Excessive collisions on mac [dec] (count: [dec])
正確なエラー メッセージはプラットフォームによって異なります。
注:Transmit Retry Count(TRC;送信リトライ回数)カウンタは、4ビットのフィールドで、関連するパケットの送信リトライ回数を示します。最大値は 15 です。ただし、リトライ エラーが発生した場合、この回数は 0 に戻ります。この場合のみ、TRC 値 0 は 16 を意味すると解釈する必要があります。TRC は、コントローラによってフレームの最後の送信記述子に書き込まれるか、またはエラーによってフレームの送信が終了したときに書き込まれます。
注:Time Delay Reflectometer(TDR)カウンタは、送信の開始からコリジョンの発生までの時間を(100ナノ秒(ns)ごとのチックで)カウントする内部カウンタです。送信されたフレームは 1 チックごとに約 35 フィート進むため、この値はケーブルの不良箇所までのおおよその距離を求める際に役立ちます。
過度のコリジョンの回数は、show controller ethernet [interface number] コマンドの出力でチェックできます。
router#show controller ethernet 0 LANCE unit 0, idb 0xFA6C4, ds 0xFC218, regaddr = 0x2130000, reset_mask 0x2 IB at 0x606E64: mode=0x0000, mcfilter 0000/0000/0100/0000 station address 0010.7b36.1be8 default station address 0010.7b36.1be8 buffer size 1524 RX ring with 16 entries at 0x606EA8 Rxhead = 0x606EC8 (4), Rxp = 0xFC244 (4) 00 pak=0x0FCBF4 Ds=0x60849E status=0x80 max_size=1524 pak_size=66 01 pak=0x10087C Ds=0x6133B6 status=0x80 max_size=1524 pak_size=66 02 pak=0x0FDE94 Ds=0x60BA7E status=0x80 max_size=1524 pak_size=203 03 pak=0x100180 Ds=0x611F82 status=0x80 max_size=1524 pak_size=66 04 pak=0x0FD09C Ds=0x609216 status=0x80 max_size=1524 pak_size=66 05 pak=0x0FE590 Ds=0x60CEB2 status=0x80 max_size=1524 pak_size=66 06 pak=0x100AD0 Ds=0x613A72 status=0x80 max_size=1524 pak_size=66 07 pak=0x0FD9EC Ds=0x60AD06 status=0x80 max_size=1524 pak_size=66 08 pak=0x0FF830 Ds=0x610492 status=0x80 max_size=1524 pak_size=348 09 pak=0x1003D4 Ds=0x61263E status=0x80 max_size=1524 pak_size=343 10 pak=0x0FEA38 Ds=0x60DC2A status=0x80 max_size=1524 pak_size=66 11 pak=0x100D24 Ds=0x61412E status=0x80 max_size=1524 pak_size=64 12 pak=0x0FC74C Ds=0x607726 status=0x80 max_size=1524 pak_size=64 13 pak=0x0FD798 Ds=0x60A64A status=0x80 max_size=1524 pak_size=66 14 pak=0x0FE7E4 Ds=0x60D56E status=0x80 max_size=1524 pak_size=64 15 pak=0x0FD2F0 Ds=0x6098D2 status=0x80 max_size=1524 pak_size=66 TX ring with 4 entries at 0x606F68, tx_count = 0 TX_head = 0x606F80 (3), head_txp = 0xFC294 (3) TX_tail = 0x606F80 (3), tail_txp = 0xFC294 (3) 00 pak=0x000000 Ds=0x63491E status=0x03 status2=0x0000 pak_size=332 01 pak=0x000000 Ds=0x634FDA status=0x03 status2=0x0000 pak_size=327 02 pak=0x000000 Ds=0x630A9E status=0x03 status2=0x0000 pak_size=60 03 pak=0x000000 Ds=0x630A9E status=0x03 status2=0x0000 pak_size=60 3 missed datagrams, 0 overruns 0 transmitter underruns, 0 excessive collisions 8 single collisions, 2 multiple collisions 0 dma memory errors, 0 CRC errors 0 alignment errors, 0 runts, 0 giants 0 tdr, 0 spurious initialization done interrupts 0 no enp status, 0 buffer errors, 0 overflow errors 0 TX_buff, 1 throttled, 1 enabled Lance csr0 = 0x73
過度のコリジョンは、何らかの障害を示しています。一般的な原因としては、共有イーサネットにデバイスが全二重で接続されている、NIC で障害が発生している、単に共有メディア上の端末数が多すぎる、などがあります。過度のコリジョンは、速度とデュプレックスのハードコーディングで解決できます。
サービス内部モードがオンの場合、Cisco Catalys スイッチでは過度のコリジョンが発生するたびに %SIBYTE-4-SB_EXCESS_COLL システム メッセージが表示されます。サービス内部モードがオフの場合、過度のコリジョンが特定の固定しきい値に到達した場合にだけ、このメッセージが表示されます。この場合のこのメッセージの表示が、実際のコリジョンの状況を示していると考えられます。サービス内部モードがオンの場合、過度のコリジョンのインスタンスが 1 つ発生するたびにこのメッセージが表示されます。これはハードウェア ノイズが原因である可能性があります。サービス内部モードがオンの場合に発生することがあるこのメッセージの表示は、正常な動作です。このロギングをオフにして、エラー ログにどのような影響があるのかを確認するには、no service internal コマンドを発行することができます。
改定 | 発行日 | コメント |
---|---|---|
1.0 |
01-Aug-2006 |
初版 |