思科华三设备组网思科生成树PVST发BPDU导致全网闪断

2023-12-15 19:38

本文主要是介绍思科华三设备组网思科生成树PVST发BPDU导致全网闪断,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、故障现象

1.思科PVST BPDU报文导致全网闪断。

2.光衰低时不同品牌网络设备无法兼容导致接入交换机中断。

二、网络拓扑

                                             

图1 网络拓扑图

组网结构为H3C汇聚,接入交换机有思科,也有H3C,而且与汇聚直连的接入交换机下面串接了较多的交换机,或者hub。

三、排查思路

1.回忆一下最近做了什么事情,什么时候开始出的问题。

将网络汇聚交换机从思科换为H3C,H3C汇聚和思科接入对接出问题。

2.查看日志(Received BPDU with inconsistend peer vlan id)

看日志是接入交换机上收到了思科生成树PVST携带的BPDU报文,且两台互联交换机PVID不一致。

四、解决过程

第一阶段

现网里面汇聚和接入生成树都已经改成了MST,怀疑是部分思科接入交换机没有改成MST,仍然是PVST协议。华三交换机会转发思科PVST的BPDU报文。思科交换机收到PVID不一致的BPDU报文,阻断两个上联端口,生成树重新计算,导致闪断。

于是对现网所有接入交换机进行排查,将思科交换机PVST协议改成MST协议。

H3C汇聚通过dis stp abnormal-port命令查看哪些下联接入交换机有闪断。

但是由于工位扩展,接入交换机上挂接了许多hub,难以穷举所有的下联hub。经过一周的整改,仍然发现有思科交换机PVST的BPDU报文发出。

疑问:什么导致PVID不一致?本地所有交换机native vlan都是vlan13,没有vlan62和vlan67.(答案在第四阶段)

第二阶段

1.发现汇聚交换机和接入交换机MST instance1实例下的vlan号和数量没有对齐。

2.接入交换机换成H3C后不受思科PVST BPDU报文影响。

根据上面两个新发现,一是将重要业务接入交换机换成H3C设备。二是将汇聚交换机和接入交换机MST instance1实例下vlan号和数量改为一致。

经过分析,接入交换机改成H3C设备没有影响是因为H3C交换机本地没有PVST PVID,不会冲突,且H3C交换机开启边缘端口保护。只是转发BPDU报文给其它下联的思科交换机。另外MST instance1实例下vlan号数量没对齐其实没有影响。具体原因见第五章MST原理。

H3C接入交换机开边缘端口+BPDU保护步骤。

,全局

接口下面开边缘端口保护。

第三阶段

将instance1实例下的vlan号和数量对齐后,有几台与汇聚直连的交换机无法访问。

经过抓包分析,汇聚交换机至接入交换机光衰过大,导致接入交换机收不到汇聚交换机的BPDU报文,接入交换机自己计算生成树,向汇聚交换机发送BPDU报文,且思科BPDU报文优先级比华三汇聚优先级高,华三交换机默认开默认开dispute-protection功能,开启此功能后,华三汇聚为避免环路会断掉与下联交换机端口。

临时解决方案是关闭汇聚交换机的dispute-protection功能。

永久解决方案是解决光衰低问题(换模块,换光纤,换端口)。

另外为了避免不同厂商之间网络设备生成树处理机制不一致引发的问题,建议一个区域内的所有汇聚接入设备都换成一致的品牌。

疑问:instance1下的vlan号和数量没对齐时,为什么不出问题?

此时接入和汇聚属于不同的域,通过域间传输生成树报文(详见第五章),stp dispute-potection仅对本域内生效。

第四阶段

继续分析发出PVID不一致的原始BPDU报文来源。通过抓包发现思科PVST BPDU报文组播地址为0100-0ccc-cccd。在汇聚交换机上配置ACL策略,统计接收该mac地址端口的次数。

将上述策略应用到汇聚上每个有下联接入交换机的端口。

过一段时间查看端口有这个mac地址的计数。

如果有收到这个mac地址,就进一步进入每个接口查看这个mac地址的来源。    

