单向链路问题是指链路上的两条传输路径中,有一条出现了问题,但并不是两条同时出现问题。这可能是因为线缆错误、切断了一条光纤线缆、拔掉了一根管线、GBIC问题,或其他问题。因为STP会监控入向BPDU,以便知道何时重新收敛网络,单向链路两端的邻接交换机可能都会成为转发状态,从而造成环路,如图所示。
 
 
上图显示了SW1和SW2之间两根线缆的光纤链路。SW2一开始为阻塞状态,但因为SW1传输路径故障,SW2无法从SW1那里收到Hello。SW2随后转为转发状态,现在所有交换机上的所有链路都是转发状态。即使SW1的传输光纤有故障,数据帧也会逆时针在网络中循环。
 
在Catalyst交换机上,有几种机制可以用来检测和避免由单向链路造成的问题。这些机制包括UDLD、STP环路防护、网桥保障和RSTP/MST争议机制。
 
单向链路检测(Unidirectional Link Detection,UDLD)是Cisco私有的二层消息协议,是用于一对设备之间的响应机制。使用UDLD消息,每台交换机作为消息的生成者,通告自己的身份和端口标识符对,以及它从相同网段上获知的邻居交换机/端口对列表。通过使用这个信息,UDLD可以通过以下现象来检测单向链路。
 
  • 来自邻居的UDLD消息中不包含自己的交换机/端口对。这说明邻居没有收到自己的消息(比如切断的光纤),或邻居发送这些UDLD消息的端口与邻居收到自己发出的UDLD消息的端口不同(比如Tx光纤被插到Rx光纤之外的不同端口)。
  • 来自邻居的UDLD消息中包含的交换机/端口生成者对,与自己使用的交换机/端口生成者对相同。表示这是一个自环端口。
  • 交换机只检测到了一个邻居,但邻居UDLD消息表示它检测到的邻居列表中包含多于一对的交换机/端口对。这表明共享介质互连性能有问题,不能提供所有连接设备间的完全可见性。
 
若检测到上述任意现象,UDLD就会声明这条链路是单向的,并将端口置为err-disable状态。
 
此外,在端口没有关闭的情况下,如果丢失了所有的入向UDLD消息,也表明有单向链路问题。然而这种现象并不总是表示单向链路的可靠迹象。例如,假设两台交换机之间使用一对金属/光纤介质转换器互连。如果一台交换机已关闭,另一台交换机并不会发生链路关闭事件;只是发现不再收到UDLD消息。这时候如果认为链路已经成为单向的,就不对了。
 
因此UDLD对于突然无法收到UDLD消息,有两种操作模式。在正常模式中,如果不再收到UDLD消息,交换机会尝试与邻居重连(8次),如果尝试失败,UDLD不采取操作。特别是,不再收到UDLD消息的端口会保持启用状态。在激进模式中,如果不再收到UDLD消息,交换机会进行8次尝试与其邻居重连,如果尝试失败,UDLD会将端口置为err-disable状态。正常和激进模式之间的区别在于交换机对于突然丢失入向UDLD消息所作出的响应,这种现象隐含暗示了可能出现单向链路的情况。注意如果明确检测到前文描述的三种单向链路现象,正常和激进模式都会将端口置为err-disable状态。
 
工程师可以在全局启用UDLD,或基于端口启用UDLD,两台互连设备上都需要启用。全局UDLD配置只应用于光纤端口;基于端口的UDLD配置无论介质如何都可以启用。UDLD在全局使用udld {enable | aggressive} 命令启用,enable关键字表示正常模式,而aggressive关键字表示激进模式。在端口上,使用udld port [aggressive] 命令启用UDLD。如果省略了aggressive关键字,就表示使用正常模式。UDLD的运行状态中包含端口信息、检测到的邻居,以及邻居状态,工程师可以使用命令show udld 和show udld neighbors进行查看。如果UDLD在检测到单向链路条件后,将端口置为了err-disable状态,除了关闭再启用外,工程师也可以在特权EXEC模式中使用udld reset命令重置端口。
 
