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

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



这听起来很像Joel Spolsky的文章《五个为什么》


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


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

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


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


评论

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

这只是我,但是如果遇到您的问题,我会想知道为什么交换机和服务器没有协商最高优先级速度(1000 /全速)。这告诉我某些东西已损坏,并且通过将链接强制为一定速度可以掩盖问题。

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

几乎让我变粉的事:serverfault.com/questions/328105/ethernet-interface-errors

#1 楼


我还没有看到网络速度自动协商的问题,这不是由以下两种情况引起的:(a)链路一端的手册不匹配,另一端是自动的,或者(b)故障的组件链接(电缆,端口等)的类型。
这取决于管理员,但是我的经验告诉我,如果手动指定链接速度和双工设置,则势必会遇到速度不匹配的情况。为什么?因为几乎不可能记录交换机和服务器之间的各种连接,然后在进行更改时遵循该文档。我见过的大多数故障是由于1(a)造成的,只有在开始手动设置速度/双工设置时,您才会遇到这种情况。

如Cisco文档中所述:


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


除非您准备为网络变更设置变更管理系统,需要验证速度/双工(并且不要忘记流控制),或者愿意处理偶尔在所有网络设备上手动指定这些设置而引起的不匹配,然后坚持使用默认的auto / auto。 >
以后,请考虑使用MRTG监视交换机端口上的错误,以便在出现问题之前就可以发现这些问题。旧设备出现故障。是的,这是很久以前的一个问题,当时创建标准并且并非所有设备都遵循它们。您的NIC和交换机的使用期限是否少于10年?如果是这样,那么这将不是问题。

评论


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

– Doug Luxem
2010-1-25在20:37

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

– Doug Luxem
2010-1-25在21:38

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

–埃文·安德森(Evan Anderson)
2010-1-25在21:44

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

– Doug Luxem
2010-1-25 22:50

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

–詹姆斯·瑞安(JamesRyan)
2010年1月26日15:05



#2 楼


很常见,多年来,我在使用各种类型的硬件时遇到了很多问题。
我认为如果设置是静态的(即服务器机架),并且您认为不会有任何变化手动设置速度和双工是一个好主意。只要有据可查,就可以避免将来出现的问题。

编辑:

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

评论


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

–戴夫·德拉格
2010-1-25在19:08

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

–乔·道尔
2010-1-25在19:11

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

– Schof
2010-1-25在19:19

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

–杰夫·阿特伍德
2010-1-25在19:20

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

–埃文·安德森(Evan Anderson)
2010-1-25在21:46

#3 楼

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

评论


完全有可能;我们已经做了很多其他的故障排除,以排除故障,但是我担心乔尔的团队遇到了与“五个为什么”中记录的问题相同的问题。似乎相当普遍。

–杰夫·阿特伍德
2010-1-25在19:50

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

– dimitri.p
2010-1-25在19:58

#4 楼

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


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

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


电缆敷设-注意交流电源电缆的EM干扰,将它们沿机架的不同侧面布线。 >冷却-确保您的环境温度不超过90度,并且您的NIC卡没有掉入某种“亲爱的上帝,请让我转发这个数据包”模式。我听说过但没有见过Cisco路由器在过热时会停止进行快速切换并通过CPU转发数据包。主机每秒进行总计谈话,然后查看交换机的额定背板容量。例如,在潜在的48个中,有7个主机全部传输1.0G足以停止Cisco 3750。另外,还要对也经营廉价的网络供应商非常小心:D-Link,Linksys,Dell,Intel和HP。没有人认真对待网络使用这些人,不是因为“没有人因为使用Cisco而被解雇”,而是因为“人们记得拥有20/48端口的Intel交换机在两年内出现故障”或“我曾经专门使用ProCurve和在我真正使用思科之前,我一直都在谈论思科是多么邪恶。思科被认为是中端网络供应商,那么这对思科下面的家伙有什么启示? :-)

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

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

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

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

但是,严重的是,从您的ISP获得了光纤切换。

评论


刚读完此书-很好的答案。

