• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

PVST对接时BPDU报文收发各种情况分析

2020-12-16 发表
  • 1关注
  • 4收藏 4238浏览
倪民 八段
粉丝:12人 关注:0人

组网及说明


组网如上图,下面探究PVST模式下BPDU报文交互的注意事项。

问题描述

我们知道,当生成树为STPRSTPMSTP时,发出的BPDU报文都是不带vlan tag的,且接收后无视端口类型(accesstrunkhybrid)和放通的vlan,直接上CPU处理,最终的STP状态如下:



但是在PVST模式下,BPDU报文的收发就完全不同了。

过程分析

现在修改生成树类型为PVST,在两台设备上有vlan12,且SW1vlan12的根桥。

1. 互联端口全为access口时,并全属于vlan1,最终的STP状态和抓包情况如下。和情况1相比,stp状态第一列从可以实例ID变为VLAN ID,且仅能看到VLAN1stp状态。从抓包结果看,在SW2g1/0/1口未成为根端口之前,双方都收发了标准的RSTP BPDU报文,不带vlan tag,目的mac0180-c200-0000




2. 如果将SW1SW2互联口的所属vlan均改为vlan2STP状态仅能看到vlan2。抓包结果如下,这时仍然发送RSTPBPDU,不带vlan tag




3. SW1侧端口所属vlan改为1SW2侧端口所属vlan改为2。在SW1STP状态显示vlan1SW2侧显示vlan2。抓包结果和情况3类似。



4. 如果在情况3的基础上,在SW2再创建vlan3,且端口所属改为vlan3,但是SW1上不创建vlan3,最终的状态如下。




从情况1-4的结果可以看到,当互联口为access口时,PVST发出的BPDU报文都是标准的RSTP格式,即使两端放通的vlan不一致,仍能正常收发BPDU报文。这时如果对端设备不是PVST模式,一样可以互通,完成BPDU交互(和MSTP对接时,仅实例0之间有BPDU交互)。但是如果两端所属vlan不同,业务根本不通,其实没有意义。


5. 现在将SW1SW2的互联端口改为trunk口,放通vlan12pvid都是1STP状态如下,能够同时显示vlan12STP状态。抓包结果如下,SW1作为根桥每次向外发送3BPDU报文,第一个为标准的RSTP BPDU,第二个为PVST格式的BPDU,目的MAC0100-0ccc-cccd,不带vlan tag(即vlan 1PVST BPDU,因为端口pvid1去标签发出,但生成树协议中会携带origin vlan属性使对端可以识别),第三个为PVST格式的BPDU,目的MAC0100-0ccc-cccd,带vlan tag 2。当SW2接收到SW1发的不带tagPVST BPDU后,打上本端的pvid 1,并计算。SW2接收到SW1发的带tag 2BPDU后,不改变vlan tag 2,并计算。




6. 接下来看一下为何会发送RSTP BPDUSW1侧端口不放通所有vlan,最终的状态如下,抓包发现SW1未往外发送任何BPDU




SW1放通vlan1,抓包结果如下,SW1会向SW2发送RSTP BPDU和不带tagPVST BPDU




SW1不放通vlan1,放通vlan2,结果如下,这时SW1仅向SW2发送了带vlan tag 2PVST BPDU




修改SW1SW2pvid2SW1仅允许vlan 1SW1SW2发送了RSTP BPDU和带vlan tag 1PVST BPDU




SW1不允许vlan1允许vlan2SW1仅向SW2发送了不带tagPVST BPDUSW2则向SW1发送RSTP BPDUSW2侧也不允许vlan1后,双方都不发送RSTP BPDU




从情况6可以看到,当trunk链路放通了vlan1后就会向外发送RSTP BPDU,与PVID的设置无关,在PVST中这是作为vlan1BPDU报文进行处理的。此外,所有trunk放通的vlan都会发送PVST BPDU,仅和PVID值相同的VLAN发出的PVST BPDU不带tag,其余均带tag,这个时候的BPDU收发需要和普通报文一样进行去标打标签操作。

7. SW1侧改为仅允许vlan1通过,STP状态如下。抓包结果可以发现,SW1作为根桥,会一直每次往外发送2BPDU报文,一个为标准RSTP格式的,另一个为PVST格式的,不带vlan tag。而SW2侧端口未成为根端口时则每次会向外发送3BPDU报文,第一个为标准的RSTP BPDU,第二个为PVST格式的BPDU,不带vlan tag,第三个为PVST格式的BPDU,带vlan tag 2。当SW2侧端口成为根端口后,每次只发送一个BPDU报文,为PVST格式,带vlan tag 2。这是因为,端口不放通vlan2SW1不会向SW2PVST BPDUSW2就一直认为自己是vlan2的根桥往SW1PVST BPDU