STP环路防护是一项附加逻辑,与点到点链路上的根端口和替换端口接收BPDU有关。在单向链路上,这些端口可能会从根端口或替换端口变为指定端口,进而创建交换环路。STP环路防护特性认为在根端口和替换端口收到BPDU后,在一个正常工作的网络中,这些端口不可能在不关闭的前提下突然停止接收BPDU。根端口和替换端口突然无法收到入向BPDU,表明可能出现了单向链路的情况。
 
遵循此逻辑.STP坏路防护机制能够防止根端口和替换端口由于不再收到入向BPDU而变为指定端口。如果这些端口不再收到BPDU.当端口上保存的BPDU超时后.坏路防护特性会将其置为坏路不一致的阻塞状态。再次开始接收BPDU后•端口将自动移出此状态。
 
工程师可以在全局启用环路防护特性.也可以基于端口启用.这是一种本地保护机制(即不要求其他交换机也配置坏路防护)。如果工程师使用全局命spanning-tree loopguard default來激活坏路防护特性.它会自动保护交换机上点到点链路类型的所有根端口和替换端口。全局配置的环路防护特性并不保护共享类型链路上的端口。工程师也可以使用命令spanning-tree guard loop基于端口配置.此时可以将该特性应用于共享链路上的端口。
 
网桥保障只适用于RPVST+和MST.且只用于点到点链路.是坏路防护特性所用理念的进一步的扩展。网桥保障特性修改了发送BPDU的规则。端口上启用了网桥保障特性时,端口总是以Hello间隔发送BPDU.无论它是根端口、指定端口、替换端口.还是备用端口。BPDU实际上成为了一对互连交换机之间的Hello机制。网桥保障机制一一被保护的端口必须要能够接收BPDU。如果收不到BPDU的话,端口将被置为BA不一致阻塞状态.直到再次开始接收BPDU。除了单向链路.当交换机发生故障.不再参与RPVST+/MST (完全停止处理和发送BPDU).而是完全开启它们的端口时.网桥保障特性也能够在这种时刻预防坏路的生成。在本书写作时.特定的Catalyst 6500和Nexus「000平台能够支持网桥保障特性。在Catalyst 6500系列设备匕配置该特性时,要求既要在全局使用命令spanning-tree bridge assurance进行配置.也要在连接其他交换机的STP点到点链路类型的端口上使用 接口命令spanning-tree portfast network來激活。邻居设备上必须也配置使用网桥保障特性。
 
争议机制是另一种用来检测单向链路的标准化方式。它使用RST标志字段和MSTBPDU中编码的信息,即转发BPDU的那个端口的角色和状态。操作原则非常简单:如果端口从声明为指定学习状态或指定转发状态的端口上收到了一个次优BPDU,它自己将进入丢弃状态。Cisco也在RPVST+中应用了争议机制。传统的STP/PVST+不支持争议机制,因为这些STP版本没有将端口角色和状态编码到BPDU中。争议机制是RSTP/MST的组成部分,无须配置。
 
 
 
 
 
 
 
 
 
 
 

