← 回到技术随笔
· 10396 字

H3C交换机端口不通排查实例

以 H3C S5570S 和 Comware V7 为例,从物理连接、IP-MAC-端口绑定、MAC 学习、VLAN、上联和网关逐步排查办公电脑端口不通。

本文以 H3C S5570S 系列和 Comware V7 为主要示例,只适用于本人拥有或已经明确授权管理的交换机。文中的地址、端口和 MAC 地址都是示例,使用时要换成现场实际信息。

一、现场场景

主办公区一台固定电脑接在 GigabitEthernet1/0/1,之前一直正常,今天突然无法访问 IPv4 和 IPv6 网关。同一 VLAN 的其他电脑没有报障,交换机上联使用 Bridge-Aggregation1,办公网是 VLAN 10。

遇到这种问题,我不会一上来删除端口配置,也不会先重启交换机。端口不通可能出在线缆、终端、安全绑定、VLAN、上联或网关,先检查更容易变化的项目,再补查原来已经正常的配置。

本次使用下面的示例:

项目 示例值
接入交换机 HQ-Access-01
上级交换机 HQ-Core-01
终端端口 GigabitEthernet1/0/1
上联聚合接口 Bridge-Aggregation1
办公网 VLAN 10
终端 IPv4 192.168.10.11
IPv4 网关 192.168.10.1
终端 IPv6 2001:db8:10::11
IPv6 网关 2001:db8:10::1
终端 MAC 00e0-fc12-3456

示例地址不能直接用于生产网络。排查前要从终端、DHCP 平台或网管系统取得真实 IP、MAC、接入端口和所属 VLAN。

二、排查目标

  1. 确认电脑、网线和交换机端口是否已经建立物理连接;
  2. 确认端口没有被关闭,速率、双工和错误计数没有异常;
  3. 确认 IP-MAC-端口绑定等安全策略仍与原电脑一致;
  4. 确认交换机能在正确端口和 VLAN 学到终端 MAC;
  5. 必要时再核对 Access VLAN 和上联 Trunk;
  6. 确认网关能学到终端的 IPv4 ARP 和 IPv6 邻居;
  7. 找到故障位置后只修改对应配置,并完成双栈验证。

三、先在电脑和现场做检查

先看电脑网卡是否启用、网线是否松动,再换一根确认正常的网线测试。本文端口配置了 IP-MAC-端口绑定,不能直接换另一台电脑接入测试,否则新电脑与原绑定不一致,本来就无法通过安全检查。

Windows 电脑上先执行:

# 查看网卡、IPv4、IPv6、网关和 DHCP 状态。
ipconfig /all

# 测试本机 TCP/IP。
ping 127.0.0.1
ping ::1

# 测试办公网 IPv4 和 IPv6 网关。
ping 192.168.10.1
ping 2001:db8:10::1

# 查看电脑当前记录的 IPv4 ARP 和 IPv6 邻居。
arp -a
netsh interface ipv6 show neighbors

如果电脑显示“网络电缆被拔出”,先处理网线、网卡和交换机物理端口。电脑已经取得地址但网关不通,再继续检查 VLAN、上联和安全策略。

还要问清楚故障范围:

  • 只有一台电脑不通,优先检查终端、网线、接入口和绑定;
  • 同一 VLAN 多台电脑同时不通,优先检查上联 Trunk、聚合和网关;
  • IPv4 正常、IPv6 不通,重点检查终端 IPv6 地址、IPv6 网关、邻居表和 IPv6 安全策略;
  • 内网正常、只有互联网不通,应继续检查网关、路由、防火墙和 DNS,不能只盯着交换机端口。

四、Comware V7 排查实例

1. 查看端口物理状态

先看端口简要状态和 Down 原因:

# 查看全部端口,确认 GE1/0/1 当前是 UP、DOWN 还是 ADM。
<HQ-Access-01> display interface brief

# 只查看 Down 端口及设备给出的原因。
<HQ-Access-01> display interface brief down

# 查看 1 号端口的详细状态、速率、双工、错误计数和最近一次抖动时间。
<HQ-Access-01> display interface GigabitEthernet 1/0/1

# 查看端口当前生效配置,确认是否存在 shutdown、限速或其他特殊设置。
<HQ-Access-01> display current-configuration interface GigabitEthernet 1/0/1

