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

Jef*_*ood 90 networking ethernet

我们最近在网络方面遇到了一个小问题,其中多个服务器会以一种相当痛苦的方式(需要硬重启)间歇性地失去网络连接。这已经持续了大约两周,似乎是随机的,在不同的服务器上。没有我们可以辨别的特定模式。

在深入研究之后,我们看到交换机报告了问题端口的 100 Mbps:

这听起来非常像乔尔·斯波尔斯基 (Joel Spolsky) 的文章“五个为什么”中发生的事情

Michael 花了一些时间做事后分析,发现问题是交换机上的一个简单的配置问题。交换机可以使用多种可能的速度进行通信(10、100 或 1000 兆位/秒)。您可以手动设置速度,也可以让交换机自动协商双方可以使用的最高速度。发生故障的交换机已设置为自动协商。这通常有效,但并非总是如此,并且在 1 月 10 日早上,它没有。

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

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

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

Dou*_*xem 101

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

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

正如Cisco 文档中所述

如果禁用自动协商,则会隐藏链路中断和其他物理层问题。仅禁用对终端设备的自动协商,例如不支持千兆自动协商的旧千兆 NIC。除非绝对需要,否则不要禁用交换机之间的自动协商,因为物理层问题可能未被发现并导致生成树循环。

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

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

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

  • 我使用 HP、Cisco 和 Dell 交换机的经验与 DLux 相匹配。我猜通过赞成票,很多其他人也有同样的感觉。管理员严格设置端口速度/双工的网络总是比一切都设置为自动协商的网络有更多的不匹配问题。 (7认同)
  • Cacti 本质上是 MRTG,没有配置混乱,所以它应该是好的。只需开始监控 RX 掉线和错误、TX 冲突等。如果您遇到协商问题,这些计数器中的一个或多个将是“高”。高是相对于端口上的流量。 (6认同)
  • @Whisk WAN 链接是另一回事。当您从某些提供商处移交以太网链接时,他们经常被迫手动或使用不支持自动协商的收发器。这些几乎必须根据具体情况进行处理。 (3认同)
  • 我认为投票有点误导,因为有些人会从 1 或 2 家供应商那里获得奢侈的硬件(或者只是没有太多经验)却从未发现问题,而其他像我这样的人则会从许多不同的供应商那里继承设备在某些组合中行为不当。 (3认同)
  • @EK - 需要在交换机和设备上完成配置。更换设备(或者可能只是升级驱动程序/固件)、移动端口或更换交换机都是不匹配设置的问题。我不知道为什么你会看到这么多错误——我们在这里运行 HP、Cisco、Extreme 和 Juniper,我从来没有看到自动协商问题。我看到的唯一问题是手动设置链接的一端。正如 Cisco 文档所提到的,也许您有一些潜在的 L1 问题? (2认同)

ein*_*ien 23

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

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

编辑:

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

  • 我发现了同样的问题,但可能只有 1/100 的服务器会出现某种自动协商问题。它在较小的网络上通常不明显,但在较大的网络上足以令人讨厌。 (5认同)
  • @Jeff Atwood:只有在“大小”迁移与添加具有损坏自动协商行为的设备的可能性更大有关时,问题的可能性才会增加。这不像帧泛滥或广播流量。自动协商严格在每个客户端设备和每个交换机端口之间进行。 (4认同)

dim*_*i.p 15

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

  • 我同意自动协商的问题“经常”发生,但在大多数情况下,它已经工作了“一段时间”。这就是促使我想要进一步调查而不是使用固定链接作为“解决方案”的原因。你自己“嘿,它变老了,现在它需要预热 10 分钟”你会认为它是你最早的机会,因为“出了点问题”,这不是以前的 :) (7认同)

Jam*_*ape 15

