当前位置: 首页 > 科技观察

UDLD模式解决交换机接口故障

时间:2023-03-12 01:23:05 科技观察

网络中少不了交换机和路由器的应用,出现故障的概率比较高。特别是开关接口的问题也会时不时出现。大多数开关都具有自诊断功能。当交换机或交换机端口由于某种原因出现故障时,管理员将通过指示灯获知错误。但是,有时开关会被误诊。比如交换机的端口工作指示灯明明是正常的,但是用户却反映网络不可用。如果只是普通用户,问题还不算太大。但是如果这个端口恰好被用来做备份,那么情况就更糟了。为了避免这种情况,很多网络管理员在实际工作中喜欢使用交换机的UDLD模式来消除交换机的这种误诊。1、什么情况下会误诊?误诊的情况主要是链路或交换机的端口指示灯正常(即端口状态为UP),但接口仍然不能正常传输数据流量。通常,这种错误称为单向链接。这种错误一般出现在接口故障、软件故障、硬件故障或其他异常原因时。以目前的技术手段,交换机无法从根本上避免此类错误的发生。为此,还有其他方法可以加强对交换机端口的检测,以尽早发现此类错误。在Cisco系列交换机上,采用UDLD方式来解决这种情况下的误诊。理论上,UDLD是工作在第二层的协议。但从实际情况来看,往往与第一层的内容有着很深的关系。也就是说,UDLD模式不仅在第二层运行,还要配合第一层的相关机制来完成。主要思想是UDLD协议运行在第一层和第二层之间,最终决定链路的实际工作状态。当发现“链路正常,但无流量传输”时,UDLD协议会立即报警。具体来说,在***层,通过自协商功能观察物理信令等相关参数的运行情况。UDLD协议将完成一些自动协商机制无法完成的任务。当自协商发现物理信令异常时,不会自动将端口从UP状态切换到其他状态,导致单向链路失效。UDLD协议可以接受自协商机制传来的参数,发现故障后及时关闭交换机端口。可见,UDLD模式采用的不仅仅是一个协议,而是UDLD协议与自动协商机制相互作用的结果。如果网络管理员要开启UDLD模式,那么UDLD协议和自动协商机制必须同时开启。在第一层和第二层中,他们各司其职,共同防止物理或逻辑故障。网络上的单向连接,从根本上杜绝了交换机的误诊。网络管理员需要了解的是,UDLD并不是对交换机原有诊断系统的补充,而是一种独立的诊断方式。也就是说,它从另一个角度对交换机各端口的运行状态进行自诊断。两者之间基本上没有冲突或重叠。在实际工作中,传统的诊断方法和UDLD模式往往同时使用。2、合理配置UDLD模式下的各项参数。如果UDLD协议和自协商机制同时开启,则开启UDLD模式。在这种情况下,交换机的某个接口会周期性地向相邻端口发送UDLD协议数据。报告。正常情况下,交换机的这个接口会在预定的定时器超时前收到回显包。如果在这个定时器超时之前,交换机发送UDLD数据包的接口还没有收到响应信息,那么UDLD协议就会认为发生了故障,即发生了单向链路故障(其实更准确的说是,应该是自动协商发现了这个故障并通知了UDLD协议)。当UDLD知道这种情况时,它会立即关闭有问题的交换机接口。在配置UDLD时,首先需要考虑这个定时器。换句话说,最好设置这个时间。如果时间设置的比较短,不仅会造成不必要的数据流量,还可能因为数据延迟等原因,导致无法在合理时间内收到响应数据包。而如果这个定时器的时间设置的长一些,那么短时间内可能就找不到问题了。要知道,一分钟对用户来说可能感觉不多。但是对于数据网络传输来说,这个时间就很长了。默认情况下,此计时器为15秒。在实际工作中,网络管理员可能需要根据不同情况合理设置该参数。如果需要根据企业网络的复杂程度和布线的长度来考虑。比如根据之前的情况,企业可能经常会遇到网络拥塞等情况,而这种拥塞也是暂时的,所以要适当延长定时器。笔者的建议是一开始把这个定时器设置的长一些,以后逐渐缩短。***得到一个合理的值。3、提高端口的适用性在使用普通接口的情况下,当某个接口收不到UDLD响应报文时,该接口将被关闭。这也有一个缺陷。比如企业可能存在网络拥塞,比如临时备份造成的拥塞等等。此时发送方可能无法在定时器超时前收到响应信息。所以出现这种情况时,如果将交换机的端口设置为关闭,显然会造成不必要的麻烦。网络管理员希望能够给网络“纠正”的机会。为此,Cisco交换机在原有UDLD模式的基础上,提出了主动UDLD模式的概念。两种模式的主要区别在于后者给了网络纠正错误的机会。在主动UDLD模式下,当交换机接口发现无法正常接收到UDLD响应信息时,不会立即将端口设置为关闭状态,而是继续发送UDLD数据包。通常,UDLD数据包会发送八次。如果UDLD数据包发送8次后仍收不到,则UDLD协议会将此端口状态更改为Err-disable状态。如果在这段间歇时间内,发送端口能收到任何响应信息,就认为是正常的。显然,如果采用主动UDLD方式,可以有效避免网络拥塞导致的误判问题。采用激进UDLD模式的另一个原因是路由黑洞。什么是路由黑洞?这个定义不太好说,我举个例子。例如,当一个三层或路由接口遇到单向链路时,此时接口sink保持UP状态,因此交换机会继续将流量切换到这个接口。但最终的结果是数据包永远不会到达远程设备的相应接口。这是一个路由黑洞的简单例子。如果采用传统的UDLD方式,这种情况是无法很好避免的。相反,如果采用主动UDLD方式,则可以有效避免路由黑洞导致的网络故障。激进UDLD模式除了在发送信息的次数上比较特殊外,还有以下两个特点。一是当链路一侧的端口发生拥塞时,激进模式下的UDLD协议也会将端口置为Error状态,并显示相关的对策信息。传统的UDLD模式不会对这种情况有任何反应。二是当链路的一个端口处于UP状态,另一侧处于Down状态时,如果使用主动UDLD模式,则会显示错误信息,并将该端口设置为错误状态。而如果使用传统的UDLD模式,则不会有任何反应。这也正是笔者上文提到采用主动UDLD模式解决顶路黑洞问题的原因。4.故障恢复后重启交换机接口。无论是使用传统的UDLD模式还是主动的UDLD模式,都有一个共同点,就是只要将端口设置为Error-disable状态,即使故障解决了,交换机也会有没办法自动恢复界面。也就是说,出现这种情况时,网络管理员需要手动恢复接口。一般的做法是先用shutdown命令关闭端口,再用noshutdown命令启用。总之,只要交换机支持,开启UDLD模式,甚至开启主动UDLD模式,都可以有效避免单向链路的误诊。尤其是主动模式下的UDLD,可以轻松解决路由黑洞的网络问题。