常见状态可以这样理解:

  • UP:网线和两端设备已经建立物理连接,但不代表 VLAN 和业务一定正常;
  • DOWN:通常是没接线、网线损坏、对端网卡关闭或两端协商失败;
  • ADM:端口被 shutdown 关闭,要先确认关闭原因,不能看到后直接开启;
  • 端口反复 Up/Down:重点检查水晶头、网线、网卡、模块和光纤。

如果故障出现在光口上联,例如 GigabitEthernet1/0/49,再检查光模块告警和收发光功率:

# 查看模块类型和基本信息。
<HQ-Access-01> display transceiver interface GigabitEthernet 1/0/49

# 查看丢光、收光过低等模块告警。
<HQ-Access-01> display transceiver alarm interface GigabitEthernet 1/0/49

# 查看模块支持的温度、电压、发送和接收光功率。
<HQ-Access-01> display transceiver diagnosis interface GigabitEthernet 1/0/49

普通电口没有光模块,不需要执行这三条命令。光功率是否正常要结合模块规格和设备显示的告警判断,不能只凭一个固定数值下结论。

2. 检查 IP-MAC-端口绑定和安全策略

前面的 Access 端口文章给固定终端配置过 IP-MAC-端口绑定。虽然本次没有更换电脑,也要先核对终端当前地址、网卡 MAC 和交换机绑定是否仍然一致,排除网卡维修、系统调整或绑定被误改等情况。

# 查看端口完整配置,确认是否启用了 IPv4/IPv6 Source Guard。
<HQ-Access-01> display current-configuration interface GigabitEthernet 1/0/1

# 查看这个端口的 IPv4 和 IPv6 静态绑定。
<HQ-Access-01> display ip source binding static interface GigabitEthernet 1/0/1
<HQ-Access-01> display ipv6 source binding static interface GigabitEthernet 1/0/1

# 查看端口安全状态、模式和已经学习的安全 MAC。
<HQ-Access-01> display port-security interface GigabitEthernet 1/0/1

# 查看端口入方向和出方向是否应用了报文过滤 ACL。
<HQ-Access-01> display packet-filter interface GigabitEthernet 1/0/1 inbound
<HQ-Access-01> display packet-filter interface GigabitEthernet 1/0/1 outbound

绑定中的 IP、MAC、VLAN 和实际端口必须全部对应当前终端。不能为了快速恢复网络就删除整套安全策略,应先记录实际信息,再修改确实错误的表项。

如果端口没有应用 ACL,不代表网络中没有 ACL。还要继续检查上级交换机的 VLAN 接口、路由接口和防火墙策略,并同时考虑 IPv4 与 IPv6。

3. 检查 MAC 地址学习

让电脑持续 ping 网关,同时在交换机上查看 MAC:

# 查看 1 号端口动态学习到的 MAC。
<HQ-Access-01> display mac-address dynamic interface GigabitEthernet 1/0/1

# 按终端 MAC 查询,确认 VLAN 和端口都正确。
<HQ-Access-01> display mac-address 00e0-fc12-3456 vlan 10

# 查看整个 VLAN 10 的 MAC,便于和正常终端对比。
<HQ-Access-01> display mac-address vlan 10

可以按下面的结果继续判断:

  • 学不到任何 MAC:终端可能没有发包,也可能是网线、网卡、端口或安全策略有问题;
  • MAC 学在 GE1/0/1、VLAN 10:接入口到终端这一段基本正常,继续查上联和网关;
  • MAC 学在其他端口:先确认电脑是否接错位置,也要留意 MAC 地址漂移;
  • MAC 出现在错误 VLAN:检查 Access VLAN、语音 VLAN、MAC VLAN 或其他动态分配配置。

不要为了“刷新”而直接清空整台交换机的 MAC 表。动态 MAC 会老化,也可以通过终端持续发包重新学习。

4. 必要时核对 Access VLAN

同一台电脑和端口之前正常,Access VLAN 一般不会自行改变,因此不用排在最前面。如果近期做过批量配置、配置恢复或端口调整,或者 MAC 出现在错误 VLAN,再重点核对:

# 查看端口是否为 Access,以及是否加入 VLAN 10。
<HQ-Access-01> display current-configuration interface GigabitEthernet 1/0/1

# 查看 VLAN 10 是否存在,以及 GE1/0/1 是否在未打标签端口列表中。
<HQ-Access-01> display vlan 10