– Helvick
2010-2-4在20:43

极好的答案。

– Rushino
2011年10月14日下午16:46

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

–杰夫·阿特伍德
2012年12月4日在6:03

@JeffAtwood是同样的问题吗?我以为这是最终在开关上找到了节能模式...

–詹姆斯·开普(James Cape)
13年1月13日在7:54

#5 楼

我负责的网络(以及其他一些人)由约40台服务器,1000多个工作站(分布在相当大的校园中)和约1000个WAP组成,分布在不同类型和年龄的大区域中正如dimitri.p所说,当某些事情突然无法停止自动协商时,通常表明存在另一个问题。手动设置端口类似于将创可贴贴在被肠子刺伤的人上-可能会止血,但肯定会在下面造成伤害。

我通常的检查清单:


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

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

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

评论


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

–杰夫·阿特伍德
2010-1-25在20:24



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

–埃文·安德森(Evan Anderson)
2010-1-25在21:22



@Jeff-有些答案不是二进制的:)必须这样做,直到有机会找出问题所在。

– dimitri.p
2010-1-25 22:20

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

–杰夫·阿特伍德
2010-1-25 22:30

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

–杰夫·阿特伍德
2012年12月4日下午5:54

#6 楼

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

它使之更加有趣,因为我们的许多服务器都使用了诸如NIC分组之类的可疑功能,这些功能可防止您在万一发生交换机故障的情况下失去网络访问权限,同时又使您更容易遭受软件故障的影响。 (驱动程序总是很糟糕)

为了防御网络人员,Windows默认的NIC驱动程序(通常很糟糕)正在运行大量服务器。如果您在自动协商方面遇到问题,并且您的设备还没有到达克林顿政府,请更新这些NIC驱动程序。

评论


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

–杰夫·阿特伍德
2012年12月4日下午5:54

#7 楼

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

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

如果将一端设置为自动,将另一端设置为手动,则保证100baseT失败,这是根据规格而定的。如果您将一端强制为100 /满,则另一端将自动协商为100 /一半,这将导致双工不匹配。

#8 楼

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

还有一些CoLos将交换机设置为不协商,而仅将链接设置为1000。 / full。

#9 楼

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

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

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

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

评论


6748-SFP模块支持autoneg很好,只是不允许您协商1000 / full。 :-)

–詹姆斯·开普(James Cape)
2010-2-3在20:19

#10 楼

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

评论


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

–埃文·安德森(Evan Anderson)
10 Jan 25'2010 at 21:48

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

–user32856
2010-1-26 22:12

#11 楼

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

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

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

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

处理台式机/笔记本电脑访问权限的交换机可以让其进行自动协商,并且还有规则的例外。只需提及一个,如果网络中发生了很多变化,最好将其保持在自动状态并密切关注事物。

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

#12 楼

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

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

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

评论


千兆规格需要自动协商。

–duffbeer703
2010-1-26的4:17

#13 楼


根据我的经验(主要是3Com和HP设备,Cisco很少),自动协商不会引起很多问题。
与mrdenny相似,我通常将服务器设置为最快的速度(我们仍将其设置为100),全双工,然后将开关设置为自动。由于服务器和工作站的速度混合在一起,因此我非常希望将开关保持自动状态,并使其适应端点。


评论


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

–einstiien
2010-1-25在19:13

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

–詹姆斯
2010-1-25在19:46

#14 楼

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

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

#15 楼

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

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

评论


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

–杰夫·阿特伍德
2010-2-5在0:42

#16 楼

在使用PIX / ASA安全设备时,Cisco讨论了某些情况下可能需要手动配置端口速度和双工而不是使用自动协商的情况:http://www.cisco.com/en/US/products/hw/vpndevc/ps2030/ products_tech_note09186a008009491c.shtml#疑难解答

#17 楼

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

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

评论


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

– m
2010-1-26的6:05

我想这是习惯。但是,当您开始考虑非以太网链接时,通常必须设置速度。

– Aaron C. de Bruyn
2010年1月27日,0:47