因此故障排除步骤(假设您在每个步骤之后停止并等待问题再次出现):

  1. 检查交换机上的日志,看它是否告诉您为什么使用 100M。
  2. 如果您仍在运行它,请关闭 Joel 一直在推动的极其邪恶的“Windows 负载平衡”废话——它的工作方式是破坏交换机的缓存,迫使它对每个数据包进行软件处理。您的交换机设计用于在硬件中转发数据包,并且只有 CPU 需要确定未知流量流必须采用的物理路径(输入 -> ASIC -> 输出),并对硬件进行编程以执行此操作(阅读:计算器的 CPU 比你的交换机好,不要做一些愚蠢的事情,让你的交换机的 CPU 更难工作)。Windows 负载平衡的工作原理是让您的交换机做出决定并为每个数据包重新安装硬件缓存。这可能无法解决这个特定问题,但它让我从播客中感到烦恼......抱歉。
  3. 确保双方的配置匹配——听起来你已经做到了
  4. 谷歌搜索你的交换机上的 autoneg 错误——除非你自己构建它,你不是唯一一个试图在你使用的任何东西上运行 autoneg 的人
  5. 更换电缆,使用额定 Cat5e 或更高级别的电缆 - 理想情况下,您知道可以使用的电缆,就像您的工作站插入的电缆一样。不要尝试使用 Cat5 或某人制造的一些废话,使用具有实际模制末端的包装。
  6. 移动端口——将服务器放在同一交换机的不同端口上
  7. 更换网卡——使用在不同时间订购的不同批次

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

  1. 电缆布线——小心来自交流电源线的电磁干扰,将它们沿着机架的不同侧布线。
  2. 冷却——确保您的环境温度不是 90 度,并且您的 NIC 卡没有掉入某种“亲爱的上帝,请让我转发这个数据包”模式。例如,我听说但没有看到 Cisco 路由器在过热时停止进行快速交换并通过 CPU 转发数据包。
  3. 用不坏的东西替换交换机——检查你的主机每秒总共通话多少带宽,然后查看你的交换机的额定背板容量。例如,潜在的 48 台主机中的 7 台全部传输 1.0G 数据足以阻止 Cisco 3750。还要非常小心那些廉价的网络供应商:D-Link、Linksys、戴尔、英特尔和惠普。没有人认真对待网络使用这些家伙,不是因为“没有人因为使用 Cisco 而被解雇”,而是因为“人们记得具有 20/48 个端口的英特尔交换机在 2 年内出现故障”或“我曾经专门使用 ProCurve 和抱怨思科有多邪恶,直到我真正使用了思科,在这一点上我不再购买任何更少的东西”。思科被认为是中档网络供应商,那么这对思科下面的人有什么启示...?:-)

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

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

我们遇到了更多的问题,前辈们在他们的 NIC 上硬编码 100/full,并且没有记录这个事实。在下一个维护窗口将所有内容重置为自动/自动,从那时起就没有任何问题。

在我们从运营商处为我们的 WAN 进行铜线切换的几个地方?您几乎应该期望铜缆 WAN/Internet 连接一直很糟糕——部分原因是您不知道另一端是什么。一些古老的 Extreme 交换机碰巧有用于 autoneg 的错误固件,但有 MPLS 标记吗?一些 5 美元的媒体转换器,因为您的 ISP 价值 20 万美元的 Ciena 边缘设备太棒了,无法通过双绞线提供以太网?提前决定将如何处理并坚持下去,然后期待运营商内部的一些人在周六晚上 10 点更改它,因为商定的配置从未记录在案,而且他们有一些政策要遵循。

不过,说真的,请从您的 ISP 获得光纤切换。

  • 刚开始阅读这个 - 很好的答案。 (2认同)
  • 只是为了让最终答案在这里,某个地方,它是糟糕的 Broadcom 驱动程序。我们找不到任何有效的集合。切换到英特尔 NIC 修复了它 100%。http://blog.serverfault.com/2011/03/04/broadcom-die-mutha/ (2认同)

Jas*_*man 14

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

正如 dimitri.p 所说,当某些事情突然无法停止自动协商时,通常表明存在另一个问题。手动设置端口类似于给被刺伤肠道的人贴上创可贴——它可能会止血,但下面肯定会有损伤。

我通常的清单:

  • 机器上有什么变化吗?司机?操作系统或 BIOS 级设置?也许 autoneg 在操作系统中被禁用了?
  • 您是否更换了跳线,并验证了电缆运行(如果它是一个 logner 运行而不是一个机架?)
  • 您是否测试过交换机端口是否损坏或出现故障?
  • 网卡会坏吗?

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

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


duf*_*703 10

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

它变得更加有趣,因为我们的许多服务器都使用了 NIC 组等可疑功能,这可以防止您在不太可能发生的交换机故障事件中失去网络访问权限,同时让您面临更有可能发生的软件故障。(司机总是很烂)

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


Aln*_*tak 10

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

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

100BaseT的是保证,如果一端设置为auto,另一组为手动失败,这是每个规格。如果您强制一端为 100/full,则另一端自动协商为 100/half,从而导致双工不匹配。


mrd*_*nny 9

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

还有一些 CoLo 将他们的开关设置为不协商,而是仅以 1000/full 进行链接。


小智 7

在未经测试的初始配置中禁用自动协商类似于巫毒编程——您在没有充分理由的情况下更改某些内容。如果在测试后发现双工或速度不匹配,或者端口上存在过多错误,则进行其他故障排除并最终在必要时修复配置。

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

设置链接双方协商,或修复双方。当您修复某些设备上的速度和双工设置时,它们不再向对等设备宣布其功能。我不知道以太网标准对当一方宣布能力而另一方不宣布时该怎么做的规定,这可能意味着很多实施者也不知道。有些人会选择最小的公分母,即 10 的一半,而另一些人会假设一切正常并尽可能选择最快的速度。

有一些现代硬件不支持千兆铜缆以太网上的自动协商,例如(至少一些)带有铜缆 SFP 的 Cisco 交换机。


小智 6

许多年前,我花了一些时间为 3com 工作,为他们几乎所有的网络设备提供技术支持。令人惊讶的是,这个问题出现的频率很高,手动设置所有内容几乎是标准程序。

  • 这个答案中的操作语句是“很多年前”。10/100 自动协商与今天的千兆自动协商不同。 (4认同)