题 网络硬件应该设置为“自动协商”速度还是固定速度?


我们 最近有一点问题 在网络中,多个服务器会以相当痛苦的解决方式间歇地丢失网络连接(需要硬重启)。在不同的服务器上,这已经持续了大约两个星期,似乎是随机的。没有特别的模式,我们可以辨别它。

在深入研究之后,我们发现交换机报告的问题端口为100 Mbps:

这听起来与Joel Spolsky的文章中发生的情况非常相似 五个为什么

迈克尔花了一些时间做验尸,发现问题是交换机上的一个简单的配置问题。交换机可以使用几种可能的速度进行通信(10,100或1000兆位/秒)。您可以手动设置速度,也可以让交换机自动协商双方可以使用的最高速度。 失败的开关已设置为自动协商。这通常有效,但并非总是如此,并且在1月10日的早晨,它没有。

我们现在有 禁用自动协商 在我们的网络硬件上,并将其设置为1000 Mbps(千兆位)的固定速率。

我的问题是那些拥有更多服务器硬件网络专业知识

  1. 现代网络硬件的自动协商问题有多常见?
  2. 在设置网络时禁用自动协商和设置固定速度是否被视为良好的标准网络实践?

87
2018-01-25 18:57




您是否在服务器上禁用了自动协商并将其修复为1000 /满? - James
这只是我,但如果我遇到你的问题,我会想知道为什么交换机和服务器没有协商最高优先级的速度(1000 /满)。这告诉我某些东西被打破了,并且通过强制链接达到某个速度,你只是掩盖了一个问题。 - Doug Luxem
有一些平台(特别是Solaris 9)在已知场景中存在自动协商问题 - 我只使用autoneg与过去十年中制作的任何东西,尽管 - warren
几乎让我粉红色的东西: serverfault.com/questions/328105/ethernet-interface-errors - nixnotwin


答案:


  1. 我还没有看到网络速度自动协商的问题,这不是由以下因素引起的:(a)链路一端的手动不匹配和另一端的auto,或者(b)链路的故障组件(电缆,端口等)。

  2. 这取决于管理员,但我的经验告诉我,如果您手动指定链接速度和双工设置,则必然会遇到速度不匹配。为什么?因为几乎不可能记录交换机和服务器之间的各种连接,然后在进行更改时遵循该文档。我看到的大多数故障都是因为1(a)而你开始手动设置速度/双工设置时只会遇到这种情况。

正如提到的那样 思科文档

如果禁用自动协商,则会隐藏链接丢弃和其他物理层问题。仅禁用自动协商到终端设备,例如不支持千兆位自动协商的旧千兆网卡。除非绝对需要,否则不要禁用交换机之间的自动协商,因为物理层问题可能无法检测到并导致生成树循环。

除非您准备为需要验证速度/双工(并且不要忘记流量控制)的网络更改设置变更管理系统,或者愿意处理在所有网络设备上手动指定这些设置而导致的偶然不匹配,然后坚持使用auto / auto的默认配置。

将来,请考虑使用监控交换机端口上的错误 MRTG 所以你可以在遇到问题之前发现这些问题。

编辑: 我确实看到很多人引用旧设备上的谈判失败。是的,这是很久以前制定标准的问题,而不是所有设备都遵循它们。您的NIC和交换机是否不到10年?如果是这样,那么这将不是问题。


101
2018-01-25 19:15



Cacti本质上是MRTG,没有配置混乱所以它应该是好的。只需开始监控RX丢弃和错误,TX冲突等。如果您有协商问题,这些计数器中的一个或多个将为“高”。相对于端口上的流量高。 - Doug Luxem
@EK - 需要在交换机和设备上完成配置。更换设备(或者可能只是升级驱动程序/固件),移动端口或更换交换机都是对不匹配设置的担忧。我不确定你为什么会看到这么多错误 - 我们在这里运行HP,Cisco,Extreme和Juniper,我从未看到自动协商问题。我看到的唯一问题是手动设置链接的一端。正如思科提到的那样,也许你有一些潜在的L1问题? - Doug Luxem
我使用HP,Cisco和Dell交换机的经验与使用DLux相匹配。我猜想,很多其他人都有同样的感受。管理员虔诚地设置端口速度/双工的网络总是存在更多问题,而不是与所有设置为自动协商的网络不匹配。 - Evan Anderson
@Whisk WAN链接是一个不同的故事。当您从某个提供商处切换以太网链接时,他们经常被迫手动或使用不支持自动协商的收发器。那几乎必须根据具体情况进行处理。 - Doug Luxem
我认为投票有点误导,因为有些人会拥有来自1或2家供应商的奢侈品(或者只是没有多少经验)并且永远不会看到问题,而像我这样的其他人会从许多不同供应商那里继承设备在某些组合中行为不端。 - JamesRyan


  1. 很常见,多年来,我遇到了各种各样的硬件问题。

  2. 在我看来,如果设置是静态的(即服务器机架),并且您认为不会有更改,那么手动设置速度和双工是个好主意。只要有详细记录,以便可以避免未来的问题。

