网络设计者很可能并不打算让终端用户在用于连接终端用户设备的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. Agc017_E Jigsaw

    传送门 题目大意 有$n$块拼图,每一块都由左中右三个部分组成,每块拼图中间部分是高为$H$的长方形,对于第$i$块品推左侧是高为$A_i$距离底部为$C_i$的长方体,右侧是高位$B_i$距底部为$ ...

  2. 集合划分状压dp

    给一个 $n$ 个点 $m$ 条边的无向图,每条边有 $p_i$ 的概率消失,求图连通的概率 $n \leq 9$ sol: 我们考虑一个 $dp$ $f_{(i,S)}$ 表示只考虑前 $i$ 条边 ...

  3. 如何自动生成和安装requirements.txt依赖

    在查看别人的Python项目时,经常会看到一个requirements.txt文件,里面记录了当前程序的所有依赖包及其精确版本号.这个文件有点类似与Rails的Gemfile.其作用是用来在另一台PC ...

  4. jraiser小结

    1 合并小结 jrcpl F:\site\js\app --settings package.settings 上面代码的意思,就是说,根据package.settings文件,来对app文件夹下的所 ...

  5. 安装phpredis

    1.下载安装包 https://github.com/nicolasff/phpredis/archive/2.2.5.tar.gz 2.解压到~目录 tar -xvf phpredis-2.2.5. ...

  6. 通过gitweb管理Puppet配置(nginx版本+lighttpd版)

    Puppet路径为:/etc/puppet 软件版本:gitweb-1.7.1-3.el6_4.1.noarch git-1.7.1-3.el6_4.1.x86_64 fcgi-2.4.0-12.el ...

  7. 集合对象与自定义javabean对象接收数据库查询的数据 (基础知识扫盲)

    一.集合对象(List,Map,数组)等对象接收数据库查询的记录,如果没有一条记录,就得到的内容为空的集合,不是null: 例如:List查不到记录得到的就是size=0的list 二.自定义的jav ...

  8. 安装 ambaria

    hadoop安装 wget http://public-repo-1.hortonworks.com/ambari/centos6/1.x/updates/1.2.4.9/ambari.repo cp ...

  9. Antiprime数-数论

    题目描述 Description 如果一个自然数n满足:所有小于它的自然数的约数个数都小于n的约数个数,则称n是一个Antiprime数.譬如:1.2.4.5.12.24都是Antiprime数.   ...

  10. 项目一:第六天 WebService写接口 和CXF框架

    1 课程计划 1. webService入门(了解) 2. 基于jdk1.7开发webservice服务(了解) 3. Apache CXF框架入门(掌握) 4. 基于CXF框架搭建CRM系统(掌握) ...