本文档解决可能导致网络速度缓慢的最常见问题。文档对常见网络速度缓慢症状进行分类,并概述问题诊断和解决方法。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
VLAN上连接缓慢的症状可能是由不同网络层上的多个因素造成的。通常,网络速度问题可能发生在较低级别,但故障症状可能出现在较高级别,因为问题在术语“慢速VLAN”下自我掩蔽。 为了澄清问题,本文档定义了以下新术语:“慢冲突域”、“慢广播域”(换句话说,慢VLAN)和“慢VLAN间转发”。 这些定义在下面的三类原因中。
在以下场景(如下面的网络图所示)中,有一台第3层(L3)交换机在服务器和客户端VLAN之间执行VLAN间路由。在此故障场景中,一台服务器连接到交换机,并且端口双工模式在服务器端配置为半双工,在交换机端配置为全双工。这种错误配置会导致丢包和速度减慢,当连接服务器的链路上出现更高的流量速率时,丢包率会增加。对于与此服务器通信的客户端,问题看起来像是VLAN间转发缓慢,因为它们与同一VLAN中的其他设备或客户端通信时没有问题。仅当与不同VLAN上的服务器通信时,才会出现问题。因此,问题发生在单个冲突域上,但被视为VLAN间转发缓慢。
减速的原因可分为以下三类:
冲突域定义为在半双工端口配置中配置的连接设备,这些设备彼此连接或连接到集线器。如果设备连接到交换机端口并配置了全双工模式,则这种点对点连接无冲突。这种数据段速度缓慢的原因可能不同。
当整个VLAN(即同一VLAN上的所有设备)速度缓慢时,广播域连接速度就会变慢。
当本地VLAN上没有速度缓慢,但流量需要转发到备用VLAN,而且未按预期速率转发时,VLAN间连接会变慢(VLAN之间的转发速度变慢)。
在大多数情况下,当较高层协议(应用)需要更长时间才能完成通常运行速度更快的操作时,网络会被视为速度较慢。网络中某些数据包的丢失导致网络速度下降,导致TCP或应用程序等更高级的协议超时并开始重新传输。
由于网络设备导致的另一种慢速,转发(无论第2层[L2]还是第3层)执行缓慢。这是由于偏离正常(设计)操作和切换到慢路径转发。例如,当交换机上的多层交换(MLS)在硬件中的VLAN之间转发L3数据包时,但由于配置错误,MLS无法正常运行,并且转发由软件中的路由器完成(这会显着降低VLAN间转发速率)。
因此,如果您的VLAN速度缓慢,请首先隔离冲突域问题。如果同一冲突域上的用户遇到连接问题,或者发生在多个域上,则需要建立该关系。为此,请在同一冲突域上的用户PC之间进行数据传输,并将此性能与另一个冲突域的性能或预期性能进行比较。
如果仅在冲突域上发生问题,且同一VLAN中其他冲突域的性能正常,则查看交换机上的端口计数器以确定此网段可能遇到哪些故障。很可能,原因很简单,例如双工不匹配。另一个不太常见的原因是网段过载或超订用。有关排除单网段故障的详细信息,请参阅文档配置和排除以太网10/100/1000Mb半/全双工自动协商故障。
如果不同冲突域(但位于同一VLAN中)上的用户存在相同的性能问题,则仍然可能是由源和目标之间一个或多个以太网网段上的双工不匹配引起的。以下情况经常发生:交换机手动配置为在VLAN中的所有端口上具有全双工(默认设置为“auto”),而连接到端口的用户(网络接口卡[NIC])则执行自动协商过程。这会导致所有端口的双工不匹配,因此每个端口(冲突域)的性能不佳。 因此,尽管整个VLAN(广播域)似乎存在性能问题,但对于每个端口的冲突域,它仍被归为双工不匹配。
另一个需要考虑的情况是特定网卡性能问题。如果有性能问题的NIC连接到共享网段,则整个网段可能出现速度缓慢,特别是如果NIC属于同样为其他网段或VLAN提供服务的服务器。请记住此案例,因为在您进行故障排除时,它可能会误导您。同样,缩小此问题范围的最佳方法是在同一网段上的两台主机之间(其中连接了带假设问题的网卡)执行数据传输,或者如果该端口上只有网卡,则隔离不容易,因此请尝试此主机中的其他网卡,或尝试在单独的端口上连接可疑主机,确保端口和网卡配置正确。
如果问题仍然存在,请尝试排除交换机端口的故障。请参阅文档“排除交换机端口和接口故障”。
最严重的情况是某些或所有不兼容的网卡连接到思科交换机。在这种情况下,交换机似乎存在性能问题。要检查NIC与Cisco交换机的兼容性,请参阅文档“排除Cisco Catalyst交换机与NIC兼容性问题故障”。
您需要区分前两种情况(排除冲突域速度慢和VLAN速度慢的故障),因为这两种原因涉及不同的域。由于冲突域速度较慢,问题要么出在交换机外部(或交换机边缘、交换机端口),要么出在交换机外部。可能是数据段本身存在问题(例如,超订用数据段、超过数据段长度、数据段上的物理问题或集线器/中继器问题)。 在VLAN速度缓慢的情况下,问题很可能出在交换机(或多台交换机)内部。 如果诊断错误,则可能会浪费时间在错误的位置查找问题。
因此,在您诊断出病例后,请检查下列项目。
对于共享网段:
确定网段是过载还是超订用
确定网段是否正常(包括电缆长度是否正确、衰减是否在正常范围内以及介质是否受到物理损坏)
确定网络端口和连接到网段的所有网卡是否具有兼容设置
确定网卡是否运行良好(并运行最新驱动程序)
确定网络端口是否继续显示不断增加的错误
确定网络端口是否过载(尤其是如果它是服务器端口)
对于点对点共享网段或无冲突(全双工)网段:
确定端口和NIC兼容配置
确定网段的运行状况
确定网卡的运行状况
查找网络端口错误或超订用
在验证没有双工不匹配或冲突域问题(如上节所述)后,您现在可以排除VLAN内速度慢的故障。隔离速度较慢位置的下一步是在同一VLAN(但位于不同端口)上的主机之间执行数据传输;即,在不同的冲突域上),并将性能与备用VLAN中的相同测试进行比较。
以下可能导致VLAN速度缓慢:
1 VLAN内连接缓慢的这三个原因不在本文档的讨论范围之内,可能需要Cisco技术支持工程师进行故障排除。排除上面列出的前五个可能原因后,您可能需要向思科技术支持部门提交服务请求。
流量环路是VLAN速度慢的最常见原因。与环路一起,您应该看到其他表明您正在经历环路的症状。有关生成树协议(STP)环路的故障排除,请参阅文档生成树协议问题和相关设计注意事项。虽然功能强大的交换机(如Cisco Catalyst 6500/6000)具有千兆位支持的背板,可以处理某些(STP)环路,而不影响管理CPU的性能,但环路数据包可能导致NIC上的输入缓冲区溢出以及交换机上的接收/发送(Rx/Tx)缓冲区,从而导致连接到其他设备时性能下降。
环路的另一个示例是非对称配置的EtherChannel,如以下场景所示:
在本例中,端口1/1和1/2在通道中,但端口2/1和2/2不在通道中。
交换机1具有已配置的通道(强制通道),而交换机2没有相应端口的通道配置。如果泛洪流量(mcast/bcast/unknown unicast)从交换机1流向交换机2,交换机2会将其环回到通道。由于流量不是连续循环,而是仅反映一次,因此它不是一个完整的环路。它占整个环路的一半。如下例所示,如果出现两种此类错误配置,可能会形成完整的环路。
配置错误的风险在于,当流量交换不正确时,MAC地址会在不正确的端口上获取,从而导致数据包丢失。例如,假设一台路由器与交换机1(如上图所示)连接,并且具有活动热备份路由器协议(HSRP)。 路由器广播数据包后,其MAC地址由交换机2环回,由交换机1从信道中获知,直到路由器再次发送单播数据包。
注意VLAN上的任何位置是否存在瓶颈(超订用网段)并找到它们。VLAN过载的第一个迹象是端口上的Rx或Tx缓冲区超订用。如果在某些端口上看到输出丢弃或丢弃,请检查这些端口是否过载。(丢弃数的增加不仅表示Rx缓冲区已满。) 在Catalyst OS(CatOS)中,要发出的有用命令是show mac mod/port或show top [N]。在Cisco IOS®软件(本机)中,您可以发出show interfaces slot#/port# counters errors命令来查看丢弃。过载或超订用的VLAN场景和流量环路场景通常会相互伴随,但它们也可以单独存在。
最常见的情况是,当流量的聚合带宽被低估时,主干端口上会发生过载。解决此问题的最佳方法是在端口存在瓶颈的设备之间配置EtherChannel。如果网段已经是信道,请向信道组添加更多端口以增加信道容量。
另请注意思科快速转发(CEF)极化问题。此问题发生在流量由路由器进行负载均衡的网络上,但由于思科快速转发的算法一致性,所有流量都被极化,在下一跳上,流量不进行负载均衡。但是,此问题并不经常发生,因为它需要具有负载均衡的L3链路的特定拓扑。有关Cisco快速转发和负载均衡的详细信息,请参阅排除单播IP路由故障,该单播IP路由涉及Catalyst 6500/6000系列交换机上的CEF(带Supervisor引擎2)和运行CatOS系统软件。
VLAN过载的另一个原因是非对称路由问题。此类配置还可能导致VLAN泛洪的流量过高。有关详细信息,请参阅原因1:文档“交换园区网络中的单播泛洪”的“非对称路由”部分。
有时瓶颈可能是网络设备本身。例如,如果您尝试通过带有3千兆背板的交换机来泵送4千兆流量,则最终会导致流量严重丢失。了解网络交换机架构不在本文档的讨论范围之内;但是,在考虑网络交换机的容量时,应注意以下方面:
背板容量
线头阻塞问题
阻塞和无阻塞交换机/端口架构
交换机带内路径拥塞可能导致生成树环路或网络中其他类型的不稳定。任何思科交换机上的带内端口都是虚拟端口,为管理处理器的管理流量(如思科发现协议和端口聚合协议[PAgP])提供接口。带内端口被视为虚拟端口,因为在某些架构中,用户看不到它,而且带内功能与正常端口操作相结合。例如,Catalyst 4000、Catalyst 5000和Catalyst 6500/6000系列交换机(运行CatOS)上的SC0接口是带内端口的子集。接口SC0仅为已配置VLAN中的管理处理器提供IP堆栈,而带内端口则为任何已配置VLAN中的网桥协议数据单元(BPDU)和许多其他管理协议(如思科发现协议、互联网组管理协议[IGMP]、思科组管理协议和动态)提供对管理处理器的访问中继协议[DTP])。
如果带内端口过载(由于应用或用户流量配置错误),可能导致协议状态稳定性基于常规消息或收到的“hello”的任何协议不稳定。此状态可能导致临时环路、接口抖动和其他问题,导致这种速度缓慢。
虽然恶意形成的拒绝服务(DoS)攻击可能会成功,但很难导致交换机的带内端口拥塞。无法限制速率或减少带内端口上的流量。解决方案需要交换机管理员的干预和调查。带内端口通常对拥塞具有高容限。带内端口很少出现故障或卡在Rx或Tx方向。这将意味着严重的硬件故障,并影响整个交换机。此情况难以识别,通常由思科技术支持工程师诊断。症状是交换机突然变得“失聪”,不再看到控制流量,例如思科发现协议邻居更新。这表示Rx带内问题。(但是,如果只看到一个思科发现协议邻居,您可以确信带内工作正常。) 相应地,如果所有连接的交换机从单个交换机(以及所有其他管理协议)丢失思科发现协议,则表明该交换机的带内接口出现Tx问题。
如果带内路径过载,可能导致交换机出现高CPU状况;而且,随着CPU处理所有不必要的流量,情况会恶化。如果高CPU使用率是由带内路径过载或备用问题引起的,它可能会影响管理协议,如上面的“交换机带内路径拥塞”部分所述。
通常,将管理CPU视为任何交换机的易受攻击点。正确配置的交换机可降低因CPU使用率高而导致问题的风险。
Catalyst 4000系列交换机的Supervisor引擎I和II的架构设计为使管理CPU参与交换开销。请记住以下事项:
每当新路径(Supervisor引擎I和II基于路径)进入交换机时,CPU会对交换矩阵进行编程。如果带内端口过载,则会丢弃任何新路径。当端口之间交换流量时,这会导致较高层协议丢包(静默丢弃)和速度减慢。(请参阅上文“交换机带内路径上的拥塞”部分。)
由于CPU在Supervisor引擎I和II中部分执行交换,因此高CPU条件可能会影响Catalyst 4000的交换功能。Supervisor引擎I和II上的CPU使用率较高可能是由交换开销本身引起的。
Catalyst 4500/4000系列的Supervisor引擎II+、III和IV相当容许流量,但基于Cisco IOS软件的Supervisor引擎的MAC地址学习仍完全在软件中完成(由管理CPU);高CPU利用率可能会影响此进程并导致速度缓慢。与Supervisor引擎I和II一样,大规模MAC地址学习或重新学习可导致Supervisor引擎II+、III和IV的CPU使用率较高。
CPU也参与Catalyst 3500XL和2900XL系列交换机的MAC学习,因此导致快速地址重新学习的过程会影响CPU性能。
此外,与交换过程相比,MAC地址学习过程(即使完全在硬件中实现)是一个相对缓慢的过程。如果MAC地址重新学习的速率持续高,则必须找到并消除原因。网络上的生成树环路可能导致此类MAC地址重新学习。MAC地址重新学习(或MAC地址抖动)可能还由实施基于端口的VLAN的第三方交换机引起,这意味着MAC地址不与VLAN标记关联。此类交换机在以某些配置连接到思科交换机时,可能会导致VLAN之间的MAC泄漏。反过来,这可能导致MAC地址重新学习的速率高,并可能降低性能。
直通入口错误数据包传播与慢冲突域连接有关,但是由于错误数据包被传输到另一个网段,因此问题似乎是网段之间的交换。直通交换机(如Catalyst 8500系列园区交换机路由器(CSR)和Catalyst 2948G-L3或L3交换模块,用于Catalyst 4000系列)一旦交换机从读取数据包的L2/L3报头中获得足够的信息,即开始分组/帧交换目的端口。因此,当数据包在入口和出口端口之间交换时,数据包的开头已经从出口端口转发出去,而其余的数据包仍由入口端口接收。如果入口段不正常并生成循环冗余校验(CRC)错误或残帧,会发生什么情况?只有当交换机收到帧的结尾时,它才能识别这一点,到那时,大多数帧会从出口端口传出。由于传输错误帧的其余部分毫无意义,因此会丢弃其余部分,出口端口会增加“欠载”错误,而入口端口会增加相应的错误计数器。如果多个入口端口不正常且其服务器驻留在出口端口上,则服务器网段似乎有问题,即使没有。
对于直通第3层交换机,请注意下行情况,当您看到它们时,检查所有入口端口是否有错误。
配置错误可能导致VLAN速度缓慢。这些负面影响可能是VLAN超订用或过载所致,但最常见的是,它们是设计错误或配置被忽略所致。例如,如果组播流量限制技术未在该VLAN上正确配置,网段(VLAN)可能很容易被组播流量(例如视频或音频流)压得喘不过气来。此类组播流量可能会影响数据传输,导致所有用户在整个VLAN上丢包(并泛洪那些不打算接收组播流的用户的网段)。
软件错误和硬件问题难以识别,因为它们会导致偏差,难以排除故障。如果您认为问题是由软件Bug或硬件问题引起的,请联系Cisco技术支持工程师,让他们调查问题。
在排除VLAN间连接缓慢故障(VLAN之间)之前,请调查并排除本文档的排除冲突域问题和排除VLAN内VLAN(广播域)慢速故障部分讨论的问题。
大多数时候,VLAN间连接缓慢是由用户配置错误引起的。例如,如果错误地配置了MLS或组播多层交换(MMLS),则数据包转发由路由器CPU完成,该CPU是慢速路径。为避免配置错误并在必要时有效排除故障,您应了解L3转发设备使用的机制。在大多数情况下,第3层转发机制基于路由和地址解析协议(ARP)表的编译,并将提取的数据包转发信息编程为硬件(快捷方式)。 编程快捷方式过程中的任何故障都会导致软件数据包转发(慢速路径)、错误转发(转发到错误的端口)或流量黑洞。
通常,快捷方式编程失败或创建不完整的快捷方式(这也可能导致软件数据包转发、错误转发或流量黑洞)是软件漏洞的结果。如果您怀疑存在这种情况,请让思科技术支持工程师对其进行调查。VLAN间转发缓慢的其他原因包括硬件故障,但这些原因不在本文档的讨论范围内。硬件故障只会阻止在硬件中成功创建快捷方式,因此,流量可能会采用慢速(软件)路径,或者会被黑洞。硬件故障也应由思科技术支持工程师处理。
如果您确定设备配置正确,但硬件交换未进行,则可能是软件错误或硬件故障的原因。但是,在得出此结论之前,请了解设备功能。
以下是硬件转发可能停止或根本不进行时最频繁的两种情况:
存储快捷方式的内存已耗尽。内存满后,软件通常会停止进一步创建快捷方式。(例如,MLS(无论是基于NetFlow还是基于思科快速转发)在没有新快捷方式空间时变为非活动状态,并切换到软件[慢速路径]。)
设备不设计用于执行硬件交换,但并不明显。例如,Catalyst 4000系列管理引擎III及更高版本设计为仅硬件转发IP流量;所有其他类型的流量都由CPU处理。另一个示例是需要CPU干预(例如,使用“log”选项)的访问控制列表(ACL)的配置。 应用于此规则的流量由软件中的CPU处理。
直通交换机上的入口错误也可能导致VLAN间路由速度慢。直通交换机使用相同的架构原则转发L3和L2流量,因此上文排除慢速VLAN内(广播域)故障部分中提供的故障排除方法也可应用于L2流量。
影响VLAN间路由的另一种错误配置是最终用户设备(如PC和打印机)上的配置错误。常见情况是PC配置错误;例如,默认网关配置错误、PC ARP表无效或IGMP客户端出现故障。常见情况是存在多台路由器或支持路由的设备,且部分或所有最终用户PC配置错误,使用错误的默认网关。这可能是最麻烦的情况,因为所有网络设备都已配置并正常运行,但最终用户设备由于配置错误而不使用它们。
如果网络中的设备是没有任何类型硬件加速(并且不参与NetFlow MLS)的常规路由器,则流量转发速率完全取决于CPU的速度及其繁忙程度。高CPU使用率肯定会影响转发速率。但是,在L3交换机上,高CPU条件不一定影响转发速率;高CPU利用率会影响CPU创建(编程)硬件快捷方式的能力。如果快捷方式已安装到硬件中,则即使CPU被高度利用,流量(对于已编程的快捷方式)也会在硬件中切换,直到快捷方式老化(如果有过期计时器)或被CPU删除。但是,如果路由器配置了任何类型的软件加速(例如快速交换或思科快速转发交换),则数据包转发可能受软件快捷方式的影响;如果快捷方式被破坏,或者机制本身发生故障,则流量不会加速转发速率,而会被传送到CPU,从而降低数据转发速率。