单向链路问题是指链路上的两条传输路径中,有一条出现了问题,但并不是两条同时出现问题。这可能是因为线缆错误、切断了一条光纤线缆、拔掉了一根管线、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. linux命令学习笔记(11):nl命令

    nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内容自动的加上行号!其默认的结果与 等等的功能. .命令格式: nl [选项]... [文件]... .命令参数: -b :指定行号 ...

  2. C++ STL源码剖析

    stl_config.h defalloc.h stl_alloc.h memory.cpp stl_construct.h stl_uninitialized.h stl_iterator.h ty ...

  3. [转]sscanf函数具体用法

    大学生程序代写 sscanf 名称: sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: Int sscanf( string str, string fmt, mixed v ...

  4. ACM学习历程—HDU5587 Array(数学 && 二分 && 记忆化 || 数位DP)(BestCoder Round #64 (div.2) 1003)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5587 题目大意就是初始有一个1,然后每次操作都是先在序列后面添加一个0,然后把原序列添加到0后面,然后 ...

  5. plsql developer v12.1的使用

    1.下载oracle客户端: 配置安装路径到PATH,我的是首先定义了一个环境变量ORACLE_CLIENT_PATH(这个路径其实就是官网下来的zip包解压缩后的路径),然后将这个变量附加到PATH ...

  6. Puppet master nginx 扩展提升性能(puppet自动化系列4)

    puppet使用SSL(https)协议来进行通讯,默认情况下,puppet server端使用基于Ruby的WEBRick HTTP服务器.由于WEBRick HTTP服务器在处理agent端的性能 ...

  7. Jenkins配置邮件SMTP(使用QQ邮箱)

    一.QQ邮箱中开启SMTP服务 进入QQ邮箱的设置页面,选择开启POP3/SMTP服务 需要发送一条短信开启服务,成功后,会收到一个密码,一定要截图.复制密码保存好 二.Jenkins中配置SMTP ...

  8. cdh 安装组件 异常总结

    hive 启动 要 把mysql的jar包放到/opt/cloudera/parcels/CDH-5.9.3-1.cdh5.9.3.p0.4/lib/hive/lib 下 假设有3个节点就要放3次

  9. 特征降维之SVD分解

    奇异值分解.特征值分解是一个提取矩阵特征很不错的方法,但是它只是对方阵而言的,在现实的世界中,我们看到的大部分矩阵都不是方阵,比如说有N个学生,每个学生有M科成绩,这样形成的一个N * M的矩阵就不可 ...

  10. WSDL入门

    WSDL: 网络服务描述语言, 是Web Service的描述语言,它全名:Web Services Description Language,是一门基于 XML 的语言,用于描述 Web Servi ...