三层交换机在进行路由转发时,没有启用硬件加速功能,导致CPU负载飙升,网络测速上不去。一个值得怀疑的点是,设备长时间运行可能引发了内部异常。
本期分享的案例,正是关于有线网络的一个典型问题。

背景介绍
这是一位个人用户,他购买了一台某品牌的三层交换机来搭建家庭网络。网络环境比较简单:本地有几台NAS设备,主要用于存放高清视频、游戏等大文件,供局域网内高速访问。
拓扑结构大致如下:路由器——千兆交换机——PC和NAS等设备。
原本使用一切正常,PC从NAS设备上网和拷贝文件都非常快,速度能稳定达到理论值1Gbps。但最近用户来了兴致,想对网络进行更细致的规划,打算将NAS、PC等设备划分到不同的网段,于是就调整了配置,新的拓扑变为:路由器(VLAN1)——千兆交换机(VLAN10)——PC和NAS。
其中,VLAN1作为管理网段,包含了路由器和交换机的管理地址;VLAN101作为终端网段,包含了PC和NAS等设备。
结果配置完成后发现,上网速度变得极慢:

实际测速结果仅在10Mbps左右。也就是说,原来所有设备都在同一个VLAN内时工作正常,现在将路由器和终端划分到不同VLAN,由交换机作为核心进行跨网段转发,网络就卡顿了。
排查思路
这类问题的排查方向很清晰:拓扑改变后,只有交换机成为了核心转发节点。因此,VLAN101到VLAN1之间的数据传输,问题很可能就出在交换机这个核心设备上。所以,我们的检查重点应该放在交换机的运行状态上。
排查分析
(1) 第一步:确认交换机端口速率和配置
测速只有十兆,我们首先得排除端口速率或网线质量这类基础问题。现场检查后确认,端口协商速率均处于千兆状态,网线质量也过关。随后我们又检查了相关配置,如下:
interface gigabitethernet0/11
exit
interface gigabitethernet0/12
switchport access vlan 101
exit
interface gigabitethernet0/13
switchport access vlan 101
exit
interface vlan 1
ip address 192.168.101.1 255.255.255.0
ip nat inside
exit
配置看起来也没什么异常点。下一步,检查交换机的CPU和内存使用情况。
(2) 第二步:测速时观察设备的CPU和内存表现
在测速时我们发现,交换机在初始状态下CPU占用率约为15%左右,而一开始测速,CPU占用率就飙升到了50%:


这看起来像是交换机在进行三层转发时,数据包没有走硬件加速通道,而是走了CPU进行“软转发”,从而导致了异常。后来咨询了设备厂商的技术支持,确认这确实是设备的一个已知问题。
(3) 第三步:进一步查看设备运行状态
后来我们进一步查看发现,用户的这台设备居然已经持续运行了199天。

设备跑这么久,或多或少都会积累一些问题吧?于是尝试重启了设备。果然,重启后网络立刻恢复了正常。
原理及解决方案
问题原因:三层交换机在做跨VLAN路由转发时,未能启用硬件加速,所有流量都由CPU进行转发处理,导致CPU负载过高,进而使网络测速不达标。一个合理的怀疑是设备长时间运行导致了内部状态异常。
解决方案:重启交换机设备,即可恢复正常。