8. SW1重新允许vlan2通过,修改pvid值为2,并在两台设备上同时创建vlan3,允许通过。这时有端口pvid不连续告警,且两台设备上VLAN1VLAN2的状态都为discarding。查看抓包结果,当状态稳定后,SW1除了发送带vlan tag 3PVST BPDU外,还发送了标准的RSTP BPDU、不带tagPVST BPDU、带vlan tag 1PVST BPDU。而SW2发送了标准的RSTP BPDU、不带tagPVST BPDU、带vlan tag 2PVST BPDU在当链路相连的两端PVID不一致时,PVST的计算可能出现错误,为了防止这样的错误,系统默认会开启PVID不一致保护功能,即做PVID不一致的检查。若端口PVID不一致保护功能触发后,端口在PVID不一致的VLAN中,会变为阻塞状态。

[SW1]%Dec 12 10:40:15:682 2020 SW1 STP/4/STP_PVID_INCONSISTENCY: Port GigabitEthernet1/0/1 with PVID 2 received PVST BPDUs from a port with PVID 1.

[SW2]%Dec 12 10:54:20:882 2020 SW2 STP/4/STP_PVID_INCONSISTENCY: Port GigabitEthernet1/0/1 with PVID 1 received PVST BPDUs from a port with PVID 2.






从上面可以看到,当两端的PVID不同时,会触发不连续PVID保护,导致端口discard。最后看一下accesstrunk对接的情况。

9. SW1侧口改为access,属于vlan1SW2trunkpvid1,允许所有vlan。有如下告警,且最终的状态SW1discard了,但SW2vlan1显示为根端口。这里说明SW2收到了SW1 access口发送的RSTP BPDU消息,对于trunkRSTP BPDU会影响VLAN 1stp计算。而由于SW2侧允许vlan1通过且pvid1,就会往外发送不带tagPVST BPDU,导致SW1触发此不连续端口保护。

[SW1]%Dec 12 13:02:50:684 2020 SW1 STP/4/STP_PORT_TYPE_INCONSISTENCY: Access port GigabitEthernet1/0/1 in VLAN 1 received PVST BPDUs from a trunk or hybrid port.




10. 9的基础上,SW2侧不允许vlan1通过,那么SW2就不会向SW1发送PVST BPDU了。从而不会产生阻塞。

[SW1]%Dec 12 13:08:56:846 2020 SW1 STP/6/STP_CONSISTENCY_RESTORATION: Consistency restored on VLAN 1's port GigabitEthernet1/0/1.



解决方法

1、  当设备运行STPRSTPMSTP时,发出的BPDU报文都是不带vlan tag的,对端开启STP后则能接受并上CPU处理,此时报文交互与端口类型(accesstrunkhybrid)和有无放通vlan无关;

2、  当设备运行PVST时,发出的PvstBPDU报文有两种,此时报文交互与端口类型(accesstrunkhybrid)和有无放通vlan有关:

l 对于Access端口PVST将发送RSTP格式的BPDU。目的MAC也是标准BPDU报文的MAC0180-c200-0000,此类型的报文是untag形式的。即使两端放通的vlan不一致,仍能正常收发BPDU报文。这时如果对端设备不是PVST模式,一样可以互通,完成BPDU交互(和MSTP对接时,仅实例0之间有BPDU交互)。

l 对于Trunk端口(Hybrid口类似)PVST将会发送两种BPDU。一种是RSTP BPDU,仅当端口放通了vlan 1时才会发出,是untag的;另一种是思科私有的Pvst BPDU报文,目的MAC0100-0ccc-cccd,此类型的报文是per-vlan的,Trunk端口上允许多少个vlan通过,就会发多少个这样的报文,并且除了缺省vlan的是untag外,其余vlan的均为带Tag的,此外都会携带origin vlan属性。

该案例对您是否有帮助:

您的评价:1

若您有关于案例的建议,请反馈:

0 个评论

该案例暂时没有网友评论

编辑评论

举报

×

侵犯我的权益 >
对根叔知了社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔知了社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作