是否应将网络硬件设置为“自动”速度或固定速度?


90

最近,我们网络方面遇到了一个小问题,即多个服务器将以相当痛苦的解决方式间歇性地断开网络连接(要求硬重启)。这在不同的服务器上已经进行了大约两个星期,似乎是随机的。我们没有可辨别的特殊模式。

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

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

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

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

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

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

您是否也禁用了服务器上的自动协商并将其固定为1000 /完整?
詹姆斯

22
这只是我,但是如果遇到您的问题,我会想知道为什么交换机和服务器没有协商最高优先级速度(1000 /全速)。这就告诉我有些问题了,通过强制链接达到一定的速度,您就掩盖了问题。
Doug Luxem 2010年

在已知的情况下,有些平台(尤其是Solaris 9)存在自动协商问题-不过,我只将autoneg与过去十年中制造的任何东西一起使用
沃伦

几乎使我
迷失的

Answers:


101
  1. 我尚未看到网络速度的自动协商问题,这不是由以下原因引起的:(a)链接一端的手册不匹配,另一端不是自动的;或者(b)链接失败的组件(电缆,端口等)。

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

思科文档中所述

如果禁用自动协商,它将隐藏链接丢失和其他物理层问题。仅禁用对终端设备的自动协商,例如不支持千兆位自动协商的较旧的千兆位NIC。除非绝对必要,否则请不要禁用交换机之间的自动协商,否则可能无法发现物理层问题并导致生成树循环。

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

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

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


6
Cacti本质上是MRTG,没有配置混乱,所以应该很好。只需开始监视RX丢弃和错误,TX冲突等。如果您遇到协商问题,这些计数器中的一个或多个将为“高”。相对于端口上的流量高。
Doug Luxem 2010年

2
@EK-需要在交换机和设备上完成配置。更换设备(或者可能只是升级驱动程序/固件),移动端口或更换交换机,都是与设置不匹配有关的问题。我不确定您为什么会看到这么多错误-我们在这里运行HP,Cisco,Extreme和Juniper,但我从未见过自动协商问题。我看到的唯一问题是手动设置了链接的一端。正如思科文档所述,也许您有一些潜在的L1问题?
Doug Luxem 2010年

7
我使用HP,Cisco和Dell交换机的经验与DLux相匹配。我猜想很多其他人也有同样的感觉。与严格设置端口速度/双工的管理员相比,那些始终不匹配的网络要比设置为自动协商的网络要麻烦得多。
埃文·安德森

3
@Whisk WAN链接是另一回事。当您从某个提供商处移交以太网链接时,它们经常被迫手动或正在使用不支持自动协商的收发器。这些几乎必须逐案处理。
Doug Luxem 2010年

3
我认为投票有点误导,因为有些人会从1或2个供应商那里获得硬件的奢侈品(或者只是经验不足),再也看不到问题了,而像我这样的其他人将从很多不同的供应商那里继承设备在某些组合中表现不佳。
JamesRyan 2010年

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

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

编辑:

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


5
我发现了同样的问题,但也许只有1/100台服务器会出现某种自动协商的问题。它通常在较小的网络上不明显,但足以使较大的网络烦人。
Dave Drager 2010年

+1-多年来,我也看到过自动协商问题的弹出窗口。使团队标准化为所有交换机禁用自动协商功能,为我们消除了这个问题。
Joe Doyle 2010年

除了我可以回想我已经看到过许多问题之外,没有什么要补充的。如果有其他人知道为什么自动协商失败,那么(相对)定期,我很想听听。
舒夫

@dave,因此自动协商问题发生的机会随着网络的规模和复杂性而增加-这是有道理的。此外,去年我们确实将小型服务器机架网络扩展了3倍……
Jeff Atwood 2010年

4
@Jeff Atwood:仅在“大小”改变与增加具有自动协商行为损坏的设备的可能性有关的情况下,问题的可能性才会增加。这不像帧泛滥或广播流量。严格来说,自动协商是在每个客户端设备和每个交换机端口之间进行的。
埃文·安德森

15

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


完全可能;我们已经进行了许多其他故障排除以排除故障,但是我担心乔尔的团队遇到了与“五个为什么”中记录的问题相同的问题。这似乎相当普遍..
杰夫·阿特伍德

7
我同意自动协商的问题“经常”发生,但是在大多数情况下,它已经工作了“一段时间”。这就是促使我要进一步研究的问题,而不是将固定链接用作“解决方案”,我的意思是...如果您的“运行良好”的汽车开始行驶不正常,除非预热10分钟,您就不会说自己:“嘿,它越来越老了,现在需要预热10分钟。”您会考虑最早的机会,因为“以前有什么不对劲” :)
dimitri.p

15

因此,执行故障排除步骤(假设您每次都停止操作并等待问题再次出现):

  1. 检查交换机上的日志,看看它是否告诉您为什么使用100M。
  2. 如果您仍在运行它,请关闭Joel一直在推销的那种极其有害的“ Windows负载平衡”废话-它的工作方式是通过破坏交换机的缓存,强制其对每个数据包进行软件处理。您的交换机被设计为在硬件中转发数据包,并且仅具有CPU所需的功能即可确定未知流量必须采取的物理路径(输入-> asic->输出),并对硬件进行编程以实现此目的(请阅读:计算器的CPU比您的交换机更好,请不要做一些愚蠢的事情,否则会使您的交换机的CPU更加努力地工作)。Windows负载平衡的工作原理是由您的交换机做出决定并为每个数据包重新安装硬件缓存。那可能无法解决这个特定问题,但是它使我从播客中感到烦恼……抱歉。
  3. 确保配置在两侧都匹配-听起来像您已经完成了
  4. Google针对您的交换机上的autoneg错误-除非您自己构建它,否则您不是唯一一个尝试对正在使用的交换机运行autoneg的人
  5. 用额定为Cat5e或更高的电缆替换电缆-理想情况下,您知道的电缆可以工作,就像工作站插入的电缆一样。不要尝试使用Cat5或其他人制造的垃圾,请使用包装中实际模制末端的容器。
  6. 移动端口-将服务器放在同一交换机的其他端口上
  7. 更换网卡-使用在不同时间订购的不同批次

至此,您已经取消了配置,所插入的物理端口以及它们之间的电缆连接。如果这种情况仍在发生,则其他一些原因可能是:

  1. 电缆布线-小心交流电源电缆的EM干扰,将其布线到机架的不同侧。
  2. 冷却-确保您的环境温度不超过90度,并且NIC卡没有掉入某种“亲爱的上帝,请让我转发这个数据包”模式。我听说过但没有见过,例如,思科路由器在过热时会停止进行快速交换并通过CPU转发数据包。
  3. 用不会吸引人的东西替换交换机-检查主机每秒正在谈话的带宽总量,然后查看交换机的额定背板容量。例如,潜在的48台中的7台主机全部传输1.0G足以停止Cisco 3750。另外要非常小心的小气鬼也-RAN网络供应商:d-Link的,Linksys公司,戴尔,英特尔,惠普。没有人认真对待网络使用这些人,不是因为“没有人因为使用Cisco而被解雇”,而是因为“人们记得拥有20/48端口的Intel交换机在两年内出现故障”或“我曾经专门使用ProCurve和在我真正使用思科之前,我一直都在谈论思科是多么邪恶。思科被认为是中端产品网络供应商,那么这能告诉您有关Cisco 以下人员的信息吗?:-)

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

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

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

在我们从WAN运营商那里获得铜移交的几个地方?您几乎应该一直希望铜缆WAN / Internet连接一直处于故障状态-部分原因是您不知道另一端是什么。一些古老的Extreme交换机碰巧具有错误的固件,无法进行自动协商,但是MPLS标记吗?一些$ 5的媒体转换器,因为您的ISP的$ 200k Ciena边缘设备太强大了,无法在双绞线上提供以太网吗?事先确定要如何处理并坚持下去,然后期望运营商内部的一些变态在星期六晚上10点进行更改,因为商定的配置从未被记录下来,并且他们有一些政策可循。

认真地,但是,请从您的ISP获得光纤切换。


2
刚读完此书-很好的答案。
赫尔维克,2010年

极好的答案。
鲁西诺2011年

2
只是为了最终答案在这里,某个地方是Broadcom驱动程序错误。我们找不到任何有效的集合。切换到英特尔NIC可以将其固定为100%。blog.serverfault.com/2011/03/04/broadcom-die-mutha
Jeff Atwood

@JeffAtwood是同样的问题吗?我以为这个开关最终被追到了开关的省电模式……
James Cape

14

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

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

我通常的清单:

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

通常,除非在所有其他可能的原因都已消除,我们移动了交换机端口,更换了电缆,测试了NIC等之后,否则切勿在服务器(或数据中心中的任何其他设备)上禁用自动协商功能。其他选择。在这种情况下,将其记录为死亡。这种情况很少发生,通常是在无法访问BIOS和OS设置的设备上发生的。

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


我们已经在“问题”服务器上反复交换了电缆和端口,并且我们恢复为使用“常规”(Server 2008 R2)网络驱动程序。它也发生在具有相同配置的多台服务器上。我很难调和“永远不要这样做!” 和“总是这样做!” 在同一个问题的答案中。
杰夫·阿特伍德

@Jeff:熟悉您和您的团队最初发布的问题(serverfault.com/questions/104791),我很想知道问题是出在问题服务器计算机上的交换机端口还是NIC端口上。NIC /芯片组的品牌/型号是什么?
埃文·安德森

1
@Jeff-有些答案不是二进制的:)一定要这样做,直到您有机会找出问题所在。
dimitri.p,2010年

@evan发生在每个Web层服务器上,而不跟随任何交换机端口或以太网卡。如果此更改后仍然存在问题,则为软件问题。服务器是Lenovo RS110 x6和Lenovo RD120 x2。
杰夫·阿特伍德

1
只是为了确保最终答案在某个地方:这是Broadcom的驱动程序问题。我们无法使用任何已知的驱动程序集来解决它。唯一的“解决办法”是切换到英特尔NIC。
Jeff Atwood

10

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

由于我们的许多服务器都使用了诸如NIC分组之类的可疑功能,因此可笑的是,这可以防止您在万一发生交换机故障的情况下失去网络访问权限,同时又使您更容易遭受软件故障的影响。(司机总是很烂)

为了捍卫网络专家,大量使用Windows默认NIC驱动程序(通常很烂)运行服务器。如果您在进行自动协商时遇到问题,并且您的设备还没有到克林顿政府管理,请更新这些NIC驱动程序。


1
最终它是糟糕的驱动程序,但我们唯一能找到的解决方法就是切换到英特尔NIC。现在,我们有了针对Broadcom NIC的终生仇杀。
Jeff Atwood

10

您应该进行自动协商。如果您使用的开关无法可靠地自动协商,请购买更好的开关。

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

如果一端设置为自动,另一端设置为手动,则保证 100baseT 失败,这符合规范。如果您将一端强制为100 /满,则另一端自动协商为100 /一半,从而导致双工不匹配。


9

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

另外,某些CoLos设置其交换机不进行协商,而仅将链接设置为1000 /满。


7

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

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

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

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


6748-SFP模块支持autoneg很好,它们只是不允许您协商1000 / full。:-)
詹姆斯·开普

6

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


4
该答复的执行性声明是“许多年前”。10/100自动协商与当今的千兆位自动协商不同。
埃文·安德森