编辑:

只是为了澄清一下,我并不是在提倡在整个网络上使用手动速度,我会说95%的时间是自动/自动的。我只是说我在双工/速度方面遇到了问题,我的网络中有一小部分(即我们的服务器机架之一)主要是手动设置。我们运行一个非常严格控制的局域网,未使用的端口正在关闭,大多数端口都采用MAC-Filters,因此跟踪速度并不是很困难。


23
2018-01-25 19:03



我发现了同样的问题,但也许只有1/100的服务器会出现某种自动协商问题。它通常在较小的网络上不明显,但足以在较大的网络上烦人。 - Dave Drager
+1 - 多年来我也看到了自动协商问题弹出窗口。让团队标准化禁用所有交换机的自动协商为我们消除了这个问题。 - Joe Doyle
没有什么可以补充的,除了我可以回应我已经看到了很多问题。如果其他人有关于为什么自动协商失败的信息(相对)经常失败,我很乐意听到。 - Schof
@dave所以自动协商问题发生的可能性随着网络的规模和复杂性而增加 - 这是有道理的。此外,我们确实在过去一年中将我们的小型服务器机架网络扩展了3倍...... - Jeff Atwood
@Jeff Atwood:只有“大小”迁移与更好地添加具有破坏的自动协商行为的设备的可能性相关时,问题的可能性才会增加。这不像是帧的泛滥或广播流量。自动协商严格地在每个客户端设备和每个交换机端口之间进行。 - Evan Anderson


我相信,如果自动协商每天或一个月工作一小时,然后由于某种原因“发生了某些事情”,将链接设置为固定速度“修复它”,则存在一个问题,即没有解决而是绕过它。 我想我看到将链接设置为固定的临时解决方案,直到真正的问题得到纠正。


15
2018-01-25 19:47



完全可能;我们已经做了一些其他的故障排除来排除问题,但我担心Joel的团队遇到了与“Five Whys”中记录的问题相同的问题。它似乎相当普遍.. - Jeff Atwood
我同意自动协商的问题“经常”发生,但在大多数情况下,它已经“工作”了。这就是促使我想要进一步调查而不是使用固定链接作为“解决方案”的意思...如果你的车“运行正常”开始运行粗糙,除非它预热10分钟,你不会说你自己“嘿,它变老了,现在它需要热身10分钟”你会把它带进去看看你最早的机会,因为“出了问题”,这是以前没有的:) - dimitri.p


我负责的网络(以及其他一些人)由大约40台服务器,1000多个工作站(遍布相当大的校园)组成,大约1000个WAP也分布在不同类型和年龄的大区域内网络设备

正如dimitri.p所说,当某些东西突然无法停止自动协商时,它通常表明另一个问题。手动设置端口类似于在一个被刺伤肠道的人身上放置一个绑带 - 它可能会阻止流血,但肯定会在下面造成伤害。

我通常的清单:

  • 机器上有什么变化吗?驱动程序?操作系统级或BIOS级设置?也许在操作系统中禁用了autoneg?
  • 你换掉了跳线吗? 验证 电缆运行(如果它是一个比一个机架运行的登录器?)
  • 你测试过交换机端口是坏还是失败?
  • NIC会变坏吗?

我们作为一项规则, 决不 在服务器(或数据中心的任何其他设备)上禁用autoneg,除非在所有其他可能原因已被消除的情况下,我们移动了交换机端口,更换了电缆,测试了NIC等,并且没有其他选择。在这种情况下,它被记录为死亡。这种情况很少发生,通常使用我们无法访问的设备来检查BIOS和操作系统设置。

另一方面,工作站和AP是一个不同的故事。失败的autoneg是电缆运行不良的典型标志,很多时候我们必须手动设置速度和双工,直到夏季运行 - 新电缆在墙上的季节到来。


14
2018-01-25 20:08



我们在“问题”服务器上反复交换电缆和端口,然后我们恢复使用“盒中”库存(Server 2008 R2)网络驱动程序。它也发生在具有相同配置的多个服务器上。我很难调和“从不这样做!”并且“总是这样做!”在同一个问题的答案中。 - Jeff Atwood
@Jeff:熟悉您和您的团队最初发布的问题(serverfault.com/questions/104791我有兴趣听到问题是在问题服务器计算机中的交换机端口或NIC端口之后。无论如何,NIC /芯片组的品牌/型号是什么? - Evan Anderson
@Jeff - 有些答案不是二元的:)这是你必须这样做,直到你有机会弄清楚问题是什么。 - dimitri.p
@evan发生在每个Web层服务器上,而不是任何交换机端口或以太网卡。如果在此更改后仍然存在问题,那么这是一个软件问题。服务器是Lenovo RS110 x6和Lenovo RD120 x2。 - Jeff Atwood
只是为了确保最终的答案在这里,某处:Broadcom的驱动程序问题。我们无法使用任何已知的驱动程序集解决它。唯一的“修复”是切换到Intel NIC。 - Jeff Atwood


故障排除步骤(假设您在每个故障后停止并等待问题重新出现):

  1. 检查交换机上的日志,看它是否告诉您它为何使用100M。
  2. 如果你还在运行它,请关闭Joel一直推动的极其邪恶的“Windows负载平衡”废话 - 它的工作方式是打破交换机的缓存,迫使它对每个数据包进行软件处理。您的交换机设计用于在硬件中转发数据包,并且只需要CPU来确定未知流量必须采用的物理路径(in - > asic - > out),并对硬件进行编程(读取:a计算器有比你的交换机更好的CPU,不做愚蠢的事情,使你的交换机的CPU工作更努力)。 Windows负载平衡的工作原理是让您的交换机做出决定并为每个数据包重新安装硬件缓存。这可能无法解决这个特殊的问题,但它让我从播客中感到烦恼......对不起。
  3. 确保配置在两侧都匹配 - 听起来就像你已经这样做了
  4. Google会在你的交换机上发现自动内存错误 - 除非你自己构建它,否则你不是唯一一个试图在你正在使用的内容上运行autoneg的人
  5. 更换额定电流为Cat5e或更高的电缆 - 理想情况下,您可以使用已安装的电缆,例如工作站插入的电缆。不要试图使用Cat5,或某些人制造的废话,使用一个具有实际模制端的包装。
  6. 移动端口 - 将服务器放在同一台交换机上的其他端口上
  7. 更换NIC - 使用在不同时间订购的其他批次

此时,您已经消除了配置,插入的物理端口,它们之间的布线。如果它是 仍然 发生了,其他一些原因可能是:

  1. 电缆布线 - 注意交流电源线的电磁干扰,将它们沿机架的不同侧面布线。
  2. 冷却 - 确保你的环境温度不是90度,而你的网卡并没有落入某种“亲爱的上帝让我只是转发这一包请”模式。我听说但是没有看到Cisco路由器在它们过热时停止通过CPU进行快速切换和转发数据包。
  3. 用不吸吮的东西替换开关 - 检查主机每秒通话的带宽,然后查看交换机的额定背板容量。例如,7个主机超出潜力48所有传输1.0G足以阻止Cisco 3750。也是 非常 关注廉价的网络供应商:D-Link,Linksys,戴尔,英特尔和惠普。没有人认真对待网络,而不是因为“没有人因为使用思科而被解雇”,而是因为“人们记得英特尔交换机有20/48端口故障超过2年”或者“我过去常常使用ProCurve和关于思科是多么邪恶的轨道,直到我实际使用思科,此时我停止购买任何东西“。思科被认为是 中档 网络供应商,那么这对你们有什么影响呢 下面 思科...? :-)

背景/为什么我的答案是最棒的:我在金融行业担任网络/系统工程师,这是我对小型全球网络(15个分支机构,8个数据中心)的经验:

我们所有的LAN端口都是autoneg,因为我们控制两端的设备,并且可以对双方进行某种访问 - 这可能就像打电话给某人并让他们检查设置一样简单。在三年内,我只有一个内部端口由于autoneg故障而失败,这是因为电缆坏了 - 更换电缆后它就消失了。

