STP Toolkit

快速收敛:

  • Port Fast

生成树安全:

  • Root Guard
  • BPDU Guard
  • BPDU Filter
  • Port Security

防环:

  • Loop Guard

Port Fast

该功能的配置分为全局和接口配置,在全局模式下,交换机的所有Access端口均会启用Port Fast功能。端口配置只对单一端口生效。

该功能不能配置在Trunk链路上,若配置在Trunk链路上,极有可能导致生成树环路的产生。

BPDU Filter

该功能同样也有全局与接口配置:

  • 全局(spanning-tree portfast bpdufilter default——Cisco命令)
  • 接口(spanning-tree bpdufilter enable——Cisco命令)

全局配置只会在启用了Port Fast功能的接口上启用,在全局模式下,交换机不会过滤传入的BPDU,但会过滤大多数(并不是全部)传出的BPDU。

当端口启动时,会发出一些BPDU,若收到了BPDU,Port Fast和BPDU Filter功能将被关闭,交换机将参与生成树计算。

接口配置将无条件的过滤传入和传出的BPDU,无论是PortFast状态还是Access或Trunk模式。这相当于在该端口关闭了STP,这十分危险。

BPDU Guard

该功能阻止端口接受BPDU。如果端口仍然受到BPDU,则将该端口置于err-disabled状态,如果配置的Port Fast端口收到了BPDU,则说明存在无效配置,该功能提供了对无效配置的安全响应,因为管理员需要手动设置才能才能将端口重新投入使用(该功能也能够防止外来的恶意BPDU攻击)。

该功能具有两种配置方法:

  • 全局配置(spanning-tree portfast bpduguard default——Cisco命令)

    • 启用状态取决于Port Fast状态。
  • 接口配置(spanning-tree bpduguard enable——Cisco命令)
    • 无条件启用BPDU Guard,无论是PortFast状态还是Access或Trunk模式。

有两种办法可以将端口从err-disabled状态转变为正常状态

  • 手动开启端口(no shutdown)
  • 使用 errdisable recovery cause bpduguard,配置err-disable状态自动恢复。 默认恢复间隔为 300 秒,但可以使用 errdisable recovery interval 命令更改。

Root Guard

根保护功能只能启用在指定端口上,该功能能够防止外来的恶意BPDU攻击。

  • 如果交换机在启用根保护的端口上收到更优的BPDU,根保护将会把端口移动到根不一致(root-inconsistent)的STP状态。
  • 这种根不一致状态处于实际上是Listening状态,没有流量能够通过这个端口转发,通过这个方式来守护根桥的位置。

Root Guard vs BPDU Guard

如果设备上启用了Port Fast,那么BPDU Guard会在接受BPDU时禁用此端口。它有效的禁用了此端口后面的设备参与STP。只有手动重新启用阻塞状态的端口,或者配置自动恢复的时间。

而Root Guard的作用是,只要设备不尝试成为根,就允许设备参与STP,该功能对端口阻塞的恢复是自动的,一旦违规设备停止发送更优的BPDU,端口就会被恢复。

Loop Guard

STP将物理拓扑上的冗余分解为无环路、树状拓扑。STP的最大问题是某些软件故障会导致它失败。

在下图的情况中,交换机B发送的BPDU无法到达交换机C,交换机C的端口转变为指定端口并开始转发数据,则形成了网络环路。

如果开启了Loop Guard功能,交换机C上的端口将在Max_age计时器到达后转换为loop-inconsistent的状态,该状态无法通过用户流量,自然也就不会产生环路(loop-inconsistent状态实际上就是Blocking状态)。该功能应开启在根端口和备用端口上。