1
你是绝对正确的!这确实是“很多年前”的事,现在回想起来,我不记得这种情况在任何千兆设备上都以如此频繁的频率发生过,这在当时是相当新的。

4

我在自动协商方面遇到很多问题。当然,许多意味着每几个月一次,但这在我的书中太多了。

自动协商问题很难找到,尤其是当处理网络,服务器,应用程序和数据库的人员是四个不同的团队时。通常,最后两个会花很多时间来回走动,互相指责性能不佳并撒谎于测量,有时将其踢向服务器人员,服务器人员会适当地查看“ top”的输出并说一切服务器很好。

一直进行到问题升级到“专家”(实际上是通才,从而了解网络,硬件,操作系统,数据库,框架和应用程序)找到问题的程度为止。五到十分钟之内。

因此,只要有能力做某件事,我自己的经验法则就是总是在生产服务器,切换台和路由器上设置固定速度。非生产服务器也是如此,如果它们被充分隔离以使使用它的人没有root访问权限。

可以处理桌面/笔记本电脑访问的开关可以进行自动协商,并且该规则也有例外。仅举一例,如果网络中正在进行很多更改,最好将其保持自动运行并密切注意事情。

无论您对自动协商做出什么选择,可能有用的另一点是监视事物。只需配置Nagios或您具有的功能即可随时注意任何重要端口的状态。无论如何,您已经在监视该网络设备,不是吗?


4

粗糙的一个。我曾经见过100Mb 3com NIC,如果您强制使用速度或双工,它将无法以高于10Mb的速度进行连接。即使驱动程序具有100Mb Full和100Mb Half设置,也只能通过让它们自动协商来获得全速。

许多NIC驱动程序不允许您指定1000Mb。唯一的选择是10、100,自动。如果您要全速运行,则再次强制您执行“自动”。例如Broadcom netXtreme 57xx千兆驱动程序就是这种方式。

您可以轻松地在交换机上强制使用千兆位,但我认为您将被迫让大多数NIC自动协商。


5
千兆规格需要自动协商。
duffbeer703

3
  1. 以我的经验(主要是3Com和HP设备,很少使用Cisco),自动协商不会引起很多问题。

  2. 与mrdenny相似,我通常将服务器设置为最快速度(我们仍有100台),全双工,然后将开关设置为自动。 由于服务器和工作站的速度混合在一起,因此我非常喜欢将开关保持自动状态,并使其适应端点。


2
使用Cisco设备,如果您手动设置主机的速度并将交换机保持为自动,则可能会增加问题的可能。思科更喜欢自动或手动调节,手动
einstiien

不只是思科-当链接的两端都匹配时,一切都会更好。
詹姆斯

3

我在家庭设置中进行自动协商时遇到了一些问题,问题出在接线上,尤其是网络电缆绕成一圈,直径过小或太靠近电源线。

但是我认为这些建议对于您的设置来说太琐碎了。;)


2

最近,我在Gary Donahue的Network Warrior中阅读了有关此内容的内容。根据本书,要使自动协商正常工作,交换机和NIC都必须设置为自动协商。将NIC设置为特定的速度和双工模式并使服务器处于自动协商状态将无法正常工作-自动协商是一种协议,双方都必须说出来才能使设置正确工作。

如果要显式设置速度和双工模式,则需要在连接的两端进行设置。


这取决于您是否在谈论新的千兆自动协商-它与旧的10/100自动协商完全不同。
杰夫·阿特伍德


1

我的经验法则是对路由器链接以外的所有内容使用自动协商,除非您特别遇到问题(例如最近的Broadcom卡... BAH!)

例如,如果您有两个通过以太网链接的路由器,请手动设置两端的速度。


2
为什么要手动设置路由器之间的速度?
Amok 2010年

我想这是习惯。但是,当您开始考虑非以太网链接时,通常必须设置速度。
亚伦·德·布鲁因
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.