2. 物理层与数据链路层排错:网线/光纤故障排查与 VLAN 配置

这一章,我们聊聊最底层、也最容易被忽视的问题。很多网络不通的故障,追根溯源,其实就出在物理层或数据链路层。说白了,就是线没插好,或者交换机端口“闹脾气”了。我处理过的故障里,至少有三分之一是这类问题。别笑,越基础的环节,坑往往越深。

2.1 网线/光纤故障排查:连通性、衰减与串扰

物理层的问题,最直观的表现就是“不通”。但“不通”也分很多种。是彻底没信号?还是信号太弱?或者是信号被干扰了?我们得一步步来。

2.1.1 连通性测试:从“亮灯”开始

最基本的,看端口指示灯。交换机端口灯不亮,或者只有一侧亮,那大概率是物理链路断了。我习惯先做这几步:

  1. 检查线缆类型:直通线还是交叉线?现在的设备大多支持 Auto MDI/MDIX,但老设备不行。我记得有一次,一个机房的监控死活连不上,折腾了半天,最后发现是用了交叉线连交换机,而那个交换机不支持自动翻转。
  2. 检查水晶头/模块:压线是否到位?触点有没有氧化?光纤端面脏不脏?这些肉眼可见的问题,往往就是罪魁祸首。
  3. 使用测线仪:这是最靠谱的方法。8根线芯全通,才算合格。如果只有4根通(比如只用了1、2、3、6),百兆能跑,千兆就歇菜。

我的习惯:手边常备一个便宜的网线测试仪。遇到链路不通,先测线,再查配置。这能帮你节省大量时间。

2.1.2 衰减与串扰:看不见的“内伤”

连通性没问题,但网络时快时慢,丢包严重。这时候就要考虑衰减和串扰了。

  • 衰减 (Attenuation):信号在传输过程中能量会损失。线缆过长(超过100米)、线径太细、接头过多,都会导致衰减过大。信号弱到一定程度,接收端就识别不出来了。
  • 串扰 (Crosstalk):一根线缆里的信号干扰了另一根。这通常是因为线缆质量差、或者线对绞合度不够。我遇到过最夸张的一次,是施工队把网线和强电线绑在一起走,结果整个机柜的网络都像“中风”一样,时不时断一下。

要精确测量衰减和串扰,得用专业的线缆认证测试仪(比如 Fluke)。它会给出一个“余量”值,告诉你链路质量好不好。对于普通排错,我们可以通过观察交换机的错误计数器来间接判断。

避坑指南:我曾经在一个项目中,发现某条链路CRC错误暴增。查了所有配置都没问题,最后发现是那根网线有一段被机柜门夹住了,导致内部线芯受损。所以,物理检查永远是最直接的手段。

2.2 交换机端口状态分析:err-disable 与 CRC 错误

交换机端口是数据链路层的边界。端口状态不正常,网络肯定出问题。我们重点看两个现象:err-disable 和 CRC 错误。

2.2.1 err-disable 状态:端口“罢工”了

当你看到交换机端口状态是 err-disabled,说明端口被交换机“强制关闭”了。这不是硬件坏了,而是软件检测到了某种严重错误,为了保护网络而主动断开的。

常见触发原因:

触发原因 说明 常见场景
Port Security 违规 端口上配置了安全策略,但收到了来自未知MAC地址的帧。 有人私自接入了一台新电脑。
BPDU Guard 触发 在接入端口上收到了 BPDU(桥协议数据单元),通常意味着有人私接了交换机。 用户自己带了个小交换机插到网口上。
UDLD 检测到单向链路 光纤链路中,一根光纤断了,导致只能发不能收。 光纤收发器故障或光纤跳线损坏。
环路检测 交换机检测到网络中存在环路。 STP(生成树协议)收敛失败。

排查方法很简单:

  1. 用 show interfaces status 或 show interfaces <接口名> 查看端口状态。
  2. 如果是 err-disable,用 show interfaces <接口名> status err-disabled 查看具体原因。
  3. 解决根本问题后,在接口下执行 shutdown 再 no shutdown 恢复。

核心命令:show interfaces <接口名> | include err-disabled 可以快速定位所有被关闭的端口。