本文的办公电脑端口应看到下面三项关键配置:

interface GigabitEthernet1/0/1
 port link-type access
 port access vlan 10

5. 检查聚合和 Trunk

如果同一 VLAN 多台电脑同时不通,或者接入口已经学到 MAC 但网关仍不通,就检查上联:

# 查看聚合接口和成员端口状态。
<HQ-Access-01> display link-aggregation summary
<HQ-Access-01> display link-aggregation verbose bridge-aggregation 1

# 查看聚合接口的 Trunk 配置。
<HQ-Access-01> display current-configuration interface Bridge-Aggregation1

# 查看所有 Trunk 的 PVID 和允许通过的 VLAN。
<HQ-Access-01> display port trunk

重点确认:

  1. 两个成员端口是否为 Selected
  2. Bridge-Aggregation1 是否为 Trunk;
  3. Trunk 是否允许 VLAN 10;
  4. 接入交换机和上级交换机两端配置是否一致;
  5. VLAN 10 的 MAC 是否能在接入交换机上联和上级交换机下联方向继续学习。

只检查接入交换机不够,上级交换机 HQ-Core-01 也要执行相同的聚合、Trunk、VLAN 和 MAC 检查。

6. 检查 ARP 和 IPv6 邻居

这台接入交换机只在 Vlan-interface100 配置管理地址,没有 VLAN 10 的三层接口,因此它不一定会学习办公电脑的 ARP 和 IPv6 邻居。办公网的表项通常要到网关 HQ-Core-01 上查看:

# 在办公网网关上查看终端 IPv4 与 MAC 的对应关系。
<HQ-Core-01> display arp 192.168.10.11

# 在办公网网关上查看终端 IPv6 邻居。
<HQ-Core-01> display ipv6 neighbors 2001:db8:10::11

# 再按终端 MAC 查询,确认表项指向正确的 VLAN 和下联。
<HQ-Core-01> display mac-address 00e0-fc12-3456 vlan 10

接入交换机能学到 MAC,但网关没有 ARP 或 IPv6 邻居,通常说明数据没有到达网关、终端地址配置不对,或者中间安全策略丢弃了报文。

如果网关已经学到正确表项,电脑仍然不通,就继续检查网关接口、返回路径、防火墙和终端自身防火墙。不要把所有三层问题都归到接入端口。

7. 与正常端口对比

现场有正常电脑时,我会把故障端口和正常端口放在一起比较:

# 对比故障端口与正常端口的配置。
<HQ-Access-01> display current-configuration interface GigabitEthernet 1/0/1
<HQ-Access-01> display current-configuration interface GigabitEthernet 1/0/2

# 对比两个端口的详细状态和错误计数。
<HQ-Access-01> display interface GigabitEthernet 1/0/1
<HQ-Access-01> display interface GigabitEthernet 1/0/2

# 对比两个端口学习到的 MAC。
<HQ-Access-01> display mac-address dynamic interface GigabitEthernet 1/0/1
<HQ-Access-01> display mac-address dynamic interface GigabitEthernet 1/0/2

对比时只找与故障有关的差异,不要把正常端口的全部配置直接复制到故障端口。端口描述、绑定地址和终端用途本来就可能不同。

五、找到问题后的处理示例

1. 端口被误关闭

确认端口应当投入使用,而且没有环路或安全隔离要求后再开启:

<HQ-Access-01> system-view
[HQ-Access-01] interface GigabitEthernet 1/0/1
[HQ-Access-01-GigabitEthernet1/0/1] undo shutdown
[HQ-Access-01-GigabitEthernet1/0/1] return

2. Access VLAN 配错

确认 GE1/0/1 确实连接办公电脑后,把它加入 VLAN 10:

<HQ-Access-01> system-view
[HQ-Access-01] interface GigabitEthernet 1/0/1
[HQ-Access-01-GigabitEthernet1/0/1] port link-type access
[HQ-Access-01-GigabitEthernet1/0/1] port access vlan 10
[HQ-Access-01-GigabitEthernet1/0/1] return

3. 上联遗漏 VLAN 10

两端都确认 VLAN 10 应当通过后,再在对应聚合 Trunk 上补充:

# 接入交换机补充 VLAN 10。
<HQ-Access-01> system-view
[HQ-Access-01] interface Bridge-Aggregation1
[HQ-Access-01-Bridge-Aggregation1] port trunk permit vlan 10
[HQ-Access-01-Bridge-Aggregation1] return

# 上级交换机也要检查并补充同一 VLAN。
<HQ-Core-01> system-view
[HQ-Core-01] interface Bridge-Aggregation1
[HQ-Core-01-Bridge-Aggregation1] port trunk permit vlan 10
[HQ-Core-01-Bridge-Aggregation1] return

如果问题是 IP-MAC-端口绑定或 ACL,不建议照文章给一条通用删除命令。应根据实际终端信息修改对应表项,并保留原配置和变更记录。

六、Comware V5 配置差异

本文参考的 H3C S5500 Comware V5 Release 2208,端口、VLAN、MAC、ARP、IPv6 邻居和光模块的主要排查命令与 V7 基本一致:

# 查看端口状态、配置和 VLAN。
<HQ-Access-01> display interface brief
<HQ-Access-01> display interface GigabitEthernet 1/0/1
<HQ-Access-01> display current-configuration interface GigabitEthernet 1/0/1
<HQ-Access-01> display vlan 10

# 查看 MAC、IPv4 ARP 和 IPv6 邻居。
<HQ-Access-01> display mac-address interface GigabitEthernet 1/0/1
<HQ-Core-01> display arp 192.168.10.11
<HQ-Core-01> display ipv6 neighbors 2001:db8:10::11

# 光口故障时查看模块告警和诊断参数。
<HQ-Access-01> display transceiver alarm interface GigabitEthernet 1/0/49
<HQ-Access-01> display transceiver diagnosis interface GigabitEthernet 1/0/49

# 查看接口入方向应用的 ACL。
<HQ-Access-01> display packet-filter interface GigabitEthernet 1/0/1 inbound

Release 2208 支持 IPv4 和 IPv6 IP Source Guard,排查绑定时应分别查看对应表项。不同 S5500 子型号的功能范围可能不同,不能把其他 V5 型号的结果直接套用到现场设备。

七、验证方法

处理完成后先确认交换机状态:

# 确认端口为 UP、Access VLAN 为 10。
<HQ-Access-01> display interface GigabitEthernet 1/0/1 brief
<HQ-Access-01> display current-configuration interface GigabitEthernet 1/0/1
<HQ-Access-01> display vlan 10

# 确认终端 MAC 学在 GE1/0/1 和 VLAN 10。
<HQ-Access-01> display mac-address 00e0-fc12-3456 vlan 10

# 确认聚合成员正常,Trunk 允许 VLAN 10。
<HQ-Access-01> display link-aggregation verbose bridge-aggregation 1
<HQ-Access-01> display port trunk

# 在网关确认 IPv4 ARP 和 IPv6 邻居。
<HQ-Core-01> display arp 192.168.10.11
<HQ-Core-01> display ipv6 neighbors 2001:db8:10::11

再从电脑完成端到端测试:

# 确认地址、网关和 DNS 已经恢复正确。
ipconfig /all

# 分别测试 IPv4 和 IPv6 网关。
ping 192.168.10.1
ping 2001:db8:10::1

# 网关正常后,再测试公司内网服务器。
ping 192.168.100.30

网关正常后,还要打开公司实际使用的内网系统,单独验证 DNS 时应查询公司的内网域名。端口变成 UP 只是第一步,终端地址正确、MAC 学习正确、双栈网关可达、实际业务恢复,才能说明故障处理完成。

八、常见误区

1. 看到端口 Down 就执行 undo shutdown

DOWNADM 不是一回事。没有接线的端口执行 undo shutdown 也不会变成 UP;原本因安全或环路被关闭的端口,更不能直接开启。

2. 端口 UP 就认为交换机没问题

UP 只说明物理连接建立。VLAN 配错、Trunk 未放行、绑定不匹配时,端口仍然可以显示 UP

3. 接入交换机没有 ARP 就判断故障

二层接入交换机没有业务 VLAN 的三层接口时,不负责学习该 VLAN 终端的 ARP。应到真正的网关上查看 ARP 和 IPv6 邻居。

4. 为了测试直接删除 ACL 和绑定

这样可能让未授权终端接入网络,也会破坏现场证据。先记录命中策略和实际终端信息,再按审批修改对应规则。

5. 只测试 IPv4

