AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 106160
Accepted
Jeff Atwood
Jeff Atwood
Asked: 2010-01-26 10:57:05 +0800 CST2010-01-26 10:57:05 +0800 CST 2010-01-26 10:57:05 +0800 CST

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

  • 772

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

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

这听起来非常像 Joel Spolsky 文章五个为什么中发生的事情

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

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

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

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

17 个回答

  • Voted
  1. Best Answer
    Doug Luxem
    2010-01-26T11:15:06+08:002010-01-26T11:15:06+08:00
    1. 我还没有看到网络速度的自动协商问题不是由(a)链接一端的手动与另一端的自动不匹配或(b)链接的失败组件引起的(电缆、端口等)。

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

    正如Cisco 文档中提到的:

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

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

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

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

    • 101
  2. einstiien
    2010-01-26T11:03:42+08:002010-01-26T11:03:42+08:00
    1. 很常见,多年来我在各种类型的硬件上遇到了很多问题。

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

    编辑:

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

    • 23
  3. James Cape
    2010-01-27T04:37:16+08:002010-01-27T04:37:16+08:00

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

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

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

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

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

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

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

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

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

    • 15
  4. dimitri.p
    2010-01-26T11:47:45+08:002010-01-26T11:47:45+08:00

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

    • 15
  5. Jason Antman
    2010-01-26T12:08:26+08:002010-01-26T12:08:26+08:00

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

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

    我通常的清单:

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

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

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

    • 14
  6. Alnitak
    2010-01-27T02:12:21+08:002010-01-27T02:12:21+08:00

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

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

    如果一端设置为自动而另一端设置为手动,则保证100baseT 会失败,这符合规范。如果您将一端强制为 100/full,那么另一端将自动协商为 100/half,从而为您提供双工不匹配。

    • 10
  7. duffbeer703
    2010-01-26T20:16:49+08:002010-01-26T20:16:49+08:00

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

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

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

    • 10
  8. mrdenny
    2010-01-26T11:06:31+08:002010-01-26T11:06:31+08:00

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

    还有一些 CoLos 将他们的开关设置为不协商,而仅以 1000/full 建立链接。

    • 9
  9. jaredg
    2010-01-26T12:43:50+08:002010-01-26T12:43:50+08:00

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

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

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

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

    • 7
  10. user32856
    2010-01-26T11:12:13+08:002010-01-26T11:12:13+08:00

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

    • 6

相关问题

  • 10 Gb 网络:在光纤和双绞线之间做出决定

  • 如何在 Windows Server PPTP VPN 中自动为客户端分配路由?

  • 为什么我的电脑休眠时 VPN 连接会中断?[关闭]

  • 有什么软件可以模拟局域网?

  • 带宽利用工具?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve