网络设计者很可能并不打算让终端用户在用于连接终端用户设备的Access端口上连接交换机。然而,这种事情有时却会发生——例如,有人可能需要大厅的会议室里有更多的端口,于是他觉得他可以把一个小的便宜的交换机接到墙上的端口中
 
STP拓扑可能会因为这些意外增加到网络中的交换机而发生变化。例如,新交换机可能拥有最低的网桥ID并成为根。为了避免这种情况,工程师可以在Access端口上启用BPDU防护和根防护,用来监控入向BPDU——不应该进入端口的BPDU,因为这些端口应该用于终端用户设备。这两个功能可以一起使用,其操作如下。
  • BPDU防护:基于每个端口启用,或使启用了PortFast的端口全局启用;在收到BPDU时立刻由于错误而禁用端口。
  • 根防护:基于每个端口启用;忽略收到的更优BPDU,以防止此端口成为根端口。在收到更优BPDU时,此交换机将端口置为根不一致阻塞状态,在停止收到更优BPDU之前,停止转发和接收数据帧。
 
工程师可以基于每个端口,使用接口命令spanning-tree bpduguard enable无条件启用BPDU防护,也可以在全局使用全局命令spanning-tree portfast bpduguard default启用。然而,全局命令只会在启用了PortFast特性的端口上启用BPDU防护(在端口上配置PortFast特性的方法对此没有影响)。在全局启用了BPDU防护,但特定PortFast端口上又需要禁用BPDU防护的情况下,工程师可以使用接口命令spanning-tree bpduguard disable。
 
PortFast和BPDU防护之间的关系常令人混淆。事实上,这两个机制之间唯一的依赖关系在于在全局配置的BPDU防护特性。此时,启用了PortFast的端口上会自动启用BPDU防护特性;换句话说,在全局启用BPDU防护特性的话,相当于在所有边界端口上启用该特性。除了这个特定的配置依赖关系外,PortFast和BPDU防护是完全独立的。在一个端口上,无论PortFast的配置是怎样的,工程师都可以配置BPDU防护。而且无论BPDU防护是如何配置的,工程师也都可以端口或全局配置PortFast。
 
无论BPDU防护是如何在端口上启用的,当启用了BPDU防护的端口收到了BPDU时,它会被置为err-disable状态。
 
工程师只能基于端口,使用接口配置命令spanning-tree guard root来启用根防护机制。
 
对于BPDU防护,除非工程师添加额外的命令,否则端口不能从err-disable状态中恢复。可以让交换机在一定的时间后从err-disable状态变为启用状态。对于根防护,如果在最大老化消息时间或RSTP中3倍Hello内没有再次收到非预期的更优BPDU(相当于超时),端口将自动恢复。
 
BPDU过滤特性考虑的是在端口上停止发送BPDU,以及可选地停止接收BPDU。其行为根据激活方式有所不同。
 
  • 如果在全局使用命令spanning-tree portfast bpdufilter default进行配置,BPDU过滤特性只应用于边界端口(即启用了PortFast的端口)。这些端口连接了设备后,它们会以Hello间隔来发送BPDU;然而,如果在接下来10个Hello间隔期间内,未从直连设备收到BPDU,端口就会停止发送BPDU。因此,端口只会发送11个BPDU(在端口启用后立即发送1个,在10个Hello间隔之间发送10个),然后停止发送BPDU。在此之后端口仍准备好处理任何入向BPDU。如果收到了BPDU,在第1个十倍Hello间隔之间或之后的任意时间,这个端口上就可以有选择地禁用BPDU过滤特性,端口会根据正常的STP规则开始发送和接收BPDU。端口被断开又重连之后,BPDU过滤特性将再次生效。如果在全局配置了BPDU过滤特性,但某个边界端口上不希望启用,工程师可以使用命令spanning-tree bpdufilter disable来排除此端口。
  • 如果在端口上使用命令spanning-tree bpdu filter enable进行配置,BPDU过滤特性将使端口无条件地停止发送和接收BPDU。
 
BPDU过滤的使用依赖于它的配置方式。全局配置的BPDU过滤特性,能够使边界端口在特定时间后停止发送BPDU,因为向不使用STP的终端设备发送BPDU是没有任何用处的。如果因为收到BPDU,而发现端口上其实连接了一台交换机,端口上的BPDU过滤特性就会被禁用,直到端口关闭再启用(通过断开/重连链路,或通过关闭和再次开启)。这在使用多个Access端口连接终端设备的网络中,不得不算是一项优化。
 
直接在端口上配置BPDU过滤特性,会使端口停止发送和处理收到的BPDU。端口不主动发送BPDU,同时默默丢弃收到的BPDU。这种配置能够避免端口上连接的其他交换机参与STP。通常,工程师使用这个特性,将网络网络分隔为独立的STP域。因为在这种情况中,这些端口上并不进行STP操作,如果STP域之间使用冗余链路互连,就不能避免交换环路的产生。因此管理员需要确保STP域之间没有物理环路。
 
很多人对于PortFast和BPDU过滤的依赖关系也常有混淆。它们的依赖关系实际上等同于BPDU防护和PortFast的关系。BPDU过滤和PortFast在配置上具有的依赖关系是:唯一一种情况就是在全局配置了BPDU过滤特性的环境中,因为这会自动在所有边界端口(即启用PortFast的端口)上启用BPDU过滤特性。如果因为全局启用了BPDU过滤特性,某个端口上才启用了该特性,在这种情况下,如果端口(必为边界端口)收到了一个BPDU,它将失去边界状态,因为全局BPDU过滤特性的配置应用于边界端口,端口上的BPDU过滤也将被禁用。除此之外,BPDU过滤和BPDU防护之间没有其他的依赖关系。
 
工程师可以把全局配置的BPDU过滤和BPDU防护结合在一起(BPDU防护可以全局配置,也可以基于端口配置)。如果使用了BPDU过滤和BPDU防护保护的端口收到了一个BPDU,它会自动进入err-disable状态。
另一方面,把端口配置的BPDU过滤和BPDU防护结合起来并没有意义。因为端口会丢弃所有收到的BPDU,而BPDU防护将永远看不到BPDU,意味着它永远不能将端口置为err-disable状态。
 
 
 
 
 
 

STP-16-根防护,BPDU防护和BPDU过滤的更多相关文章

  1. 2.二层常用技术-Portfast和BPDU Guard、BPDU Filter

    PortFast (生成树端口加速) 1.在交换机上使用portfast命令,可以防止出现由于STP的收敛时间太长,导致主机的DHCP请求超时,从而使主机不能接收到DHCP地址的问题. 确保有一台服务 ...

  2. php检查漏洞防护补丁-防护XSS,SQL,文件包含等多种高危漏洞

    /** * 通用漏洞防护补丁 * 功能说明:防护XSS,SQL,代码执行,文件包含等多种高危漏洞 * Class CheckRequestServer */ class CheckRequestSer ...

  3. BPDU报文(传统STP)

    BPDU字段包含的信息: Protocol ID 协议ID Version STP版本(三种) STP(802.1D)传统生成树 值为0 RSTP(.1W)快速生成树 值为2 MSTP(.1S)多生成 ...

  4. 网络初级篇之STP(BPDU详解与STP故障恢复)

    一.BPDU包含的参数 通过STP的原理,我们学习了红色部分的字段(根桥ID.根路径开销.桥ID.端口ID).现在讲解一下黄色部分的字段(类型.计时器.老化时间.访问时间) 1.(BPDU Type) ...

  5. BPDU报文(RSTP)

    与STP 的BPDU报文格式相同,就是在flags字段报文中间几位得到应用 主要原理:利用flages位中的Proposal与Agreement来进行协商,从而快速从 discarding 转成 fo ...

  6. STP-7-RSTP的BPDU格式和处理方式的改变

    RSTP只使用一种BPDU,协议版本字段为2(STP为0). STP标志字段8位只使用了两位:TC(拓扑变化)和TCA(拓扑变化确认). RSTP也使用了其余6位:提议位,端口角色位,学习位,转发位, ...

  7. STP 根桥、根port、指定port是怎样选举的

    学习CCNA过程中,对交换机的根桥.跟port以及指定port选举有些迷糊.也度娘了一番,总认为一部分人解释的不够全面精细.通过细致研究终于有了自己的理解,分享给大家,假设纰漏,欢迎指正. STP收敛 ...

  8. STP 根桥、根端口、指定端口是如何选举的

    学习HCIA过程中,对交换机的根桥.跟端口以及指定端口选举有些迷糊,也度娘了一番,总觉得一部分人解释的不够全面精细.通过仔细研究最终有了自己的理解,分享给大家,如果纰漏,欢迎指正. STP收敛过程: ...

  9. BPDU、Hybrid、MSTP

    BPDU.Hybrid.MSTP      一.BPDU         1)BPDU概述         2)BPDU类型         3)BPDU报文字段      二.Hybrid     ...

随机推荐

  1. linux命令学习笔记(37):date命令

    在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令 来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便. .命令格式: date [参数 ...

  2. tensorflow中张量(tensor)的属性——维数(阶)、形状和数据类型

    tensorflow的命名来源于本身的运行原理,tensor(张量)意味着N维数组,flow(流)意味着基于数据流图的计算,所以tensorflow字面理解为张量从流图的一端流动到另一端的计算过程. ...

  3. 【JSON解析】JSON解析

    前三篇博客分别介绍了xml的三种解析方法,分别是SAX,DOM,PULL解析XML,兴趣的朋友可以去看一下这[XML解析(一)]SAX解析XML,[XML解析(二)]DOM解析XML,[XML解析(三 ...

  4. Linux环境下,开启tomcat时报transport error 202: bind failed: 地址已在使用

    转载自:http://blog.csdn.net/mooncom/article/details/61913813 问题描述:今天我在Linux环境下配置tomcat,在tomcat/conf下的se ...

  5. Poj 2299 Ultra-QuickSort(归并排序求逆序数)

    一.题意 给定数组,求交换几次相邻元素能是数组有序. 二.题解 刚开始以为是水题,心想这不就是简单的冒泡排序么.但是毫无疑问地超时了,因为题目中n<500000,而冒泡排序总的平均时间复杂度为, ...

  6. Python:os.walk()和os.path.walk()用法

    转于:https://www.cnblogs.com/zmlctt/p/4222621.html 博主:zmlctt 一.os.walk() 函数声明:os.walk(top,topdown=True ...

  7. 问题13:如何在for语句中迭代多个可迭代的对象

    from random import randint a1 = [randint(10, 50) for _ in range(5)] a2 = [randint(10, 50) for _ in r ...

  8. 【转】 Pro Android学习笔记(七十):HTTP服务(4):SOAP/JSON/XML、异常

    目录(?)[-] SOAP JSON和XMLPullParser Exception处理 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件,转载须注明出处:http://blog. ...

  9. BarTender SDK 实现调用模板条码打印

    Demo:MyZebraPrint 基于BatTender .Net SDK 实现调用模板进行条码打印 有需要的朋友可以拿去研究下 在已经安装了BatTender10.1的电脑里测试通过. 下载地址: ...

  10. LAMP 1.2 Apache编译安装

    1.下载                                                                                                 ...