生成树Toolkit的更多相关文章

  1. 图的生成树(森林)(克鲁斯卡尔Kruskal算法和普里姆Prim算法)、以及并查集的使用

    图的连通性问题:无向图的连通分量和生成树,所有顶点均由边连接在一起,但不存在回路的图. 设图 G=(V, E) 是个连通图,当从图任一顶点出发遍历图G 时,将边集 E(G) 分成两个集合 T(G) 和 ...

  2. 使用 Windows Phone Toolkit 的 Tilt 效果

    上一篇文章分享了如何使控件具有摁下的效果(在WindowsPhone中使控件具有Tilt效果),实现方式是在项目中添加新的类文件,其实,如果项目引用了Windows Phone Toolkit,那么就 ...

  3. Coding4Fun Toolkit支持本地化解决办法

    在项目中需要使用Coding4Fun Toolkit中的TimePicker控件, 1. 但是在中文系统下显示的却是英文: 2. 最后发现,需要在源代码中添加中文资源,并重新编译出包含中文语言的dll ...

  4. Windows Phone Toolkit 的 DatePicker 控件本地化的问题

    用到 The Windows Phone Toolkit 里的 DatePicker 控件,但是多语言的时候出现了问题: 手机设置为中文,虽然月份跟星期有效,但是 Title 却还是默认的语言:CHO ...

  5. C# extended toolkit propertygrid 隐藏部分属性

    该方法是通过更改ShowDetail的状态来实现的隐藏属性 首先在引用里右键 管理NuGet程序包 查找extended wpf toolkit 并安装 然后在MainWindow.xaml添加引用 ...

  6. 【ToolKit】轻量级JS库

    优点: 丢弃了一些不常用的方法(jQuery.fn):slideUp.fadeIn.animate等: 新增获取子节点的方法(ToolKit.fn):firstChild,lastChild等: 新增 ...

  7. C# 使用Silverlight toolkit Chart

    一.基础介绍 Silverlight ToolKit是微软发布的基于Microsoft-Public License(MS-PL)许可协议的控件集.MS-PL许可协议允许商业或非商业的发布,所以我们可 ...

  8. NOIP 2013 货车运输 最大生成树加DFS巧妙AC

    #include<set> #include<map> #include<cmath> #include<queue> #include<stac ...

  9. Enhanced Mitigation Experience Toolkit 软件安全性强化工具

    Enhanced Mitigation Experience Toolkit软件是微软为应对互联网中层出不穷的漏洞而推出的一款安全工具,可以在Window Update未获取到补丁前,对系统进行保护. ...

随机推荐

  1. java Excel 简单工具

    我就简单的分享一下我常用的工具 这次由于个人问题工具注释全部乱码差点无法还原,也是为了防止数据丢失后期找不到再次保留方法把. 调用工具个别方法 <dependency> <group ...

  2. JUC之认识ConcurrentHashMap

    ConcurrentHashMap为什么广泛使用?回答这个问题之前先要回忆下几个基本的概念涉及hash的几个数据结构及锁优化(关于锁优化参考JMM之Java中锁概念的分类总结 - 池塘里洗澡的鸭子 - ...

  3. MASA Framework - DDD设计(2)

    目录 MASA Framework - 整体设计思路 MASA Framework - EventBus设计 MASA Framework - MASA Framework - DDD设计(1) MA ...

  4. Vue 源码解读(3)—— 响应式原理

    前言 上一篇文章 Vue 源码解读(2)-- Vue 初始化过程 详细讲解了 Vue 的初始化过程,明白了 new Vue(options) 都做了什么,其中关于 数据响应式 的实现用一句话简单的带过 ...

  5. Centos 6 DNS 配置 解决 Unknown host

    测试服务器Maven 打包时遇到了如下的错误 maven.aliyun.com: Name or service not known: Unknown host maven.aliyun.com: N ...

  6. css文字超出指定行数显示省略号

    display: -webkit-box; overflow: hidden; word-break: break-all; /* break-all(允许在单词内换行.) */ text-overf ...

  7. 【C# TAP 异步编程】四、SynchronizationContext 同步上下文|ExecutionContext

    一.同步上下文(SynchronizationContext)概述 由来 多线程程序在.net框架出现之前就已经存在了.这些程序通常需要一个线程将一个工作单元传递给另一个线程.Windows程序以消息 ...

  8. (二)ECMA 335 解析 /ECMA 334

    C#被ECMA组织,定义为了<ECMA334>标准化语言. 什么概念? 比如说,上一次成为ECMA标准的语言是Javascript.即<ECMA262>标准. <ECMA ...

  9. spring 使用depends-on, lazy-init, defalut-lazy-init

    depends-on 如果一个bean是另一个bean的依赖, 可以使用ref属性或者<ref/>标签来实现依赖 那么被依赖bean一定是要比依赖bean率先实例化, 而depends-o ...

  10. Python之ini配置文件详解

    INI介绍 INI是英文"初始化"(initialization)的缩写,被用来对操作系统或特定程序初始化或进行参数设置.由节(section). 键(key).值(value)构 ...