这样就能找出这个mac地址是从哪个接入交换机发出来的,然后到接入交换机上继续执行上述过程(逐个端口统计mac地址接受数量),找出这个mac地址是从接入交换机的哪个端口发出来的。

最后找到发出PVID不一致BPDU报文的原始交换机,为另一张网的思科交换机,此交换机通过vlan62连接到本网络的vlan67。

五、MST原理

MST域三要素:

名称

修正级别、

VLAN映射表

1.对于MST Instance 0,就算vlan不一致,也都是在同一个域里面,按照一个规则进行端口的阻塞和转发,离根桥最近端口为转发端口。

图2 Instance0拓扑图

2.对于MST Instance 1

三个要素一致才在一个域里面,否则在不同的域。

现网里面汇聚上的Instance1 VLAN映射与接入上的Instance1 VLAN映射不一致

汇聚上的VLAN映射

接入上的VLAN映射

导致Instance 1被割裂成不同的域。

图3 不连续Instance1拓扑图

不同的域之间,按域的规则计算转发或阻塞,与域主节点最近的点成为master,类似于域内的root口。

如果cisco交换机MSTI0阻断的是G1口,MSTI1域间阻断的是G0口,vlan102在汇聚和接入上属于不同的Instance,就会导致vlan102访问异常。

所有Instance在汇聚主备上的优先级一致,不同Instance阻断口一致,就会汇聚和接入vlan属于不同的Instance,也不会导致访问不通。

六、总结

1.同一汇聚区域尽量接同一品牌的网络设备。

2.网络管理、建设需要严格,不允许随意私接网络。

3.临时hub都不适合长期使用,最好改成无线网,一个区域内的无线AP要有冗余,当一个AP故障时,可以快速切到另一个AP。

4.后期可以尝试用端口组绑定方案,不用生成树。

这篇关于思科华三设备组网思科生成树PVST发BPDU导致全网闪断的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/497630

相关文章

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

poj 1287 Networking(prim or kruscal最小生成树)

题意给你点与点间距离,求最小生成树。 注意点是,两点之间可能有不同的路,输入的时候选择最小的,和之前有道最短路WA的题目类似。 prim代码: #include<stdio.h>const int MaxN = 51;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int P;int prim(){bool vis[MaxN];

poj 2349 Arctic Network uva 10369(prim or kruscal最小生成树)

题目很麻烦,因为不熟悉最小生成树的算法调试了好久。 感觉网上的题目解释都没说得很清楚,不适合新手。自己写一个。 题意:给你点的坐标,然后两点间可以有两种方式来通信:第一种是卫星通信,第二种是无线电通信。 卫星通信:任何两个有卫星频道的点间都可以直接建立连接,与点间的距离无关; 无线电通信:两个点之间的距离不能超过D,无线电收发器的功率越大,D越大,越昂贵。 计算无线电收发器D

hdu 1102 uva 10397(最小生成树prim)

hdu 1102: 题意: 给一个邻接矩阵,给一些村庄间已经修的路,问最小生成树。 解析: 把已经修的路的权值改为0,套个prim()。 注意prim 最外层循坏为n-1。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstri

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

poj 3723 kruscal,反边取最大生成树。

题意: 需要征募女兵N人,男兵M人。 每征募一个人需要花费10000美元,但是如果已经招募的人中有一些关系亲密的人,那么可以少花一些钱。 给出若干的男女之间的1~9999之间的亲密关系度,征募某个人的费用是10000 - (已经征募的人中和自己的亲密度的最大值)。 要求通过适当的招募顺序使得征募所有人的费用最小。 解析: 先设想无向图,在征募某个人a时,如果使用了a和b之间的关系

如何编写Linux PCIe设备驱动器 之二

如何编写Linux PCIe设备驱动器 之二 功能(capability)集功能(capability)APIs通过pci_bus_read_config完成功能存取功能APIs参数pos常量值PCI功能结构 PCI功能IDMSI功能电源功率管理功能 功能(capability)集 功能(capability)APIs int pcie_capability_read_wo