当局域网上的数据传输出现故障时,往往不轻易判定是链路故障还是端口故障。因此需要进行排错,隔离以便修复故障。下面介绍一下简单的判定过程:
我们以3700/2900系列交换机为例,在3700/2900交换机上,现在已经都是IOS的操作系统了。当出现端口的传输有问题时,可以在交换机上执行命令:
h controller Ethernet-controller <interface-number>
这条命令可以帮助判定问题是交换机端口的故障或是电缆的故障,还是由于接口卡的错误造成的。
在执行这条命令时,假如FCS错不断的增加,可能是物理层的故障,需要检查一下传输介质。FCS (Frame Check Sequence)错是以太网接口上常见的错误之一,它表明交换机的从邻接设备收到的以太帧和该帧的CRC有错。FCS用于检查数据帧在传输过程中是否被破坏。假如交换机发现数据帧有FCS错,则会将该数据帧丢弃,然后将该端口的FCS的计数器加1。
另外一个常见的错误是alignment错,它表示交换机的端口所处理的数据帧错位了。这通常是网络端口的问题。Alignment错是指从邻接设备收到的数据帧的bit位不是8的倍数,同时伴有FCS错。我们知道,数据帧的传输是以字节为单位的,一个字节等于8bit,所以每个数据帧的总的长度(以 bit计)都应该是8的倍数。假如数据帧的长度不是8的倍数,此时认为出现alignment错。交换机收到alignment错的数据帧后也会把它丢掉,同时将该端口的alignment计数器加1。
FCS错和alignment错通常表示物理层的错误,比如电缆故障,端口故障,网卡故障等等,但也可能是双工方式不匹配造成的。
下面是一条该命令的结果,供参考:
IOSwitch01#sh controller Ethernet-controller fa0/1
Transmit; Receive
5755681 Bytes; 1335670 Bytes
78090 Frames16070 Frames
75520 Multicast frames 19456789 FC S errors
1588 Broadcast frames; 6011 Multicast frames
0 Pause frames 34 Broadcast frames
0 Single defer frames; 0 Control frames
0 Multiple defer frames;;0 Pause frames
0 1 collision frames;;;;;0 Unknown opcode frames
0 2-15 collisions;;;1000 Alignment errors
1 Late collisions 0;Length out of range
0 Excessive collisions 0 Symbol error frames
0 Total collisions;;8 False carrier errors
0 Control frames;;;;0 Valid frames, too small
0 VLAN discard frames; 0 Valid frames, too large
0 Too old frames;;;;0 Invalid frames, too small
72639 Tagged frames;0 Invalid frames, too large
1 Aborted Tx frames;;;;;;0 Discarded frames
Transmit and Receive
5017 Minimum size frames
87837 65 to 127 byte frames
1030 128 to 255 byte frames
265 256 to 511 byte frames
0 512 to 1023 byte frames
10 1024 to 1518 byte frames
0 1519 to 1522 byte frames
上面的命令是用在较低端的交换机的,假如对于catalyst 6000和catalyst 4000交换机,可以使用命令’show interface counters errors’来查FCS错或alignment错。