stp Rstp Mstp
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stp Rstp Mstp相关的知识,希望对你有一定的参考价值。
STP(在IEEE制定的802.1D标准下定义)STP V5版本默认是关的
STP是二层网络中用于消除环路的协议:
通过阻断冗余链路来消除桥接网络中可能存在的路径回环
当前活动路径发生故障时,激活冗余备份链路,恢复网络连通性
stp的作用是通过冗余链路是一个有环路的桥接网络修剪成一个无回路的树形拓扑结构。
通过在桥之间交换BPDU(桥协议数据单元)报文,来保证设备完成生成树的计算过程
BPDC(桥协议数据单元)
1、配置BPDU:用来进行生成树的计算和维护生成树拓扑的报文
2、TCN BPDU:当拓扑结构改变时,用来通知相关设备网络拓扑发生变化的报文
配置BPDU:由根桥从指定端口周期性发出,发送周期Hello Time(2s/次),非根桥从根端口接收配置BPDU,进行更新并从指定端口将其发出。网络中只有根桥会生成配置BPDU,非根桥只能对配置BPDU进行中继(转发),不会 自行产生配置BPDU,没有运行STP的网桥将把配置BPDU当作普通的数据帧转发。
配置BPDU用来根桥的选举和端口角色的确定,基于二层组播方式发送,目的地址为01-80-C2-00-00-00。
当根端口收到配置BPDU后,都会保存本端口最优的BPDU,如果BPDU信息在Mac Age(20s)时间内得到更新时,端口将清除保存的BPDU信息。
配置BPDU包含目的Mac地址、源Mac地址、帧长、逻辑链路头以及载荷等。 a、载荷中包含了stp计算所需的信息:
1>、根ID:由根桥的优先级和MAC地址组成
2>、根路径开销:到根桥的最小路径开销。如果是根桥,其根路径开销为0;如果是非根桥,则为到达根桥的最短路径上所有路径开销的和。
3>、指定桥 ID :生成或转发BPDU的根ID ,由桥优先级和桥MAC地址组成 指定桥是一条链路上负责生成或转发BPDU的桥(比较方法先比到跟桥的开销,再比桥ID)
4>、指定端口ID:发送BPDU的端口ID,由端口优先级和端口索引号组成
各台设备的各个端口在初始时生成以自己为根桥(Root Bridge)的配置消息,向外发送自己的配置消息
网络收敛后,根桥向外发送配置BPDU,其他的设备对该配置BPDU进行转发
配置BPDU的格式:
DMA:目的MAC地址
SMA:源MAC地址
L/T:帧长
LLC Header:配置消息固定的链路头
Payload: BPDU数据:protocol ID :协议号固定为(0x0000),生成树协议号
protocol version ID:协议版本号,目前有三个版本,stp为0x00
BPDU Type:配置BPDU类型0x00,TCN BPDU类型0x80
Flags:由8位组成,最高位为TC标志位,最低位为TCA标志位,其他6位保留
Message Age:从根桥生成配置BPDU开始,到当前为止配置BPDU的存活时间
MAX age:配置BPDU存活最大时间
Hello Time:发送配置BPDU周期(2s)
Forward Time:最大延迟时间,默认15s
桥和端口的角色:
桥:根桥和指定桥
端口角色:指定端口(DP)、根端口(RP)、Alternate端口(AP)
一、根桥的选举:
1、作用:统一参照物
产生BPDU
二层流量的中心
定义:桥ID用于在STP中唯一的标识一个桥,桥ID由两部分组成,长度为8个字节(64位)
桥优先级:高16位
MAC地址:低48位
比较方法:先比桥的优先级,优先级值小的优(默认32768,修改时要是4096的倍数)
再比较桥的MAC地址,MAC地址越小越优
二、路径开销:
定义:路径开销等于路径上全部链路开销之和
当接受BPDU时加上本路径开销,指定端口(DP)的开销为0,改开销选路时该根端口的(RP),
三、STP计算步骤:
配置BPDU的处理过程:
网桥将各个端口收到的配置BPDU和自己的配置BPDU做比较,得出优先级最高的配置BPDU
网桥用优先级最高的配置BPDU更新本身的配置BPDU ,用于选举根桥和确定端口角色
网桥从指定端口发送新的配置BPDU
配置BPDU比较原则——优先级向量最小者最优
首先比较Root Bridge ID (根桥ID)
其次比较Root Path Cost(根路径开销)
再次比较Designate Bridge ID(指定桥ID)
再其次比较Designate Port ID (指定端口ID)
最后比较Bridge Port ID(本地桥端口ID)
四、根桥的选举和端口角色的确定:(在网桥中,本桥的最优配置BPDU只会从指定端口发出)
根桥的选举:
起始都认为自己是根桥,都发送配置BPDU,相互比较出最优的,为根桥
端口角色的确定:(算入口开销,再接收BPDU时加上本端口的开销)
作用:通过角色来确定最终状态
不同角色任务不同
RP有发送TCN BPDU(刷新MAC地址表)
DP发送BPDU的,发TC置位的BPDU
在RSTP中,AP是RP的备份
BP:在RSTP,BP是DP的备份
确定端口角色的标准:1、根端口(RP):网桥上到根桥最近的端口;(一个交换机上只有一个根端口(RP))根端口的确定需要比较RPC,拥有最小RPC的端口为RP
2、指定端口(DP):端口的配置 BPDU 在其所属链路上是最优的;(一条链路上只有一个DP)
3、Alternate端口: 端口的配置 BPDU 在其所属链路上不是最优的,且端口不是根端口。
Alternate 端口: 端口既非根端口也非指定端口;
根端口:该端口到根桥的开销最小;
指定端口: 端口拥有该链路上最优的配置消息。 ( 根桥发送的 BPDU 消息,其中 BPC=0)
接收配置BPDU处理:如果收到一个比自己优的配置BPDU,则将接收到的更新为自己的BPDU,后向外转发
交换机接收到BPDU时加上接收端口的开销,根桥发出的BPDU的开销为0
1、SWD收到SWB和SWC的BPDU发现自己桥ID比他们两优
2、第一轮过后SWB、SWC认为SWA为根桥,SWD依然认为自己是根桥(其实是与选举根桥同时进行的)
3、再次进行BPDU交互时, SWC和SWB发送的BPDU为SWA的加上字节接收端口开销
4、SWD从SWC收到的比从SWA收到的优,所以认为自己的RPC为218
5、SWB认为从SWC过来的BPDU的开销小于从SWA过来的,所以连接SWC的接口为RP,连接SWA为AP
6、SWD从SWB收到的BPDU优于从SWC过来的,所以连接SWB为RP,连接SWC为AP
AP和DP的选举:如果发送的BPDU优于接收的BPDU,则端口为指定端口
如果接收到的BPDU优于发送的BPDU,且该端口不是根端口,则端口为AP(比较时,发出的BPDU要加上本链路开销)
RP的选举:
1、比较开销,若相同,比较指定桥ID(a、到根桥开销 b、设备ID)
2、指定端口ID,最后比较本地端口ID(先比较端口的优先级和MAC,再比较端口索引号)
五、等路径开销计算:
当路径开销相等时,则比较指定桥ID和指定桥的端口号(发送者的)
指定桥的比较:先比较到根桥的开销,在比较指定桥ID
1、当指定桥ID一样时,比较指定端口ID(发送者的)
2、当指定端口ID相等时,比较Bridge Port ID(接收端口ID)
七、收到低优先级配置BPDU时的处理
当收到一个低优先级的配置BPDU,网桥会立即回应一个配置BPDU,这样可以保证新加入的网桥尽快的确认根桥和端口角色(因为网桥都会保存一个当前最优的BPDU,老化时间为20s)
临时环路:
当拓扑结构发生变化,新的配置BPDU要经过一定的时延才能传播到整个网络,在所有网桥收到这个变化的消息之前可能会存在临时环路
八、STP端口状态:
Forward Delay(延时)30s
从中间状态Listening经过一个延时进入另一个中间状态Learning 从Learning状态再经过一个延时进入Forwarding状态 延时长度为Forward Delay
Listening--------(经过一个Forward Delay)Learning---------(经过一个Forward Delay)Forward
从 Listening到Forward需要30s
九、STP拓扑改变处理过程:
端口enable
端口disenable
端口被选为根端口或者指定端口
端口被选为Alternate端口(阻塞)
Forward Delay延时
从链路中断到连路恢复需要300s(MAC地址老化时间)的时间,但是当网桥收到根桥发送TC置位的配置BPDU后,会将自身MAC地址老化时间由300s变为Forward Delay。(15s)
当SWD的下行链路中断后,SWE的E1/0/1在配置BPDU老化时间(20s)后任务其对端链路中断,并向根桥发送TCN BPDU,根桥收到后,向各端口发送TCA BPDU(TC置位的配置BPDU),这样将MAC地址时间缩短为15s,所以从中断到恢复的时间为20(配置BPDU老化)+30(端口状态改变(AP——RP),两个Fowarding Delay时间)+15(MAC地址刷新时间)。
网桥发送TCN BPDU的条件为 :
有端口转变为Forwarding状态,且该网桥至少包含一个指定端口
有端口从Forwarding状态或Learning状态转变为Blocking状态
第0位置位表示该消息为TC置位BPDU(拓扑改变)
第7位置位表示该消息为TCA(TCN BPDU的确认)
当根桥故障后,指定根桥等待 Max Age Timer(20s)后没收到消息,则判断为根桥 down 掉了,认为自己是根桥,并发送以自己为根桥的配置BPDU,SWC发现SWB的BPDU优于自己的BPDU,以原根端口为指定端口,连接SWB的为根端口。
当SWC连接SWA的根端口中断时,SWC会立即认为根桥消失,阻塞口立即转变为Listening状态,并发送以自己为根桥的配置BPDU,SWB收到低优先级的BPDU,立即回复以SWA为根桥的BPDU,因此,SWB连接SWC的为指定端口,SWC连接SWB的端口为根端口。
当两个网桥之间新增一条链路时,首先SWA和SWB的E1/0/1和E1/0/2均会认为自己是指定端口,并进入Listening状态。在此状态进行BPDU的交互,E1/0/1变为指定端口,E1/0/2位根端口,并进入Learning状态,同时SWE的E1/0/2也变为阻塞口。
十、STP的不足:
1、收敛时间长:
缺省情况下一个端口从Blocking状态过渡到Forwarding状态至少需要30秒钟(两倍的Forward Delay)。对于一个拓扑不稳定网络,会导致网络的长时间中断
2、拓扑变化收敛机制不灵活
当主机频繁上下线时,网络中会产生大量的TCN BPDU
RSTP(IEEE标准为802.1w)
RSTP和stp的区别:
RSTP减少了端口状态
RSTP增加了端口角色
RSTP配置BPDU的格式和发送方式有所改变
当网络拓扑发生改变时,RSTP的处理方式不同,可以快速收敛
将端口状态设置为三个
Discarding:丢弃接收帧,不转发帧,不进行地址学习,能够处理发送BPDU
端口角色:
指定端口
根端口
Alternate端口:当阻塞端口收到的更优的配置BPDU来自于其他网桥时,该端口为Alternate端口(为网桥提供一条到达根桥的备用路径,做为根端口备份)
Backup端口:当阻塞端口收到的更优的配置BPDU来自于本网桥时,该端口为Backup端口(指定端口的备份)
RST BPDU的格式及发送方式
协议版本号为0x02
BPDU type 为0x02
flags字段全部8位
增加了Version1 Length字段
RST BPDU中Flags字段:
0位:为TC标志位,跟stp一样(拓扑改变)
1位:为proposal位,表示此报文为Proposal报文
2和3位:端口角色标志位,00表示端口角色未知,01表示端口为Alternate端口或Backup端口,10表示为根端口,11位指定端口
4位:Learning标志位,表示端口处于Learning状态
5位:Forwarding标志位,表示端口处于Forwarding状态
6位:Agreement标志位,表示该BPDU为Agreement报文
7位:TCA标志位,TC确认
BPDU发送方式:
在STP中通常只有根桥才可以产生配置BPDU,非根桥从根端口接收BPDU,并更新为自己的配置BPDU,然后从指定端口发出,非根桥不会主动产生BPDU。
而在RSTP中,RSTP中网桥可以自行从指定端口发送RST BPDU,不需要等待来自根桥的,发送周期为Hello Time(2s)
RSTP网桥的保活机制:
由于网桥可以自行产生BPDU,当网桥在一定时间内没有收到对端的网桥发送的BPDU,即认为对端网桥的连接中断
RST BPDU老化时间为3个连续的Hello Time(6s)时长
当阻塞口收到低优先级的BPDU时,会立即作出回应,”某某为根桥“
RSTP的快速收敛机制:
边缘端口机制:当接口直接与用户终端连接时,端口直接进入Forwarding状态(减少了端口进入Forwarding状态的时间
根端口快速切换:RSTP定义了Alternate端口为根端口的备份,当旧根端口进入阻塞状态时,会选出网桥中最高优先级的Alternate端口作为新的根端口,期间不需要Forwarding延时。
指定端口快速切换:(P/A机制)(握手必须在点到点链路中进行)
当新链路连接时,两端都是指定端口且为阻塞状态。当端口属于Discarding状态和Learning状态时,发送的RST BPDU都被P置位,端口角色为指定端口(2、3位都是1),收到P置位的BPDU后,网桥会判断接收端口是否为根端口,若是,网桥启动同步过程。同步是指网桥阻塞除边缘端口以外的所有端口。
同步完成后根端口进入转发状态,并向指定端口发送一个A置位的BPDU(该BPDU复制P置位的BPDU,唯一不同的就是flags置位字段不同),端口角色为根端口(2、3位为10),指定端口收到A置位的BPDU后,立即进入转发状态。此时根端口的下行端口仍然为阻塞状态,继续与下行端口进入上述操作。
如果指定端口发出P置位的BPDU后,没有收到A置位的BPDU,则该端口将切换为STP模式需要等待30s才能进入转发状态。
RSTP中的拓扑改变处理:
改变的条件:非边缘端口转变为Forwarding状态。在RSTP中,链路中断不会直接触发拓扑改变
当非边缘端口转变为Forwarding状态时,网桥会在两倍的Hello Time时间内向根端口以及其他所有指定端口发送TC置位的BPDU,同时会清除这些端口的MAC地址。
当其他网桥收到TC置位的RST BPDU后,会清除接收端口以及边缘端口之外的其余端口MAC地址,,并在两倍的Hello Time 时间内向指定端口和根端口发送TC置位的BPDU。
RSTP和STP兼容性:
当运行RSTP的网桥连续收到3次配置BPDU时,网桥认为端口与stp网桥相连,该端口切换为STP模式。
切换到STP的RSTP端口将丧失快收敛的特性
出现RSTP和STP混用时,建议将STP放在网络边缘
运行STP的网桥移除后,由RSTP模式切换到STP模式的端口仍将运行在STP模式
配置命令:
[H3C] stp enable //stp全局开启
[H3C-Ethernet0/1] stp disable //接口下关闭
[H3C] stp mode { stp | rstp | mstp } //运行模式
[H3C] stp priority bridge-priority //桥的优先级
[H3C-Ethernet0/1] stp cost cost //端口开销(改根端口开销)
[H3C-Ethernet0/1] stp port priority port-priority //端口优先级
[H3C-Ethernet0/1 ] stp edged-port enable //边缘端口开启
[H3C]display stp brief //查看端口角色
[H3C]display stp //显示STP信息
MSTP(IEEE的802.1S标准中定义)
多是指多实例。
RSTP、stp,都是单实例生成树,不能实现流量的负载分摊。MSTP做基于vlan级别的负载
TP/RSTP 的局限:
所有VLAN 共享一颗生成树;
无法实现不同VLAN 在多条Trunk 链路上的负载分担。
MSTP:(Multiple Spanning Tree,多生成树协议)
基于实例(实例是域内的概念)计算出多颗生成树,实例间实现负载分担。
MSTP的相关概念:
MST域:拥有相同MST 配置标识的网桥构成的集合
a、域名:本域的名称,默认使用该交换机的mac地址
b、修订级别:目前保留,默认为0
c、配置摘要:vlan与实例映射的哈希值
CST、IST、CIST、总根和域根:
CIST:(CST+IST)是整个网络所有设备经过生成树计算得到的一棵树,总根是整个网络中优先级最高的桥,是CIST的根桥,负责域间无环。
CST:(公共生成树):连接交换网络内所有MST域的单个生成树。如果把每个域看做一个设备,CST就是设备通过STP、RSTP协议计算出的一个生成树,CST的根桥为CIST根桥所处的域
IST:(内部生成树):是MST域内的一棵生成树,对应的实例号为0,IST根桥即CIST的域根,是MST域内距离总根(CIST根)最近的桥(它的根是不比较优先级的)
MSTI:(多生成树实例):MST域内可以通过MSTP生成多棵生成树,每棵生成树之间彼此独立。每棵生成树都称为MSTI
MSTI的域根:是每个MSTI上优先级最高的网桥。MST域内每个MSTI可以指定不同的根
域边界端口:域边界端口是指位于MST域的边缘,用于连接不同MST域、MST域和运行STP的区域、MST域和运行RSTP的区域的端口。
外部路径开销(EPRC):指的是端口到总根的最短路径开销。
内部路径开销(IPRC):发送此BPDU的网桥到达CIST域根的路径开销。
Master 端口:(域边界)连接MST 域到总根的端口,此端口指向总根距离最短,IST根桥在CIST上的根端口。(Mater端口在每个MSTI上的角色都相同)
Backup 端口:(与RSTP一样)当开启了MSTP的同一台设备的两个端口互相连接时就存在一个环路,此时设备会阻塞端口ID较小的端口,此阻塞端口称为Backup 端口,而另外一个端口则处于转发状态,成为指定端口。
MSTP的BPDU格式:
MST BPDU和RST BPDU的前36字节的格式都一样,主要多了MST专有字段,版本号为0x03,BPDU类型变为0x02,表示为RST/MST BPDU
CIST优先级向量:(最小者最优)
首先比较CIST总根ID
其次比较CIST外部路径开销
再次比较CIST域根ID
再其次比较CIST内部路径开销
再其次比较CIST指定桥ID
再其次比较CIST指定端口ID
最后比较CIST接收端口ID
MSTI 的优先级向量:(最小者最优)
首先比较MSTI域根ID
其次比较MSTI内部路径开销
再其次比较MSTI指定桥ID
再其次比较MSTI指定端口ID
最后比较MSTI接收端口ID
MSTP 计算方法:
CST/IST 的计算和RSTP 类似;
MSTI 的计算仅限于区域内;
MSTI 计算参数包含在IST BPDU 中,和IST的计算同步完成。
域内计算过程:
在vlan2 中各网桥优先级:SWA2>SWA>SWA3
在vlan 4 中各网桥优先级:SWA3>SWA>SWA2
在vlan 2中各网桥优先级:SWB3>SWB>SWB2>SWB4
在vlan 3中各网桥优先级:SWB4>SWB2>SWB3>SWB
MSTP 和RSTP 的互操作:(没有对应实例时走IST)
RSTP 桥将MSTP域看做一个设备,设备ID(桥ID)为域根ID的RSTP 桥。
MSTP 的P/A 机制:(Proposal:建议)(在RST中只有P置位,而在MSTP中都置位)
上游桥发送的Proposal BPDU 中,P 标志位和A 标志位都置位;
下游收到P 标志位和A 标志位都置位的Proposal BPDU,在将端口同步后会回应Agreement BPDU,使得上游的指定端口快速进入转发状态。
MSTP的配置:
[H3C]stp enable //开启STP
[H3C] stp region-configuration //进入
[H3C-mst-region ] region-name name //域名
[H3C-mst-region ] revision-level level //配置级别(默认为零)
[H3C-mst-region ] instance instance-id vlan vlan-list //实例映射
[H3C-mst-region ] active region-configuration //激活域
[H3C] stp instance instance-id root primary //将本设备设为主根
[H3C] stp instance instance-id root secondary //将本设备设为从根
STP保护机制(以下三种在本接口只能三选一)
1、BPDU保护:(结合边缘端口应用)(接入层)
当交换机底下接入的是pc时,要启用边缘端口和BPDU保护,防止没接入一台PC都要进行stp重新计算,减少stp收敛的时间
引入:当没有开启BPDU保护,边缘端口收到BPDU配置信息时,边缘端口将改为非边缘端口,从而导致生成树的重新计算
如果开启BPDU保护功能,当边缘端口收到BPDU配置信息时,MSTP将这些边缘端口关闭
边缘端口:物理UP后,马上变成Forwarding。是可以发BPDU的。用Disable也行,但是不好,不能发送BPDU。
配置命令:(不受外来BPDU的影响)
[H3C] stp bpdu-protection //开启BPDU保护
[SWA-Ethernet1/0/1] stp edged-port enable //边缘端口
边缘端口:配置为边缘端口之后,不进行STP计算,接口UP后直接进入Forwarding,当该端口收到BPDU时,该端口将会丧失边缘端口特性。(单用边缘端口时)
当与BPDU保护一起用的时候,,当一个边缘端口收到一个异常的BPDU,该端口将会down
2、根桥保护:(汇聚层)
开启根桥保护的端口根桥保护为指定端口。开启根桥保护的端口后,这些端口的状态将被设置为Listening状态,不再转发报文(相当于此接口相连的链路断开)。端口会经历从Listening状态转变为Forwarding状态,在此期间如果端口没有收到更优的BPDU时,端口会恢复到原来的转发状态。
[H3C-Ethernet1/0/1] stp root-protection //根桥保护
3、环路保护:(核心层)
在启动环路保护后,当端口保存的BPDU老化时,环路保护生效。(由于端口阻塞或者光纤单通导致的BPDU超时,引起对方收不到BPDU)。
根端口的角色如果发生变化就会变为Discarding(丢弃接收帧,不转发帧,不进行地址学习,能够处理发送BPDU)状态,不转发报文,从而不会在网络中形成环路。Discarding状态会一直维持,直到端口再次收到BPDU,重新成为根端口。
在MSTP中,此功能对根端口、Alternate端口和Backup端口有效。
[H3C-Ethernet1/0/1] stp loop-protection //环路保护
4、TC保护:
设置设备在收到TC-BPDU报文后的10秒内,进行地址表项删除操作的最多次数
监控在该时间段内收到的TC-BPDU报文数是否大于门限值。(默认为6)
可以避免mac地址表(ARP表是通过MAC表项的删除而更新的,不是直接删除的)的频繁刷新
[H3C] stp tc-protection enable //全局下使能
[H3C] stp tc-protection threshold number //单位时间内能够收到TC的最大次数。
dis stp brief
dis stp root
dis stp down-port
STP开销计算:
stp在DP发出时开销为0,不算出接口开销,只算入口开销,所以为了改变接口状态,修改stp开销时,修改RP的开销
本文出自 “Network_伟” 博客,请务必保留此出处http://cwnetwork.blog.51cto.com/10718966/1970459
以上是关于stp Rstp Mstp的主要内容,如果未能解决你的问题,请参考以下文章