STP-17-对抗单向链路问题的更多相关文章

  1. 1.二层常用技术-STP

    1.STP定义: STP(Spanning Tree Protocol)是生成树协议的英文缩写.STP在IEEE 802.1D文档中定义,该协议的原理是按照树的结构来构造网络拓扑,消除网络中的环路,避 ...

  2. 计算机网路中CDP,LLDP,STP的详解

    CDP,LLDP,STP知识详解 (1) CDP CDP(Cisco Discovery Protoco:Cisco发现协议)是Cisco专有的用来发现邻接点的协议 ,所有的Cisco产品都支持CDP ...

  3. 【交换机】交换机RLDP(环路检测&链路检测)功能介绍及配置说明

    功能简介RLDP 全称是Rapid Link Detection Protocol,是锐捷网络自主开发的一个用于快速检测以太网链路故障的链路协议.一般的以太网链路检测机制都只是利用物理连接的状态,通过 ...

  4. Spanning Tree Protocol (STP) in NetScaler Appliance

    Spanning Tree Protocol (STP) in NetScaler Appliance 来源 https://support.citrix.com/article/CTX112341 ...

  5. STP

    生成树协议  spanning-tree protocol     网络中额外添加的链路连接着路由器和交换机 会引起流量的环路   当一个交换机的连接丢失时 另一条链路能快速地取代失败的链路  并且不 ...

  6. eNSP——STP配置和选路规则

    原理: STP是用来避免数据链路层出现逻辑环路的协议,使用BPDU传递网络信息计算出一根无环的树状网络结构,并阻塞特定端口. 在网络出现故障的时候,STP能快速发现链路故障,并尽快找出另外一条路径进行 ...

  7. 什么是STP

    简介 了解STP 配置STP 相关信息 简介 STP(Spanning Tree Protocol)是运行在交换机上的二层破环协议,环路会导致广播风暴.MAC地址表震荡等后果,STP的主要目的就是确保 ...

  8. STP详解-STP、RSTP、MSTP

    STP详解 01 冗余链路中存在的问题 如图所示LSW1和LSW2之间有两条线路相连,它们之间任何一条链路出现故障另外一条线路可以马上顶替出现故障的那条链路,这样可以很好的解决单链路故障引起的网络中断 ...

  9. MSTP故障处理手册

    H3C核心交换机常见故障定位手册.pdf MSTP故障处理手册.pdf 目 录 1 MSTP故障处理 1.1 广播风暴故障处理 1.1.1 故障描述 1.1.2 故障处理流程 1.1.3 故障处理步骤 ...

随机推荐

  1. OpenCV-Python sift/surf特征匹配与显示

    import cv2 import numpy as np def drawMatchesKnn_cv2(img1_gray,kp1,img2_gray,kp2,goodMatch): h1, w1 ...

  2. JSTL1.0 知识回顾与总结

    JSTL1.0,由四个定制标志库(core,format,xml和sql) 和一对通用标记库验证器(ScriptFreeTLV 和 PermittedTaglibsTLV )组成. 1.基本输出设置操 ...

  3. JSP页面跳转

    JSP页面跳转  RequestDispatcher.forward() 服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到 ...

  4. ASP里面令人震撼地自定义Debug类(VBScript)

    不知道用ASP写代码的朋友是不是和我有一样的感受,ASP中最头疼的就是调试程序的时候不方便 我想可能很多朋友都会用这样的方法“response.write ”,然后输出相关的语句来看看是否正确.前几天 ...

  5. BZOJ1636&&1699:[USACO2007JAN]Balanced Lineup

    浅谈\(RMQ\):https://www.cnblogs.com/AKMer/p/10128219.html 题目传送门:https://lydsy.com/JudgeOnline/problem. ...

  6. keepalived基本应用解析

    原地址:http://blog.csdn.net/moqiang02/article/details/37921051 概念简单认知: Keepalived:它的诞生最初是为ipvs(一些服务,内核中 ...

  7. TFS自定义开发中的反射应用

    最近CM(Configuration Management) 的同事在自定义开发TFS的过程中遇到一个问题. 领导要求快速开发一个工具, 可以自动连接TFS,然后自动Check out一些word文件 ...

  8. HDOJ1150(最小点集覆盖)

    #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> ...

  9. 【转】 Pro Android学习笔记(六五):安全和权限(2):权限和自定义权限

    目录(?)[-] 进程边界 声明和使用权限 AndroidManifestxml的许可设置 自定义权限 运行安全通过两个层面进行保护.进程层面:不同应用运行在不同的进程,每个应用有独自的user ID ...

  10. web攻击之三:SQL注入攻击的种类和防范手段

    观察近来的一些安全事件及其后果,安全专家们已经得到一个结论,这些威胁主要是通过SQL注入造成的.虽然前面有许多文章讨论了SQL注入,但今天所讨论的内容也许可帮助你检查自己的服务器,并采取相应防范措施. ...