网卡EEE功能影响端口协商问题的分析
一、 组网:
某高校为构建教学网络,客户端PC使用HP Pro 3380 MT,接入交换机使用H3C S1224v2千兆无管理交换机,如图1所示。

图1 组网示意图
二、 问题描述:
网络中的所有客户端均是千兆网卡,网卡型号为Realtek PCIe GBE Family Controller(Integrated Realtek RTL8171E Gigabit Ethernet Controller),需要使用集成在BIOS里面的一款还原软件,还原工作的基础需要从网卡启动,所以该网络中的所有客户端PC均设置成从网卡启动,但是每次开机启动会发现接口只能协商成10M,无法达到正常的1000M速率,从而影响到整个网络的传输速度。
客户端PC如果不设置成从网卡启动,而是选择正常启动,则能协商成1000M速率。
三、 过程分析:
由于实验室没有和现场同样型号的PC,所以只能使用其他型号的PC,按照现场的操作步骤无法复现问题,怀疑该问题很可能与现场使用的PC有关。
客户反馈之前尝试过将主板、BIOS版本、还原软件版本等等更换或升级,但是无法解决问题。
通过仔细检查客户反馈的网卡驱动信息,对比HP官网上发布的网卡驱动以及Realtek的最新驱动,发现现场使用的网卡驱动版本较低,于是尝试更新网卡驱动版本,结果仍旧无法解决。
此时,将怀疑点落在了网卡的属性设置上。通过修改Windows里的网卡属性设置,在网卡属性“高级”选项里将“网络唤醒和关机连接速度”设置成<不降速>,问题依旧。
尝试将“EEE”设置成<关闭>,问题解决。
至此,我们终于找到了导致该问题的关键点,也就是客户端PC网卡的EEE功能。
EEE功能的全称是Energy Efficient Ethernet,即高效节能以太网,是由IEEE 802.3az定义的标准节能规范。当设备使能 EEE节能功能后,如果在连续一段时间内接口状态始终为UP且没有收发任何报文,则接口自动进入低功耗模式;当接口需要收发报文时,接口又自动恢复到正常工作模式,从而实现网络在芯片级上的节能效果。
对于EEE功能,两端设备必须同时支持,如果有一方不支持,EEE功能也就不可用。现场PC的网卡支持EEE功能且默认情况下开启,而S1224v2交换机的EEE功能是没有启用的,所以该功能实际是不生效的。
接口在自协商过程中两端设备的EEE能力参数会参与交互,所以会从一定程度上影响接口的协商能力。此外,两端设备使用的芯片及相关驱动均不同,所以影响了最终的协商状态。
四、 解决方法:
关闭客户端PC网卡的EEE功能。
Windows操作系统下—设备管理器—网络适配器—属性—高级—EEE功能关闭,如图2所示。

图2 关闭网卡EEE功能