2.2.2 CRC 错误:数据帧“受伤”了

CRC(循环冗余校验)错误,意味着交换机收到了一个损坏的数据帧。这通常是物理层问题导致的,比如:

  • 线缆质量差或过长:信号衰减或串扰导致比特位翻转。
  • 网卡故障:对端设备的网卡有问题,发送了错误的帧。
  • 双工模式不匹配:一端是半双工,另一端是全双工。这会导致大量冲突和 CRC 错误。我遇到过好几次,都是因为有人手动把服务器网卡设成了半双工,而交换机是自动协商。

查看方法:show interfaces <接口名> | include CRC。如果 CRC 错误数量持续增长,那这条链路肯定有问题。

我的经验:看到 CRC 错误,先别急着换线。检查一下两端设备的双工模式是否一致。很多时候,把两端都设成“自动协商”就能解决问题。

2.3 VLAN 配置错误导致不通

物理层和端口都没问题,但就是不通。这时候,十有八九是 VLAN 配置搞错了。VLAN 是数据链路层的逻辑隔离技术,配置错了,就像把两个房间的门锁错了,人进不去。

2.3.1 常见的 VLAN 配置错误

  • Access 端口 VLAN 不匹配:交换机端口是 Access 模式,但连接的设备(比如电脑)所在的 VLAN 和端口配置的 VLAN 不一致。电脑发出来的帧是 Untagged,交换机收到后打上 PVID 的标签。如果 PVID 不对,帧就会被送到错误的 VLAN 里。
  • Trunk 端口允许列表遗漏:Trunk 端口用于交换机之间传递多个 VLAN 的流量。如果 Trunk 端口没有“允许”某个 VLAN 通过,那这个 VLAN 的流量就会被丢弃。我见过最蠢的错误,是配了 Trunk 但忘了敲 switchport trunk allowed vlan add,结果只允许了 VLAN 1 通过。
  • Native VLAN 不匹配:Trunk 链路上,Native VLAN 的帧是不打标签的。如果两端的 Native VLAN 配置不一致,就会导致 VLAN 错乱,甚至引发环路。

2.3.2 排查步骤

  1. 确认设备所属 VLAN:用 show vlan brief 查看 VLAN 数据库,确认你想要的 VLAN 存在,并且端口被正确划分。
  2. 检查 Access 端口:用 show interfaces <接口名> switchport 查看端口的 Access VLAN 和模式。
  3. 检查 Trunk 端口:用 show interfaces trunk 查看 Trunk 状态、允许的 VLAN 列表和 Native VLAN。
  4. 抓包验证:如果还不行,在关键节点抓包。看看帧到底带的是什么 VLAN 标签,是不是被错误地丢弃或转发到了其他地方。

避坑指南:我曾经在配置一个大型园区网时,因为手误,把核心交换机和汇聚交换机之间的 Trunk Native VLAN 配成了 VLAN 10,而两端默认都是 VLAN 1。结果 VLAN 10 的流量在 Trunk 上不打标签,而 VLAN 1 的流量反而打了标签。整个网络乱成一锅粥。从那以后,我配置 Trunk 时都会格外小心 Native VLAN。

2.4 本章知识体系:物理与链路层排错全景图

下面这张图,帮你把本章的核心逻辑串起来。从物理介质到交换机端口,再到 VLAN 逻辑,每一步都可能成为瓶颈。

物理层与数据链路层排错知识体系 物理层与数据链路层排错全景图 物理介质 物理层问题 连通性故障 衰减 / 串扰 线缆损坏 交换机端口 端口状态异常 err-disable CRC 错误 双工不匹配 VLAN 逻辑 VLAN 配置错误 Access VLAN 不匹配 Trunk 允许列表遗漏 Native VLAN 不一致 排错核心思路:自底向上 先查物理介质(线缆/光模块)→ 再查交换机端口状态 → 最后查 VLAN 配置 每一步都确认无误,再进入下一层,避免在错误的方向上浪费时间。

嗯,这一章的内容就到这里。记住,排错就像剥洋葱,从最外层开始,一层一层往里剥。物理层和数据链路层就是最外面那两层,也是最容易出问题的地方。把这些基础打牢了,后面的路就好走多了。