华为交换机stp原理透析及实战
转载来源 :华为交换机stp原理透析及实战 :https://mp.weixin.qq.com/s/hK2UhxssPb-ww6J0oCu1dQ
生成树协议stp,快速生成树协议rstp,多实例生成树协议mstp,目前华为交换机默认使用多实例生成树mstp。
一、STP中的选举步骤和端口状态
选举步骤:
1、选举ROOT-SW根网桥
2、选举根端口RP(root port)
3、选举指定端口DP(Designate port)
4、其余的端口被Block阻塞
5、stp选举时候端口状态(15s 到listening,选举就结束了):
二、STP选举过程
A、确定Root Bridge -通过BID的比较判决。
在同一个二层网络中需要选举,即一个广播域内要选举,并且一个网络中只能选举一台根交换机(ROOT)。Birdge-ID中优先级数字小的为根交换机,优先级范围为0-65535,如果优先级相同,则MAC地址小的为根交换机。
B、所有非根桥交换机选举RP(Root Port) - 每个非根桥有且只有一个RP(主要作用是负责接收并且监听根桥的BPDU)
1、比较每个端口到达Root的Cost,具有最小Cost的端口成为RP端口的,开销是指本端口收到一个对端网桥的BPDU以后,累加本端口的COST之后的总路径开销。cost相同比较Sender BID
2、比较Send BID,收到BPDU中Send BID最小的端口成为RP,负责转发根网桥BPDU的交换机每次转发都将其中BID替换为自己的,先优先级后MAC 越小越好,Sender BID相同的话比较port ID
3、比较Port ID,收到BPDU中,Port ID最小的端口成为RP。Port ID由2个字节组成.包含一个数字有序对。第一个数字作为Port priority,第二个数字作为Port Number。排列顺序不一定和物理端口顺序一样,但是具体数字丌一定一样。
C、所有链路上确定DP(Design Port) - 转发BPDU的端口。
在每个冲突域需要选举,简单的理解为为每条连接交换机的物理线路的两个端口中,有一个要被选为指定端口,每个网段选举指定端口后,就能保证每个网段都都链路能够到达根交换机。根端口的对端一定是指定端口(主要作用是用来转发来自跟桥的BPDU)
1、比较同一段链路上2个端口发送BPDU到根的cost,较小的一个端口成为DP,如果相同再比较Sender BID
2、比较同一段链路上的2个端口发送BPDU的Sender BID(发送SW一般是这个端口所属的SW),较小的一个端口成为DP
D、网络中剩余的端口不全就是Block,只接受和监听BPDU,但是不发送接受数据。
在这个简单的拓扑中,三台交换机形成一个闭环,交换机之间使用trunk链路,并允许所有vlan通过(mstp中如果不允许某个vlan通过那么这个vlan的mstp-bpdu报文将无法收发也就无法形成实例树),然后查看默认的stp模式。
1、分别在三台交换机上查看stp的默认模式,以LSW1为例:
<sw1>display stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge :32768.4c1f-ccdb-6e3b #本交换机的root-id
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20 #mstp中各种报文的默认时间
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :32768.4c1f-ccdb-6e3b / 0 #根桥的root-id,就是sw1自己
CIST RegRoot/IRPC :32768.4c1f-ccdb-6e3b / 0
CIST RootPortId :0.0
BPDU-Protection :Disabled
TC or TCN received :26
TC count per hello :0
STP Converge Mode :Normal
Time since last TC :0 days 16h:20m:53s
Number of TC :23
Last TC occurred :GigabitEthernet0/0/2
2、在三台交换机中分别配置vlan2、3,并使用mstp观察各个交换机的角色和端口状态
[sw1]display stp brief #默认情况下mstp是实例0,并只有一个vlan1在实例0中MSTID Port Role STP State Protection0 GigabitEthernet0/0/1 DESI FORWARDING NONE0 GigabitEthernet0/0/2 DESI FORWARDING NONE
[sw1][sw2]display stp brief MSTID Port Role STP State Protection0 GigabitEthernet0/0/1 ROOT FORWARDING NONE0 GigabitEthernet0/0/2 ALTE DISCARDING NONE
[sw2][sw3]display stp brief MSTID Port Role STP State Protection0 GigabitEthernet0/0/1 ROOT FORWARDING NONE0 GigabitEthernet0/0/2 DESI FORWARDING NONE
[sw3]
在以上的显示中看到sw1是instance 0的根桥,sw2上的g0/0/2端口被阻塞,参考指定端口的选举原则,sw2的root-id大于sw3,所以端口被逻辑阻塞。
3、在三台交换机中创建实例mstp实例1,并将vlan2、3放入实例1中,三台交换机配置一样:
stp region-configuration #进入mstp配置模式region-name mstp #mstp域名,同一个域内的交换机域名必须相同(多个mstp域相连,每个域被看做一台sw)revision-level 1 #mstp的版本等级,一个域内必须相同,用于bpdu报文的hash计算instance 1 vlan 2 to 3 #创建实例1,并将vlan2、3放入实例1中active region-configuration #激活以上配置,否则配置不生效也看不到
#<sw1>display stp instance 1 brief #实例1的配置已经激活MSTID Port Role STP State Protection1 GigabitEthernet0/0/1 ROOT FORWARDING NONE1 GigabitEthernet0/0/2 DESI FORWARDING NONE
<sw1>
4、将包含vlan1的instance1的根桥配置为sw2,与包含vlan2、3的instance0形成流量在逻辑上的负载分担,和备份。
在sw2上配置根桥优先级让sw2成为instance 1的根桥
[sw2]stp instance 1 priority 4096 在instance1中将sw2的优先级改为4096(默认为32768)使它成为instance1的根桥
再查看mstp中instance0和instance1的树状态对比:
<sw1>display stp brief MSTID Port Role STP State Protection0 GigabitEthernet0/0/1 DESI FORWARDING NONE0 GigabitEthernet0/0/2 DESI FORWARDING NONE1 GigabitEthernet0/0/1 ROOT FORWARDING NONE1 GigabitEthernet0/0/2 DESI FORWARDING NONE
<sw1>[sw2]display stp brief MSTID Port Role STP State Protection0 GigabitEthernet0/0/1 ROOT FORWARDING NONE0 GigabitEthernet0/0/2 ALTE DISCARDING NONE1 GigabitEthernet0/0/1 DESI FORWARDING NONE1 GigabitEthernet0/0/2 DESI FORWARDING NONE
[sw2]<sw3>display stp brief MSTID Port Role STP State Protection0 GigabitEthernet0/0/1 ROOT FORWARDING NONE0 GigabitEthernet0/0/2 DESI FORWARDING NONE1 GigabitEthernet0/0/1 ALTE DISCARDING NONE1 GigabitEthernet0/0/2 ROOT FORWARDING NONE
<sw3>
在交换机中查看instance 1 的根桥
-------[MSTI 1 Global Info]-------
MSTI Bridge ID :0.4c1f-ccfa-7cd1
MSTI RegRoot/IRPC :0.4c1f-ccfa-7cd1 / 0 #根桥root-id
MSTI RootPortId :0.0
MSTI Root Type :Primary root #说明是根桥
Master Bridge :32768.4c1f-ccdb-6e3b #sw1的root-id,这个是全局instance0的根桥root-id
Cost to Master :20000
TC received :7
TC count per hello :0
Time since last TC :0 days 17h:16m:56s
Number of TC :10
Last TC occurred :GigabitEthernet0/0/2----[Port1(GigabitEthernet0/0/1)][FORWARDING]----Port Role :Designated PortPort Priority :128Port Cost(Dot1T ) :Config=auto / Active=20000Designated Bridge/Port :0.4c1f-ccfa-7cd1 / 128.1Port Times :RemHops 20TC or TCN send :3TC or TCN received :3----[Port2(GigabitEthernet0/0/2)][FORWARDING]----Port Role :Designated PortPort Priority :128Port Cost(Dot1T ) :Config=auto / Active=20000Designated Bridge/Port :0.4c1f-ccfa-7cd1 / 128.2Port Times :RemHops 20TC or TCN send :3TC or TCN received :4
[sw2]
做完以上配置后,形成的逻辑拓扑如图:
根桥上的所有端口都是指定端口,一条链路上收到根桥报文最近的端口为根端口,发送报文到根桥最近的端口是指定端口
在mstp中的形成2个实例树,对应instance0和1,这里vlan1的流量就对应instance0的路径,vlan2、3的流量对应instance1的路径。指定端口的选举时根据发出bpdb到达根桥的cost最短计算,那么如有想要在instance1中让sw1的g0/0/2端口阻塞而sw3的g0/0/1端口成为指定端口,就需要修改sw3的g0/0/1端口到达sw2的cost<sw1的g0/0/2端口到达sw2的cost值
在完整的拓扑中,
sw1的g0/0/2到达root的cost:sw1g0/0/2–sw3g0/0/1的cost+sw3g0/0/2–sw2g0/0/2的cost
sw3的g0/0/1到达root的cost:sw3g0/0/1–sw3g0/0/2的cost+sw1g0/0/1–sw2g0/0/1的cost
所以要调整指定端口只需要修改其中一个cost的值就可以,默认情况下是sw3的g0/0/1接口被阻塞,sw1的g0/0/2接口成为了指定端口,现在要让sw1的g0/0/2端口被阻塞就需要修改它到达rootsw2的cost,也就是修改sw1g0/0/2–sw3g0/0/1的cost+sw3g0/0/2–sw2g0/0/2的cost,其中可以在任意sw1进过的接口修改cost使总cost变小即可,默认为1,也就是修改sw3的g0/0/0和g0/0/2都可以,将cost修改为10,再次查看instance 1 中树的端口状态:
[sw3-GigabitEthernet0/0/1]display this
#
interface GigabitEthernet0/0/1port link-type trunkport trunk allow-pass vlan 2 to 4094stp instance 1 cost 10 修改cost在instance1中的值为10
#
return[sw3-GigabitEthernet0/0/1]display stp instance 1 brief #sw3的g0/0/1变为指定端口MSTID Port Role STP State Protection1 GigabitEthernet0/0/1 DESI FORWARDING NONE1 GigabitEthernet0/0/2 ROOT FORWARDING NONE[sw1]display stp instance 1 brief MSTID Port Role STP State Protection #sw1的g0/0/2变为的阻塞端口1 GigabitEthernet0/0/1 ROOT FORWARDING NONE1 GigabitEthernet0/0/2 ALTE DISCARDING NONE
[sw1]
注意:端口的cost计算时,本端口自身的cost不算,从下一跳方向的端口开始计算到跟root的cost之和
华为交换机stp原理透析及实战相关推荐
- 深入浅入 ~ ConCurrentHashMap底层原理透析
创作宗旨:化繁为简,绝不冗余,点到为止 ConcurrentHashMap<K,V> 继承了AbstractMap<K,V>,实现了ConcurrentMap<K,V&g ...
- 华为交换机 STP MSTP BPDU保护 边缘端口 BPDU过滤 根保护 环路保护 TC保护
生成树协议 STP 生成树协议 RSTP 快速生成树协议 MSTP 多生成树协议 一.原理 stp:Spanning Tree Protocol (生成树协议) 交换网络广播 ...
- java中数据类型byte的底层原理透析
byte数据类型详解 二进制.位.字节的关系 二进制 位 字节 三者联系 ascll码表 Byte数据类型底层原理说明 代码与结果展示 结果透析 二进制.位.字节的关系 二进制 十进制:0,1,2,3 ...
- 网络传输协议原理透析
网上对OSI参考模型的讲解比较多,但是看起来总还是没法有个完整的记忆. 为了全面透析网络传输,遂总结这篇笔记,留后续查阅. 名词解释: 开放式系统互联通信参考模型(英语:Open System Int ...
- 华为交换机STP生成树协议
生成树协议 原理 Stp:spanning tree protocol 交换网络广播风暴: 交换机物理布局是环状(线路备份) 交换机之间互相转发未知地址的数据帧 线路备份,形成无环拓扑避免广播风暴=& ...
- 华为修改优先级命令_华为交换机STP 根ID优先级设置
http://m.blog.csdn.net/flyfish5/article/details/50224537 STP(Spanning Tree Protocol)生成树协议. 冗余链路 当前的交 ...
- 华为交换机STP端口角色状态
端口5种状态 网桥或交换机的端口可能有5个状态:阻塞.侦听.学习.转发和禁用.他们之间的状态转换如图所示: 上图中,实线箭头表示端口的正常转换,虚线箭头表示由管理配置引起的改变. 交换机上的端口在启动 ...
- 转:大规模网站架构技术原理透析
来自:http://tech.it168.com/a2009/0904/674/000000674253.shtml 跟朋友聊天的时候,发现很多人对大型网站系统架构非常感兴趣,我也很感兴趣,经常会在家 ...
- 华为交换机STP的配置实例
[S-switch-A]stp enable [S-switch-B]stp enable [S-switch-C]stp enable [S-switch-D]stp enable 这样交换机根据自 ...
最新文章
- python根据二叉树的前序遍历和中序遍结果历重建二叉树
- Logback中使用TurboFilter实现日志级别等内容的动态修改
- 页面显示 amp html6,浅谈HTML5 amp;amp; CSS3的新交互特性
- protoc.exe java_protobuf java 使用 window
- 一款IDEA插件神器,帮你一键转换DTO、VO、BO、PO、DO
- access 合并多行字符串_八种方法玩转字符串合并,这篇文章全都给你讲明白!...
- 浅谈APP流式分页服务端设计(转)
- Python dict() 函数
- Apache james 2.3.2.1启动失败换成2.3.2版本就好
- 服务器端脚本和客户端脚本
- linux虚拟机调整分辨率
- Exchange 2013CU17和office 365混合部署-设置属性筛选(三)
- Flutter Provider框架实现简单的购物车
- CFS 调度器数据结构篇
- centos中多台主机免密登录_mac ssh 免用户名密码远程登录 linux 方法
- 技术年货:美团技术沙龙合辑大放送
- 魔兽服务器修改端口,求魔兽世界某服务器IP地址和端口
- eclipse 使用maven打包 包含非java文件时报错
- FastAPI简单示例
- 图数据库发展趋势概览