我们遇到了更多的问题,前辈们已经在他们的NIC上硬编码100 /满,并没有记录这个事实。在下一个maint窗口将所有内容重置为auto / auto,并且之后没有任何问题。

在几个地方,我们从广域网的运营商处获得了铜线切换?你应该总是期望铜WAN /互联网连接一直很糟糕 - 部分是因为你不知道另一方面是什么。一些古老的Extreme交换机碰巧有autoneg的有缺陷的固件,但做MPLS标记?大约5美元的媒体转换器,因为您的ISP的20万美元Ciena边缘设备太棒了,不能通过双绞线提供以太网?提前确定将如何处理并坚持下去,然后期望运营商内部的一些twit在星期六晚上10点更改它,因为商定的配置从未记录,他们有一些政策可以遵循。

但是,说真的,从你的ISP获得光纤切换。


14
2018-01-26 12:37



刚刚读完这篇文章 - 很好的答案。 - Helvick
很好的答案。 - Rushino
只是为了最终的答案就在这里,某个地方,这是不好的Broadcom司机。我们找不到任何有用的套装。切换到Intel NIC会将其修复100%。 blog.serverfault.com/2011/03/04/broadcom-die-mutha - Jeff Atwood
@JeffAtwood是同样的问题吗?我认为这个最终被追踪到开关上的省电模式...... - James Cape


这是网络神话。我们的网络人员发誓这是胡说八道,因为早在1998年,Bay交换机就不会与思科或其他东西进行谈判。因此,我们没有使用地球上99.999%的设备的默认设置,而是在网卡驱动程序更新将设置重置为自动协商且发生任何事情的时候,我们进行了这种荒谬的配置管理练习和一个很好的替罪羊。

它变得更有趣,因为我们的许多服务器都使用可疑的功能,如网卡绑定,这可以防止您在交换机发生故障的情况下丢失网络访问权限,同时让您更容易遇到软件故障。 (司机总是很糟糕)

为了保护网络人员,许多服务器都运行Windows默认的NIC驱动程序,这通常很糟糕。如果您在自动协商方面遇到问题,并且您的设备未与克林顿管理部门约会,请更新这些NIC驱动程序。


10
2018-01-26 04:16



这最终是糟糕的驱动程序,但我们能找到的唯一解决方法是切换到Intel NIC。我们现在有一个针对Broadcom NIC的终身仇杀。 - Jeff Atwood


你应该自动协商。如果您的交换机无法自动协商,请购买更好的交换机。

千兆是 应该 自动协商,包括自动交叉(MDI-X)检测。

100baseT是 保证 如果一端设置为auto而另一端设置为手动,则失败,并且符合规范。如果强制一端为100 /满,则为另一端  自动协商到100 /一半,给你双工不匹配。


10
2018-01-26 10:12





通常我设置服务器是固定的,因为我看到网络设备协商到10 /半而不是1000 /满。

此外,一些CoLos将其开关设置为不进行协商,而是仅设置为1000 /满的链接。


9
2018-01-25 19:06





在未经测试的初始配置中禁用自动协商类似于巫术编程 - 您正在无缘无故地改变某些东西。如果在测试之后,您发现双工或速度不匹配或端口上存在过多错误,则进行其他故障排除,并在必要时最终修复配置。

升级驱动程序或更换硬件时,无法保证您的设置将保留在服务器端。

设置链接的两边进行协商,或修复双方。当您在某些设备上修复速度和双工设置时,他们不再向同行宣布其功能。我不知道以太网标准在一方宣布功能而另一方没有做什么时会说什么,这可能意味着许多实施者也不知道。有些人会选择最低的公分母,这是10分之一,其他人会认为一切都还可以,并选择最快的速度。

有些现代硬件不支持千兆铜质以太网上的自动协商,例如(至少某些)具有铜质SFP的思科交换机。


7
2018-01-25 20:43



6748-SFP模块支持autoneg就好了,他们只是不允许你协商除1000 /满之外的任何东西。 :-) - James Cape


很多年前,我花了一些时间为3com工作,为几乎所有的网络设备提供技术支持。令人惊讶的是,这个问题经常发生,并且手动设置所有内容几乎都是标准程序。


6
2018-01-25 19:12



这个答案中的操作声明是“许多年前”。 10/100自动协商与今天的千兆自动协商不同。 - Evan Anderson
你是绝对正确的!这确实是“许多年前”,现在回想起来,我不记得这种情况发生在任何地方,就像任何千兆设备一样,这在当时是非常新的。