BPDU Filtering的意义(BPDU Filtering在全局配置与接口配置上的区别)

理解并演示:BPDU Filtering的意义(BPDU Filtering在全局配置与接口配置上的区别

目标:理解BPDU Filtering的意义(BPDU Filtering在全局配置与接口配置上的区别)

取证:测试BPDU Filtering在全局模式下的配置效果

测试BPDUFiltering在接口模式下的配置效果

一个有趣的现象:全局启动BPUD过滤,有某个时候会有少量的BPDU报文被发送。

 

理解BPDU Filtering的意义(BPDU Filtering在全局配置与接口配置上的区别)

BPDU Filtering也叫BPDU过滤,它的意义是在某个端口上过滤BPDU的发送和接收,在这里需先要来理解一个前提:任何一个加入到生成树的交换机端口,都会发送并接收到相应的BPDU报文,其中包括被规划为portfast的端口,它也会连续的(2秒间隔)向交换网络中发送BPDU报文(这是一个不争的事实在,用户可以取证portfast端口得到这个事实)。但是在Portfast端口上发送BPDU有必要吗?没有,为什么呢?因为portfast连接都是主机,主机是不可能与交换机形成环路的,所以portfast是没必要向主机去发送BPDU报文。反过来讲portfast端口也没必要接收BPDU报文,为什么呢?桌面主机发送BPDU报文是没有意义的,但是BPDU Filtering对portfast端口收到BPDU报文时的处理方式就没有BPDU Guard那么极端,BPDUGurad是直接关闭端口。而BPDU filtering将由于不同位置的配置,产生不同的处理行为,BPDU Filtering的配置也分为全局配置和在接口上的配置,不同位置的配置将产生不同的效果。

BPDU Filtering在全局配置

在全局模式下使用spanning-tree portfast bpdufilter default指令来启动BPDU Filtering,通过指令可以看出,  BPDU Filtering在全局模式下是需要依赖于portfast端口为基础来实现的,这一点和BPDUGruad在全局模式下的配置前提是相同的。如果用户在全局模式下启动的是BPDU Filtering,在这个时候portfast端口就不会发送BPDU报文了。如果此时当portfast端口收到BPDU报文时该端口会立即回退到常规的生成树端口,并参与生成树的过程。关于这一点请参看演示:BPDU Filtering在全局与接口上的配置。

 BPDU Filtering在接口上的配置:

用户可以在接口模式下使用spanning-tree bpdufilter enable指令来启动BPDUFiltering,注意在接口模式下启动BPDU Filtering功能时可以不依赖于portfast端口,然后在该接口上将不再发送和接收BPDU。这里的这个“该接口上将不再发送和接收BPDU”说明一下,就一般而言,不发送BPDU,一般都比较好理解,而这里所谓的不接收BPDUnot receive BPDUs),不如说成是忽略(ignore,又或者表达为不处理接收到的BPDU,将更为精确的表达接口级BPDU Filtering的功能,为什么这样讲?

如图所示,交换机S1的E1/0接口,可能正收到交换机S3的E1/0接口所发送的BPDU报文,该报文也能成功的到达S1的E1/0接口,为什么能到达?因为交换机S3发送BPDU报文时目标的MAC地址是一个众所周知的组播MAC(0180.c200.0000),就是众所周知的组播MAC表示所有开启STP功能的设备都能接收到相关的BPDU报文,因为该目标MAC也叫生成树的多播MAC。只是说,当S3发来的BPDU报文到达S1的E1/0接口时,S1由于在接口上启动了BPDU的filtering功能,它(S1)将忽略S3发来的BPDU。或者叫接收而不处理。关于这一点请参看演示:BPDU Filtering在全局与接口上的配置。

注意:在接口上配置BPDU Filtering与在全局配置BPDU Filtering的意义是有很大区别的,在全局配置的BPDU Filtering首先要依赖于portfast端口,当收到BPDU时,全局的BPDUFiltering是采取回退为正常生成树端口的处理方式;而接口上的BPDU不需要依赖于portfast端口,并忽略(ignore)收到的BPDU报文,此时相当于在具体的某个接口上禁用了生成树功能,如果管理员没有对二层网络进行合理的设计,可能就会存在潜在的环路,所以思科强烈建议并推荐用户在全局模式上启动BPDU Filtering功能。

 

演示:BPDU Filtering在全局与接口上的配置

演示目标:

ü  测试BPDU Filtering在全局模式下的配置效果

ü  测试BPDU Filtering在接口模式下的配置效果

ü  一个有趣的现象:全局启动BPUD过滤,有某个时候会有少量的BPDU报文被发送。

演示环境:如图所示

演示背景:首先还是在S2和S3的交换机接口上将相应接口的交换机功能关闭(no switchport),这样就可以暂时禁止S2和S3向交换机S1发送BPDU,为测试BPDU Filtering功能做好准备工作,然后将交换机S1的E0/0-3的接口范围配置为接入模式,并在这些端口上全局的启动Portfast功能,然后通过协议分析器来取证portfast是否会发送BPDU报文,然后再在portfast端口之上启动BPDU Filtering,再来取证portfast端口是否会继续发送BPDU报文,然后在交换机S2的E0/0端口上开启交换功能(switchport),使其发送BPDU报文给S1,再观察S1的E0/0在启动BPDU Filtering的情况下,是否会将portfast端口回退到常规的生成树端口状态。最后来测试接口BPDU Filtering的配置效果,确定它是否需要依赖于portfast端口而存在,并确定接口上的BPDU过滤与全局的BPDU过滤的差异。

演示步骤:

第一步:首先将交换机S1的e0/0-3和e1/0-3的接口全部配置为交换机的接入模式端口,然后将交换机S1的所有接入模式的端口规划为portfast端口,具体配置如下,为了测试方便,建议现在就将S2和S3连接交换机S1的端口交换功能关闭(no switchport),相当于暂时禁止S2和S3向S1发送BPDU报文。

配置交换机S1的所有端口到接入模式端:

S1(config)#interfacerange e0/0-3

S1(config-if-range)#switchportmode access

S1(config-if-range)#noshutdown

S1(config-if-range)#exit

S1(config)#interfacerange e1/0-3

S1(config-if-range)#switchportmode access

S1(config-if-range)#noshutdown

S1(config-if-range)#exit

配置交换机S1的所有接入端口为portfast端口:

S1(config)#spanning-treeportfast default     * 规划所有接入模式端口为portfast端口

%Warning: this command enables portfast by default onall interfaces. You   *交换机系统提示一些配置portfast后的注意事项

 should nowdisable portfast explicitly on switched ports leading to hubs,

 switches andbridges as they may create temporary bridging loops.

完成上述配置后,可以通过在交换机S1上执行show spanning-tree来查看当前所有的接入模式端口是否成为portfast端口(也叫边缘端口),如图所示,所有接入模式的端口已经成为边缘端口。

此时,用户可以通过协议分析器,去捕获分析S1任意一个被启动了portfast端口上的数据帧,如图所示,可以清晰的看出在Portfast端口上,仍然不断的以2秒为一个间隔发送BPDU报文,这将为测试BPDUFilitering功能做好准备。

接下来在全局模式下,启动BPDUFiltering功能,具体配置如下,当完成BPDU过滤功能后,可以通过showspanning-tree summary来查看BPDU的过滤功能是否被启动,如图所示,明显可看出BPDU过滤功能已经被启动。

在全局模式下启动BPDU Filtering功能:

S1(config)#spanning-treeportfast bpdufilter default

在完成上面的配置后,再次使有协议分析器软件捕获交换机S1的E0/0所产生的数据帧,可发现S1的E0/0接口不再发送任何BPDU报文,证明BPDU Filtering生效,至少证明了BPDU过滤功能将禁止portfast端口再发送BPDU报文。

接下来,需要来取证BPDU过滤功能在收到BPDU报文时的处理行为,现在到交换机S2上的 E0/0接口启动交换机功能(switchport),相当于是让S2的E0/0向S1的E0/0发送BPDU报文。然后使用协议分析器去捕获S1的E0/0接口的数据帧。会如图所示,可以看到S1收到 S2(aa:bb:cc:00:02:00)发来的BDPU报文,并开始发送自己(S1)的BPDU报文。

然后可以在S1上通过执行showspanning-tree指令来查看当前生成树几个端口的状态,如图所示,交换机S1的E0/0由于收到了BPDU报文,BPDU过滤功能将其边缘端口(portfast)的角色回退到常规的生成树端口角色。但是它并不会像BPDUGruad那样极端的半闭端口,如图所示,S1的E0/0端口仍然处于Up状态。

第二步:现在来检测BPDU Filtering在接口模式下的效果,首先请将S1的E1/0从portfast端口的配置中脱离出来,然后再到该端口下启动接口级别的BPDU过滤功能,这两项具体的配置任务如下所示:

将交换机S1E1/0接口从portfast中脱离:

S1(config)#interfacee1/0

S1(config-if)#spanning-treeportfast disable   * 禁用该端口的portfast功能

S1(config-if)#noshutdown

S1(config-if)#exit

在交换机S1E1/0接口上启动BPDU的过滤功能:

S1(config)#interfacee1/0

S1(config-if)#spanning-treebpdufilter enable  * 启动BPDU的过滤功能

S1(config-if)#exit

如果此时使用协议分析器捕获交换机S1的E1/0的数据帧,不难发现,在S1的E1/0上不会有任何BPDU数据帧被发送。其实这一点在接口级别的配置和在全局模式的配置的最终效果是一样的,只是说接口级别可以不再依赖于portfast端口而存在。相反在接口级别的BPDU过滤与全局模式的BPDU过滤在收到BPDU报文时的处理方式则完全不一样了,全局模式采取的是回退端口到常规生成树端口,而接口级别则是完全忽略收到的BPDU,将不做任何处理。具体取证过程如下:

在交换机S3的E1/0 端口上启动交换功能(switchport),相当于使其向S1的E1/0接口发送BPDU文,此时会发现如图所示的情况,S1的E1/0接口上会不断的收到S3发来的BPDU报文,但是S1不会对这些报文做任何理采,没有出现S1任何BPDU信息,也就是S1将忽略(ignore)收到的BPDU报文,而且是无声无息的将其ignore掉。由于这种悄无声息的ignore,这个时候在网络可能会出现“一国两公”的局面,也就是一个整体的生成树网络可能存在多个根桥。

第三步:一个有趣的现象:就是用户在全局模式下已经启动了BPDU过滤功能后,就即便是此时某个具体的接口没有收到任何BPDU的报文,然后当这个端口在正式连接进入网络并且BPDU出站过滤开始之前,会有少量的BPDU被发送(Theinterfaces still send a few BPDUs at link-up before the switch begins to filteroutbound BPDUs)。但几秒中后就将进入BPDU过滤状态。

时间: 2024-10-29 19:07:00

BPDU Filtering的意义(BPDU Filtering在全局配置与接口配置上的区别)的相关文章

理解BPDU Filtering的意义(BPDU Filtering在全局配置与接口配置上的区别)

理解BPDU Filtering的意义(BPDU Filtering在全局配置与接口配置上的区别) 理解BPDU Filtering的意义(BPDU Filtering在全局配置与接口配置上的区别)                              本文截自于博主CCNP交换技术稿件内容 BPDU Filtering也叫BPDU过滤,它的意义是在某个端口上过滤BPDU的发送和接收,在这里需先要来理解一个前提:任何一个加入到生成树的交换机端口,都会发送并接收到相应的BPDU报文,其中包括被

理解BPDU Guard的意义(BPDU Guard在全局配置与接口配置上的区别)

理解BPDU Guard的意义(BPDU Guard在全局配置与接口配置上的区别)   本文截自于博主CCNP交换技术稿件内容   BPDU Guard(BPDU保护),简单的讲它的意义就是一个不该接收BPDU的端口,比如被启动了portfast的端口,一旦收到BPDU报文,那么BPDU保护功能将会立即关闭该端口,并将端口状态置为error-disabled状态.BPDU Guard的配置分为全局型的配置和接口级的配置,注意这两种配置将带来一些不同的效果. 全局配置BPDU Guard 全局配置

第五节:SignalR大杂烩(与MVC融合、全局的几个配置、跨域的应用、C/S程序充当Client和Server)

一. 说在前面的话 本节主要在前面章节的基础上补充了几个简单的知识点,比如:第三方调用通过 GlobalHost.ConnectionManager.GetHubContext<MySpecHub1>();来获取Hub对象,那么能不能封装一下不必每次都这么获取呢?再比如SignalR传输是否有大小限制,一下传输10w个字能否传输成功?最后着重整理一下跨域的各种使用情况,结合C/S程序充当客户端和服务器端. 本节内容包括: ①. SignalR与MVC或者WebApi简单的整合. ②. 全局的几

mysql全局权限账户%登录不上ERROR 1045 (28000): Access denied for user &#39;mhz&#39;@&#39;localhost&#39; (using password: YES)

mysql全局权限账户%登录不上ERROR 1045 (28000): Access denied for user 'mhz'@'localhost' (using password: YES) 解决方法: 创建两个相同名的账号,一个主机名为:localhost,一个为:%,如下: 之后,该问题决绝. 同一个账户 要同时存在%帐号或者localhost帐号时, %帐号才起作用 mysql全局权限账户%登录不上ERROR 1045 (28000): Access denied for user

MySQL复制(三)--基于全局事物标识符(GTID)配置复制

基础环境:   主库 从库 服务器IP地址 192.168.10.11 192.168.10.12 版本 5.7.24 5.7.24 已存在的数据库 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | lijiamandb | | mysql | | performance_schema | | sys | | testdb | +--

Help-IntelliJIDEA-2019-基础设置:2. 全局Maven(默认配置)

ylbtech-Help-IntelliJIDEA-2019-基础设置:2. 全局Maven(默认配置) 1.返回顶部 1. 2. 全局Maven(默认配置)具体步骤:顶部工具栏 Configure ->Settings -> Build, Execution, Deployment -> Build Tools -> Maven示例: 理论上只要配置了Maven主目录即可 2. 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 作者:ylbtech出处:htt

Help-IntelliJIDEA-2019-基础设置:1. 全局JDK(默认配置)

ylbtech-Help-IntelliJIDEA-2019-基础设置:1. 全局JDK(默认配置) 1.返回顶部 1. 1. 全局JDK(默认配置)具体步骤:顶部工具栏 Configrure ->Structure for New Project -> Plateform Settings -> SDKs -> JDK 示例: 根据下图步骤设置JDK目录,最后点击OK保存. Configrure ->Structure for New Project -> Proje

【C语言】局部变量、全局变量,局部静态变量,全局静态变量,extern,static的区别

局部变量: 创建在栈区(向下生长),生命周期存在于当前作用域中.     创建时若未初始化,则为随机值. 全局变量: 创建在static区,生命周期一直存在. 创建时若未初始化,则为0. 静态局部变量: 切断了外部链接属性.创建在static区. 创建时若未初始化,则为0. 全局变量和静态变量的存储是放在一块的,初始化了的全局变量和静态变量在一块区域,  未初始化的全局变量和未初始化的静态变量在相邻的另一块区域. 全局静态变量: 切断了外部链接属性,创建在static区,生命周期一直存在. 创建

SAN存储基本原理和配置、以及配置GFS(全局文件系统)

一.存储概述:    存储就是根据不同的应用环境,通过采取合理.安全.有效的方式,将数据保存到某些介质上,并能保证有效的访问:一方面它是数据临时或长期驻留的物理媒介;另一方面,它是保证数据完整安全存放的方式或行为,存储就是把这两个方面结合起来,向客户提供一套数据存放解决方案. 二.常见存储技术:2.1.DAS  直连式存储2.2.NAS  网络技术存储2.3.SAN  存储区域网络(根据数据传输介质的不同又分为 FC_SAN  和 IP_SAN)     2.3.1.FC_SAN   使用光纤传