双栈终端可能出现 IPv4 正常、IPv6 异常。地址、网关、邻居和安全策略都要分别验证。

九、回退方法

排障前先保存故障端口和上联接口的原配置。修改后业务仍未恢复,或影响其他终端时,应按记录恢复原值。

例如端口原来属于 VLAN 20,本次临时改成 VLAN 10,回退时执行:

<HQ-Access-01> system-view
[HQ-Access-01] interface GigabitEthernet 1/0/1
[HQ-Access-01-GigabitEthernet1/0/1] port access vlan 20
[HQ-Access-01-GigabitEthernet1/0/1] return

如果在 Trunk 上新增了 VLAN 10,而现场确认不应放行,需要在接入交换机和上级交换机两端撤销:

<HQ-Access-01> system-view
[HQ-Access-01] interface Bridge-Aggregation1
[HQ-Access-01-Bridge-Aggregation1] undo port trunk permit vlan 10
[HQ-Access-01-Bridge-Aggregation1] return

<HQ-Core-01> system-view
[HQ-Core-01] interface Bridge-Aggregation1
[HQ-Core-01-Bridge-Aggregation1] undo port trunk permit vlan 10
[HQ-Core-01-Bridge-Aggregation1] return

回退后重新检查受影响 VLAN 和终端,不要只验证最初报障的一台电脑。

十、小结

这个案例中,同一台电脑和端口之前正常,所以我先检查物理连接、IP-MAC-端口绑定和 MAC 学习,再补查 Access VLAN、聚合与 Trunk、网关邻居。

单台终端故障多从电脑、网线、接入口和绑定入手;同一 VLAN 多台终端同时故障,多检查上联、Trunk 和网关。找到原因后只修改对应配置,最后同时验证 IPv4、IPv6 和实际业务。

本文整理的是一套标准检查流程,适合在端口不通时逐项缩小范围。真实网络通常会更复杂,还可能涉及无线接入、认证系统、防火墙、DHCP、环路保护和其他安全策略。现场排查时不能机械照抄顺序,要根据故障范围、最近的变更和设备日志调整检查重点。

十一、完整排查命令汇总

下面汇总本文的 Comware V7 排查命令。接口、VLAN、地址和 MAC 必须换成现场实际值。

# 一、检查物理端口。
<HQ-Access-01> display interface brief
<HQ-Access-01> display interface brief down
<HQ-Access-01> display interface GigabitEthernet 1/0/1
<HQ-Access-01> display current-configuration interface GigabitEthernet 1/0/1

# 二、检查 IPv4/IPv6 绑定和接口安全策略。
<HQ-Access-01> display ip source binding static interface GigabitEthernet 1/0/1
<HQ-Access-01> display ipv6 source binding static interface GigabitEthernet 1/0/1
<HQ-Access-01> display port-security interface GigabitEthernet 1/0/1
<HQ-Access-01> display packet-filter interface GigabitEthernet 1/0/1 inbound
<HQ-Access-01> display packet-filter interface GigabitEthernet 1/0/1 outbound

# 三、检查 MAC 学习。
<HQ-Access-01> display mac-address dynamic interface GigabitEthernet 1/0/1
<HQ-Access-01> display mac-address 00e0-fc12-3456 vlan 10
<HQ-Access-01> display mac-address vlan 10

# 四、必要时核对 Access VLAN。
<HQ-Access-01> display current-configuration interface GigabitEthernet 1/0/1
<HQ-Access-01> display vlan 10

# 五、检查聚合和 Trunk。
<HQ-Access-01> display link-aggregation summary
<HQ-Access-01> display link-aggregation verbose bridge-aggregation 1
<HQ-Access-01> display current-configuration interface Bridge-Aggregation1
<HQ-Access-01> display port trunk

# 六、在真正的办公网网关上检查三层表项。
<HQ-Core-01> display arp 192.168.10.11
<HQ-Core-01> display ipv6 neighbors 2001:db8:10::11
<HQ-Core-01> display mac-address 00e0-fc12-3456 vlan 10

# 七、光口故障时再检查模块。
<HQ-Access-01> display transceiver interface GigabitEthernet 1/0/49
<HQ-Access-01> display transceiver alarm interface GigabitEthernet 1/0/49
<HQ-Access-01> display transceiver diagnosis interface GigabitEthernet 1/0/49

参考资料