以为是联发科的锅,结果被Intel坑了:GL-MT3000 频繁断线排查纪实

起因

笔者去年年前购买了一款比较热门的便携软路由设备放在老家用
一年后的今年想把设备放在公司使用,于是便带到了公司做旁路由

发现问题

自从接入了这款路由器之后,远程使用公司的电脑便频繁发生掉线断开问题
起初并没有注意,以为是公司网络最近不好
但是
有天我在公司使用scp向另一台同局域网设备拷贝文件时
发现
网速像过山车一样,波动几次,最后会归零
中断然后重新拷贝
现象依旧

网络拓扑

核心交换机 -> 墙插 -> GL-MT3000(旁路由) -> 电脑

问题排查

排除网线质量

把邻桌的设备上的网线接入路由器
问题依旧

排查路由器问题

把网线直接接入电脑而不通过路由器
问题消失

刷固件

查看路由器内核日志,日志中一旦出现Link Down/Up,表现在数据传输上就是断流
初步怀疑是路由器固件问题,刷入openwrt 24、25
问题依旧
刷入原厂固件
问题依旧

强制降速

既然日志中显示是2.5G传输协议协商引起的
那么就通过ethtool -s eth0 speed 1000 duplex full autoneg off命令
强制让路由器使用千兆协议
问题消失
怀疑是2.5G相关硬件电气故障、虚焊

厂商介入

路由器送修检测
未复现故障寄回
联系技术支持、复现故障
技术抓取网口数据包,发现有数据重发异常

上游交换机

执行tcpdump -nn -v -i eth0 ether proto 0x88cc

root@GL-MT3000:~# tcpdump -nn -v -i eth0 ether proto 0x88cc
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
16:33:46.421115 LLDP, length 52
Chassis ID TLV (1), length 7
  Subtype MAC address (4): dc:ce:c1:c3:c4:2a
Port ID TLV (2), length 5
  Subtype Interface Name (5): gi30
Time to Live TLV (3), length 2: TTL 120s
Organization specific TLV (127), length 14: OUI IEEE 802.3 Private (0x00120f)
  unknown Subtype (5)
  0x0000:  0012 0f05 0011 0011 0011 0011 0011
System Capabilities TLV (7), length 4
  System  Capabilities [Bridge] (0x0004)
  Enabled Capabilities [Bridge] (0x0004)
Organization specific TLV (127), length 6: OUI Ethernet bridged (0x0080c2)
  Port VLAN Id Subtype (1)
    port vlan id (PVID): 1
End TLV (0), length 0

发现这MAC地址前缀DC:CE:C1应该是思科的设备
执行tcpdump -nn -v -i eth0 ether dst 01:00:0c:cc:cc:cc进一步确认

root@GL-MT3000:~# tcpdump -nn -v -i eth0 ether dst 01:00:0c:cc:cc:cc
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
16:36:35.777864 CDPv2, ttl: 180s, checksum: 0xd363 (unverified), length 202
Device-ID (0x01), value length: 12 bytes: 'dccec1c3c42a'
Address (0x02), value length: 69 bytes: IPv4 (3) 192.168.0.1 pt=0x02, pl=8, pb= aa aa 03 00 00 00 08 00, al=16, a= fd 7d 84 4d 3e 17 f3 ae de ce c1 ff fe c3 c4 2a pt=0x02, pl=8, pb= aa aa 03 00 00 00 08 00, al=16, a= fe 80 00 00 00 00 00 00 de ce c1 ff fe c3 c4 2a
Port-ID (0x03), value length: 4 bytes: 'gi30'
Capability (0x04), value length: 4 bytes: (0x00000028): L2 Switch, IGMP snooping
Version String (0x05), value length: 8 bytes: 
  1.3.0.62
Platform (0x06), value length: 33 bytes: 'Cisco SG200-50 (PID:SLM2048T)-VSD'
Native VLAN ID (0x0a), value length: 2 bytes: 1
Duplex (0x0b), value length: 1 byte: full
AVVID trust bitmap (0x12), value length: 1 byte: 0x00
AVVID untrusted ports CoS (0x13), value length: 1 byte: 0x00
System Name (0x14), value length: 3 bytes: 'SW1'
unknown field type (0x1a), value length: 12 bytes: 
  0x0000:  0000 263b 0000 0000 ffff ffff

是思科无疑了,具体型号就是Cisco SG200-50 (PID:SLM2048T)-VSD
虽然不是干网络的,但听过思科的大名,类似华为属于行业制定标准的巨无霸
虽然设备比较老,但它下游带有大量的设备,根本不可能是它的问题
问题又回到了路由器本身

排查是否是联发科2.5G方案

执行ls /lib/firmware/

root@GL-MT3000:~# ls /lib/firmware/
7981_WACPU_RAM_CODE_release.bin    WIFI_RAM_CODE_MT7981.bin           mt7981_patch_e1_hdr_testmode.bin
7981_WOCPU0_RAM_CODE_release.bin   WIFI_RAM_CODE_MT7981_TESTMODE.bin  regulatory.db
MT7981_ePAeLNA_EEPROM.bin          e2p
MT7981_iPAiLNA_EEPROM.bin          mt7981_patch_e1_hdr.bin

没发现联发科常用的闭源驱动微码文件mtk_phy_2500.bin
难道不是联发科的锅?或者二进制是以其它形式导入进去的?

查看厂商ID

执行cat /sys/bus/mdio_bus/devices/*/phy_id

root@GL-MT3000:~# cat /sys/bus/mdio_bus/devices/*/phy_id
0x03a29461
0x67c9de10

经过查询
0x03a29461是联发科MT7981 处理器内部原生自带的千兆 PHY
0x67c9de10是MaxLinear (迈凌科技) 的 GPY211 2.5G PHY 芯片

真相大白

GPY211是出自英特尔之手,被迈凌科技收购,和Intel i225/i226是同父异母的亲兄弟!!!

都是出了名的断流王!!!

影响范围详见

《英特尔2.5G网络芯片(GPY211与i225/i226)断流故障的下游厂商及设备概览》

posted on 2026-03-22 19:16  书生执笔画浮沉  阅读(107)  评论(0)    收藏  举报

导航