全二重/半二重が不一致(duplex mismatch)のときのエラーカウンタ

全二重/半二重の不一致は、非常にわかりにくいトラブルです。ポートのエラーカウンタを見ることで、全二重/半二重の不一致が起こってしまっていることを判断できます。Cisco機器のshow interfaceコマンドで、全二重/半二重それぞれのポートで次のようなエラーのカウンタが増加します。

半二重 : collision または late collision
全二重 : CRC

show interfaceコマンドでインタフェースの状態をみて、こうしたエラーカウンタが増加しているときは、全二重/半二重が一致しているかを確認してください。

簡単な例として、レイヤ2スイッチのFasteEthernet0/1(100BASE-TX)ポートとルータのEtherent0/0(10BAES-T)ポートを接続して、スイッチ側を半二重として、ルータ側を全二重としています。このときのshow interfaceコマンドの出力を見ます。

図 全二重/半二重 不一致の例
この例は、全二重と半二重の不一致の状態を見るためのもので、速度の違いは気にしないでください。

半二重のポート(スイッチ)のエラーカウンタ

半二重のポートでは、送信中に受信すると擬似的な衝突とみなすのでcollisionのカウンタが上がります。CSMA/CDの仕様上、衝突はデータを64バイト(512ビット)送信するまでに検出できるはずです。64バイト以上データを送信したあとに検出した衝突はlate collisionのエラーカウンタが上がります。あるビット数を送信するために要する時間を「ビット時間」と呼びます。イーサネットのCSMA/CDでは、データを送信してから衝突は512ビット時間までに検出できるはずです。late collisionは、データを送信してから512ビット時間経過してからの衝突ともいうことができます。

Switch#show interfaces FastEthernet 0/1
FastEthernet0/1 is up, line protocol is up
  Hardware is Fast Ethernet, address is 0009.b744.eec1 (bia 0009.b744.eec1)
  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)
  Half-duplex, 10Mb/s
  input flow-control is off, output flow-control is off
  ARP type: ARPA, ARP Timeout 04:00:00
~省略~
  5 minute output rate 43000 bits/sec, 45 packets/sec
     17226 packets input, 2000396 bytes, 0 no buffer
     Received 9 broadcasts, 0 runts, 0 giants, 0 throttles
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
     0 input packets with dribble condition detected
     19005 packets output, 2124032 bytes, 0 underruns
     3 output errors, 11 collisions, 2 interface resets
     0 babbles, 3 late collision, 18 deferred
     0 lost carrier, 0 no carrier
     0 output buffer failures, 0 output buffers swapped out

全二重のポート(ルータ)のエラーカウンタ

全二重ポートでは、半二重ポートが擬似的な衝突を検出して送信したジャム信号によってCRCエラーのカウンタが上がります。ジャム信号は、壊れてしまっているイーサネットフレームであるためCRCチェックでエラーになるからです。

CRC(Cyclic Redundancy Check)はFCS(Frame Check Sequence)のことです。
R1#show interfaces ethernet 0/0
Ethernet0/0 is up, line protocol is up
  Hardware is AmdP2, address is 00e0.1e57.ae61 (bia 00e0.1e57.ae61)
  Internet address is 10.1.1.1/24
  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)
  Full-duplex, 10Mb/s
~省略~
  5 minute output rate 48000 bits/sec, 53 packets/sec
     17654 packets input, 1937221 bytes, 0 no buffer
     Received 38 broadcasts, 0 runts, 0 giants, 0 throttles
     4 input errors, 4 CRC, 0 frame, 0 overrun, 0 ignored
     0 input packets with dribble condition detected
     16528 packets output, 1862687 bytes, 0 underruns
     16 output errors, 0 collisions, 2 interface resets
     0 babbles, 0 late collision, 0 deferred
     16 lost carrier, 0 no carrier
     0 output buffer failures, 0 output buffers swapped out

CDPでの全二重/半二重の検出

show interfaceのエラーカウンタ以外にもCisco機器では、CDPでも全二重/半二重の不一致を検出できます。対向のポート間で全二重/半二重が不一致であれば、コンソール上に以下のようなログが出力されます。

*Mar  1 00:29:43.736: %CDP-4-DUPLEX_MISMATCH: duplex mismatch discovered on FastEthernet0/1 (not full duplex), with R1 Ethernet0/0 (full duplex).

レイヤ2スイッチの仕組み