① BPDU是什么意思,BPDU是什么意思
关于BPDU的意思,计算机专业术语名词解释
网桥协议数据单元。是一种生成树协议问候数据包,它以可配置的间隔发出,用来在网络的网桥间进行信息交换。
② STP报文内容
stp协议一共有两种BPDU
第一种是配置BPDU,第二种是拓扑改变通知BPDU(TCN BPDU)
BPDU报文中的flags位共8个bit,默认只用了 两个比特(第0位和7位),
TCA(flag第0位为0):拓扑改变确认
TC(lag第7位为0):拓扑改变
根桥的优先级和根桥交换机系统的mac地址
到根桥的路径开销
(自身id)
自身端口ID
前两位是16进制的优先级,后两位代表端口编号,
BPDU存活时间,根桥发送的时候是0,每经过一台交换机+1
默认是20s BPDU最大存活时间,当message age等于max age,则认为该BPDU失效
BPDUf发送间隔,默认是2s
用于端口在监听状态和学习状态分别需要等待的时间,默认是15s
----------------------
STPd的端口开销,一共有三个标准,我们可以使用stp pathcost-standard 补全查看
分别是
dot1d-1998 IEEE 802.1d-1998 IEEE标准,比较老
dot1t IEEE 802.1T IEEE标准,华为默认此标准
legacy legacy 华为私有标准
③ 什么是 bp 保护,如何配置(cisco)
1、首先在电脑上点击打开cisco软件。然后新建三个电脑和路由器。
④ BPDU报文是通过什么进行传送的
在STP协议中,BPDU报文是通过交换机互联链路进行传送的。目的MAC是一样的与具体设备无关,所有参与STP计算的交换机都会监听这个多播地址,这样也保证交换机都能收到BPDU了。
连接方法:
1、首先打开编辑器。
注意事项:
BPDU包含的关键字段。
STP使用BPDU选择根网桥2-1:
交换机启动时,假定自己是根网桥,在向外发送的BPDU中,根网桥ID字段填写自己的网桥ID。
STP使用BPDU选择根网桥2-2:
当接收到其他交换机发出的BPDU后,比较网桥ID,选择较小的添加到根网桥ID中。
STP使用BPDU计算根路径成本2-1:
根网桥发送根路径成本为0的BPDU。
STP使用BPDU计算根路径成本2-2:
其他交换机接收到根网桥的BPDU后,在根路径成本上添加接收接口的路径成本,然后转发生成树端口的状态。
⑤ STP、RSTP
为了提高网络可靠性,避免单点故障而导致网络中断,常常需要在网络中部署冗余链路或冗余设备,但是部署了冗余链路或冗余设备的网络,也会从无环的树型网络结构变为环形网络结构,环形网络结构会带来新的问题:
1、广播风暴导致网络不可用
因为交换机收到广播帧,会将广播帧从接收端口外的所有接口转发出去;
广播帧就会在环形网络中无限循环转发,随着广播帧的增加,最终导致整个网络的资源被耗尽,网络瘫痪不可用;
2、MAC地址表震荡导致MAC地址表被破坏
即使是单播报文,也有可能导致交换机的MAC地址表项混乱,破坏交换机的MAC地址表;
因为交换机接收到未知单播帧后,也会向除接收端口外的所有接口转发;
未知单播帧就会在环形网络中无限循环转发,同一交换机不断的从不同的接口学到未知单播帧,交换机就会不停的修改MAC地址表,导致MAC地址表震荡,破坏MAC地址;
STP根据IEEE 802.1D标准建立,用于在局域网中消除二层环路的问题;
运行STP协议的设备通过彼此交互信息发现网络中的环路,并有选择地对某些端口进行阻塞,最终实现将环路网络结构修剪成无环路的树型网络结构,从而防止报文在环形网络中不断循环,避免设备由于重复接收相同的报文造成处理能力下降。
STP仅在网络中存在冗余链路或者存在环形网络拓扑结构时才需要使用;
使用STP技术,其实更多是抱着以防万一的心态,怕网络中存在这样的物理封闭环路;
因为STP技术在保证正常使用冗余链路备份的同时,又能确保不会出现二层通信环路;
一个根桥、两个度量、三个要素、四个原则、五个端口状态
一个根桥:
树型的网络拓扑结构必须有一个树根,就像一棵树只有一个树根一样,对于一个运行STP协议的网络,根桥在全网中只有一个,就是网络中具有最小桥ID的交换机;
网络中除根桥外的其它交换机成为非根桥;
网络收敛后,根桥会按照一定的时间间隔向外发送配置BPDU,非根桥仅对该报文进行转发,传达拓扑变化记录,保证拓扑的稳定;
两个度量:
在STP计算中要确定两个方面,一是哪台交换机作为根桥,二是非根桥的哪些端口收发数据,哪些端口该被阻塞,以便最终形成无环路的树型网络拓扑结构;
STP计算依据的就是ID和路径开销这两个度量;
1、ID
ID包括BID桥ID和PID端口ID两种;
BID Bridge ID一共64位,高16位为Bridge Priority桥优先级,低48位为桥背板MAC地址;
BID决定了哪台交换机成为网络中的根桥,BID最小的交换机被选举为根桥;
从桥优先级字段和桥MAC地址字段所处位置可以看出,桥优先级越小,桥ID越小,桥优先级相同,取桥MAC地址小的作为根桥;
桥优先级数值范围0 - 61440,数值越小越优先;
PID Port ID一共16位,高4位是端口优先级,低12位是端口号;
在确定根端口、指定端口的过程中,如果根路径开销、发送者桥ID均相同,发送者PID小的端口成为根端口或指定端口;
端口优先级数值范围0 - 255,数值越小越优先;
2、路径开销
路径开销是一个端口参数,由具体端口的链路速率决定,是STP协议用于选择链路的参考值;
对于聚合链路,链路速率是聚合组中所有状态位UP的成员口的速率之和;
STP协议通过计算各端口的路径开销,选择较为强壮的链路,阻塞多余的链路,将网络修剪成无环路的树型网络结构;
根路径开销是某端口到根桥累计的路径开销,就是所经过的各个桥上的各端口的路径开销累加值;
根桥上所有端口的根路径开销,以及同交换机上不同端口间的路径开销值均为零;
某接口的根路径开销 = 根端口接收配置BPDU携带的根路径开销 + 根端口的路径开销
三个选举要素
由环形网络拓扑结构修剪为树型结构,需要使用STP中的三个选举要素,即根桥、根端口和指定端口;
根桥 就是STP网络中BID桥ID最小的桥,通过交互配置BPDU报文选出最小的BID作为根桥;
根端口 非根桥上接收最优配置BPDU的端口,即离根桥最近的端口;
最优配置BPDU根据BPDU优先级确定;
在一个运行STP协议的设备上,根端口有且只有一个,根桥上没有根端口;
指定端口 就是向一个网段上发送最优配置BPDU的端口;
一旦根桥、根端口、指定端口选举成功,整个树型网络拓扑结构就建立完成了;
拓扑稳定后,只有根端口、指定端口转发流量,其余端口处于阻塞状态;
四个比较原则
STP计算依据的是各个端口发送配置BPDU报文携带的4个字段:
1、根桥ID 每个STP网络只生成一棵树,一棵树只有一个树根;
2、根路径开销 发送该配置BPDU的端口到根桥的累计路径开销;
3、发送者桥ID 发送该配置BPDU的桥ID;
4、发送者端口ID 发送该配置BPDU的端口ID;
BPDU优先级按照上述顺序依次比较这四个字段确定,四个字段都是数值越小越优先;
需要注意的是,当非根桥从多个端口收到多个不同的配置BPDU时,根路径开销的比较是接收配置BPDU携带的根路径开销值加上接收端口路径开销值进行比较;
五个端口状态
运行STP协议的设备,有以下5个端口状态:
1、disabled 禁用状态
2、blocking 可以收发BPDU
该状态下正在确定根桥、根端口、指定端口;
3、listening 可以收发BPDU
在端口被选举为根端口或指定端口后,进入到该状态,是一种过渡状态;
4、learning 可以收发BPDU、学习MAC地址表项
经过一个转发延时后进入该状态,需要再经过一个转发延时后才能进入forwarding状态,也是一种过渡状态;
5、forwarding 可以收发BPDU、学习MAC地址表项、转发用户流量
只有根端口、指定端口才能进入转发状态;
新选出的根端口、指定端口要经过两倍的转发延时后,才能进入转发状态,确保新的配置BPDU传遍整个网络,可以防止临时环路的产生;
STP的3个定时器
1、hello time hello time定时器 缺省2s
设备会每隔hello time时间向周围的设备发送配置BPDU,以确认链路是否存在故障;
网络拓扑稳定之后,只有根桥每隔hello time时间从指定端口发送配置BPDU;
非根桥从根端口接收到配置BPDU之后,才会从指定端口发送配置BPDU;
根桥上的hello time时间被修改后,会在下一次发出的配置BPDU报文中更新hello time这个字段,来向非根桥传递hello time定时器信息;
当网络拓扑发生变化之后,TCN BPDU的发送不受这个定时器的管理;
2、forward delay 转发延时 缺省15s
链路故障会引发网络重新进行生成树的计算,生成树的结构将发生改变,但是重新计算得到的新配置消息不可能立即传遍整个网络,如果此时新选出的根端口和指定端口就立即开始数据转发的话,很可能会造成临时的二层环路;
因此,STP采用了一种状态迁移机制,新选出的根端口和指定端口要经过两倍的forward delay延时后才能进入转发状态,这个延时保证了新的配置消息传遍整个网络,从而防止产生临时的二层环路;
转发延时是状态迁移的延迟时间,缺省值15s,即listening状态持续15s,随后进入learning状态再持续15s;
3、max age 最大生成时间 缺省20s
运行STP协议的网络中,非根桥设备收到配置BPDU报文后,会对报文中的Message Age消息生存时间和Max Age最大生存时间进行比较,如果Message Age小于等于Max Age,非根桥设备就继续转发配置BPDU报文;
如果Message Age大于Max Age,则该配置BPDU报文将被老化,该非根桥设备直接丢弃该配置BPDU,可认为网络直径过大,导致根桥连接失败;
当配置BPDU从根桥发出时,报文中的Message Age值为0,配置BPDU报文每经过一个交换机,Message Age增加1;
STP BPDU报文
STP协议采用的是BPDU Bridge Protocol Data Unit 桥协议数据单元类型报文,也称为配置消息,STP就是通过在设备直接传递BPDU来确定最终修剪完成的树型网络拓扑结构;
STP BPDU报文被封装在以太网数据帧中,此时目的MAC地址是组播MAC地址:01-80-C2-00-00-00,在LLC头部中IEEE为STP保留的DSAP和SSAP值均为0x42,Control为0x03;
STP BPDU分为两类,配置BPDU和TCN BPDU
1、Configuration BPDU 配置BPDU 用于生成树计算与维护
配置BPDU是一种心跳报文,只要端口使能STP协议,设备就会按照hello time定时器的时间间隔从指定端口发送配置BPDU;
在初始化过程中,每个交换机都会主动发送配置BPDU,但在网络拓扑稳定以后,只有根桥主动从指定端口发送配置BPDU;
非根桥从根端口收到配置BPDU后才触发从指定端口发送自己的配置BPDU;
配置BPDU在以下3中情况下会产生:
1)根桥每隔hello time时间周期性从指定端口发送配置BPDU;
2)非根桥从根端口收到配置BPDU后,触发从指定端口发送自己的配置BPDU;
3)当指定端口收到次优配置BPDU时,会立刻从该指定端口发送自己的配置BPDU;
配置BPDU中的字段:
protocol identifier协议ID:2字节,总是为0;
protocol version协议版本:1字节,总是为0;
message type消息类型:1字节,0x00为配置BPDU,0x80为TCN BPDU
flags标志:1字节,最低位TC Topology Change标志位,最高位TCA Topology Change Acknowledgment标志位;
Root Identifier根桥ID:8字节,2字节桥优先级,6字节桥MAC;
Root Path Cost根路径开销:4字节,发送该BPDU的端口到根桥的累计路径开销;
Bridge Identifier桥ID:8字节,发送该BPDU的桥ID,2字节桥优先级,6字节桥ID;
Port Identifier端口ID:2字节,发送该BPDU的端口ID,高4位端口优先级,低12位端口号;
Message Age消息生存时间:2字节,根桥发送的配置BPDU中该字段为0,每经过一个交换机加1,小于等于Max Age的配置BPDU才会被转发,否则被丢弃;
Max Age最大生存时间:2字节,配置BPDU的生存时间超过Max Age就会失效,缺省20s;
Hello Time:2字节,根桥每隔hello time周期性发送配置BPDU,缺省2s;
Forward Delay转发延时:2字节,listening和learning各自持续的时间,防止临时的二层环路,缺省15s;
2、Topology Change Notificaition BPDU TCP BPDU 用于下游设备通知上游设备网络拓扑变化,直到根桥
TCN BPDU是在设备检测到网络拓扑发生变化时才发出的;
TCN BPDU在如下两种情况下会产生:
1)存在指定端口的设备上,端口状态变为forwarding;
2)从指定端口收到TCN BPDU后向根桥复制TCN BPDU;
TCN BPDU中的字段:
protocol identifier协议ID:2字节,总是为0;
protocol version协议版本:1字节,总是为0;
message type消息类型:1字节,0x00为配置BPDU,0x80为TCN BPDU;
STP的不足
STP协议虽然解决了二层环路问题,但是由于网络拓扑收敛速度慢,会影响用户通信质量;
Blocking到Forwarding需要经过两个转发延时间隔,另外配置BPDU超时需要20s;
如果网络中的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁中断;
1)STP协议采用的是被动算法,依赖定时器等待的方式确定拓扑,如转发延时,所以收敛速度慢;
2)STP网络拓扑稳定后,只有根桥主动发送配置BPDU,非根桥只能被动转发,也导致收敛速度慢;
3)没有细致区分端口状态和端口角色;
STP是最原始的生成树协议,它的主要不足是网络拓扑收敛速度慢;
RSTP是在STP基础上改进的生成树协议版本,提高了网络拓扑收敛速度;
IEEE802.1w定义的RSTP保留了STP的大部分算法和计时器,只在一些细节上做了改进,但这些改进相当关键,极大的提升了STP性能,能满足低延时、高可靠性的网络要求;
RSTP对STP的改进主要体现在端口角色、端口状态、BPDU的变化和P/A收敛机制四个方面:
1、新增三种端口角色
RSTP在STP中根端口、指定端口的基础上,对其它端口进行了细分;
1)Alternate替代端口
作为根端口的备份端口,根端口故障后,替代端口就会无延时地进入转发状态;
2)Backup备份端口
作为指定端口的备份端口,指定端口故障后,备份端口就会无延时地进入转发状态;
3)Edge边缘端口
用于连接主机,不参与生成树计算,不收发BPDU,能够直接进入forwarding状态;
如果收到BPDU报文就会失去边缘端口属性,开始收发报文进行STP生成树计算;
2、重新划分端口状态
RSTP把STP中的Disabled、Blocking、Listening三种端口状态用Discarding状态替代,即:
1)Discarding 收发BPDU
2)Learning 收发BPDU、学习MAC地址
3)Forwarding 收发BPDU、学习MAC地址,转发用户流量
3、BPDU的变化
RSTP协议与STP协议一样在交换机间使用BPDU交互信息,但是RSTP只有配置BPDU,即RST BPDU,没有TCN BPDU;
RSTP在BPDU方面的改变主要体现在BPDU格式、拓扑变化BPDU的使用和配置BPDU处理方式的改变三个方面:
1)BPDU格式上的改变
Protocol Version字段:RST BPDU是2,不再为0,运行STP的设备收到RST BPDU会丢弃;
BPDU Flag字段:最高位TCA和最低位TC保持不变,RST BPDU使用了STP配置BPDU中Flag字段保留的中间6位,增加了端口状态、端口角色和PA机制三个功能的标志;
PA机制:Agreement位和Proposal位用于RSTP的点到点链路的PA机制;
端口状态:Forwarding位和Learning位用于表示发送RST BPDU的端口的RSTP端口状态;
端口角色:占两个比特,00表示发送RST BPDU的端口的端口角色未知;
01表示发送RST BPDU的端口的RSTP端口角色为Alternate替代端口或Backup备份端口;
10表示发送RST BPDU的端口的RSTP端口角色为根端口;
11表示发送RST BPDU的端口的RSTP端口角色为指定端口;
2)拓扑变化BPDU的使用
在RSTP中不再需要从根端口依次向上发送TCN BPDU,直至根桥;
RSTP直接发送TC置1的RST BPDU,接收的交换机直接清空MAC地址表;
交换机清空MAC地址表不再需要等待根桥发送的TC置1的配置BPDU,提高了收敛速度;
3)配置BPDU处理方式的改变
配置BPDU处理方式的改变主要体现在配置BPDU的发送方式、超时时间和处理次优BPDU三个方面:
配置BPDU的发送方式:
拓扑稳定后,STP中只有根桥按照hello time时间间隔发送配置BPDU,非根交换机需要等待从根端口收到配置BPDU,才会从指定端口发送自己的配置BPDU,这样导致STP计算复杂和缓慢;
RSTP中所有交换机都按照hello time时间间隔周期性发送配置BPDU,无需等待根桥发出的配置BPDU;
配置BPDU的超时时间:
STP中需要等待Max Age 20s最大生存时间后,配置BPDU失效才会认为上游邻居故障;
RSTP中如果连续三个hello time时间间隔没有收到RST BPDU,就认为上游邻居故障;
处理次优BPDU:
STP中只对指定端口收到的次优配置BPDU,立即发送自己更优的配置BPDU;
对于根端口收到的次优配置BPDU,不会做同样处理,而是等待Max Age最大生存时间超时,才会进行BPDU协商;
RSTP端口收到次优BPDU都会立即发送自身更优的RST BPDU,无需等待20sMax Age最大生存时间超时时间;
RSTP处理次优BPDU不再像STP那样依赖于定时器通过超时完成拓扑收敛,从而加快了拓扑收敛;
4、P/A收敛机制
STP中确定一个端口为指定端口后,端口从Listening到Learning,Learning到Forwarding,要经过两倍的转发延时时间才能进入Forwarding状态,这种保守的设计可以防止临时的二层环路,但是收敛速度慢;
RSTP的提议确认机制,是为了让指定端口尽快进入Forwarding状态,而不必等待转发延迟;
P/A机制只能在点到点链路上使用,即端口所在的以太网对端只有一台设备,否则要从Learning到Forwarding要等待一个转发延时时间;
1)当一个指定端口处于Discarding或learning状态时,会向下游设备发送Proposal位置1的RST BPDU,请求快速切换到Forwarding状态;
2)下游设备根端口收到后,会让除根端口除外的所有非边缘端口进入Discarding状态,然后从根端口向上游设备发送Agreement位置1的RST BPDU,同意上游设备指定端口进入Forwarding状态;
3)上游设备收到后,指定端口直接进入Forwarding状态;
4)下游设备通过同样的方式恢复指定端口的转发;
5、RSTP保护功能
1)BPDU保护
边缘端口在收到BPDU以后端口状态将变为非边缘端口,此时就会造成生成树的重新计算,如果攻击者伪造RST BPDU恶意攻击交换设备,就会引起网络震荡;
启动了BPDU保护功能后,如果边缘端口收到RST BPDU,边缘端口将被error-down,但是边缘端口属性不变,同时通知网管系统被错误down掉的边缘端口只能由网络管理员手动恢复;
也可以配置端口自动恢复功能,并设置延迟时间,使被错误down掉的边缘端口可自动恢复;
2)Root保护
由于维护人员的错误配置或网络中的恶意攻击,根桥收到优先级更高的RST BPDU会失去根桥的地位,重新计算生成树,并且由于拓扑结构变化,可能造成高速流量迁移到低速链路,引起网络拥塞;
对于启动Root保护功能的指定端口,端口角色只能保持为指定端口,一旦启用Root保护功能的指定端口收到优先级更高的RST BPDU,端口将进入Discarding状态,不再转发报文;
在经过一段时间(通常为两倍的Forward Delay),如果端口一直没有收到高优先级的RST BPDU,端口自动恢复到正常的Forwarding状态;
3)环路保护
当出现链路拥塞或者单向链路故障时,根端口和Alternate替代端口会被老化,根端口老化会导致交换机重新选择根端口,Alternate替代端口老化将迁移到forwarding状态,这样会产生环路;
在启动了环路保护功能后,如果根端口或Alternate端口长时间收不到来自上游的RST BPDU,则向网管发出通知信息,根端口进入Discarding状态,直到根端口收到RST BPDU,端口状态才恢复正常到forwarding状态,而阻塞端口则会一直保持在阻塞状态不转发报文,从而不会在网络中形成环路;
4)防TC - BPDU报文攻击保护
交换设备在接收到TC - BPDU报文后,会执行MAC地址表和ARP表的删除操作,如果频繁操作则会对CPU的冲击很大;
启用防TC -BPDU报文攻击功能后,可配置单位时间内交换机可以处理TC-BPDU报文的次数;
如果单位时间内交换设备在收到TC-BPDU报文数量大于配置的阀值,那么设备只会处理阀值指定的次数;对于其它超出阀值的TC-BPDU,定时器到期后交换机只对其统一处理一次;这样可以避免频繁地删除MAC地址表和ARP表,达到保护设备的作用;
RSTP与STP的互操作:
RSTP可以和STP互操作,但是此时会丧失RSTP快速收敛特性;
当一个网段既有运行STP的交换网络,又有运行RSTP的交换设备时,STP设备会忽略RST BPDU,而运行RSTP设备的端口接收到STP的配置BPDU时,会在两个Hello time时间之后将自己的端口转换到STP工作模式,发送STP 配置BPDU,这样就实现了互操作;
⑥ STP生成树协议
为了提高网络可靠性,交换机网络中通常会使用冗余链路,冗余链路会给交换机带来环路风险,并导致 广播风暴 以及 MAC地址表不稳定 等问题,生成树协议STP(Spanning Tree Protocol)可以在提高可靠性的同时又避免环路带来的各种问题。
根据交换机的转发原则, 如果交换机从一个端口上接收到的是一个广播帧, 或者是一个目的MAC地址未知的单播帧,则会将这个帧向除源端口之外的所有其他端口转发。如果交换网络中有环路,则这个帧会被无限转发,此时便会形成广播风暴,网络中也会充斥着重复的数据帧。
STP的主要作用: 利用生成树算法、在以太网络中,创建一个以某台交换机的某个端口为根的生成树,自动地在逻辑上阻塞一个或多个冗余端口,避免环路。
STP的基本工作原理为:通过 BPDU (Bridge Protocol Data Unit,桥接协议数据单元)的交互来传递STP计算所需要的条件,随后根据特定的算法,阻塞特定端口,从而得到无环的树形拓扑。
为了计算生成树, 交换机之间需要交换相关的信息和参数, 这些信息和参数被封装在BPDU(Bridge Protocol Data Unit) 中。
BPDU有两种类型:配置BPDU和TCN BPDU(拓扑变更BPDU)。
STP中根桥的选举依据的是桥ID, STP中的每个交换机都会有一个桥ID(Bridge ID) 。 桥ID由16位的桥优先级(Bridge Priority) 和48位的MAC地址构成。 在STP网络中, 桥优先级是可以配置的, 取值范围是0~65535, 默认值为32768。 优先级最高的设备(数值越小越优先) 会被选举为根桥。 如果优先级相同, 则会比较MAC地址, MAC地址越小则越优先 。
非根交换机在选举根端口时分别依据该端口的 根路径开销、 对端BID(Bridge ID) 、 对端PID(Port ID) 和本端PID。
交换机的每个端口都有一个 端口开销 (Port Cost) 参数, 此参数表示该端口在STP中的开销值。 默认情况下端口的开销和端口的带宽有关,带宽越高,开销越小。从一个非根桥到达根桥的路径可能有多条,每一条路径都有一个总的开销值,此开销值是该路径上所有接收BPDU端口的端口开销总和(即BPDU的入方向端口),称为路径开销。非根桥通过对比多条路径的路径开销,选出到达根桥的最短路径,这条最短路径的路径开销被称为 RPC (Root Path Cost, 根路径开销),并生成无环树状网络。 根桥的根路径开销是0。
如果有两个或两个以上的端口计算得到的累计路径开销相同,那么选择收到发送者BID最小的那个端口作为根端口。
运行STP交换机的每个端口都有一个端口ID,端口ID由端口优先级和端口号构成。端口优先级取值范围是0到240,步长为16,即取值必须为16的整数倍。缺省情况下,端口优先级是128。端口ID(Port ID)可以用来确定端口角色,值小者优先。
在网段上抑制其他端口(无论是自己的还是其他设备的)发送BPDU报文的端口,就是该网段的指定端口。
根桥的每个端口总是指定端口。
根端口相对应的端口(即与根端口直连的端口)皆为指定端口。
指定端口的选举也是首先比较累计路径开销,累计路径开销最小的端口就是指定端口。如果累计路径开销相同,则比较端口所在交换机的桥ID,所在桥ID最小的端口被选举为指定端口。如果通过累计路径开销和所在桥ID选举不出来,则比较端口ID,端口ID最小的被选举为指定端口。(同根端口选举)
网络收敛后,只有指定端口和根端口可以转发数据。其他端口为预备端口,被阻塞,不能转发数据,只能够从所连网段的指定交换机接收到BPDU报文,并以此来监视链路的状态。
1、 Forwarding:转发状态。 端口既可转发用户流量也可转发BPDU报文, 只有根端口或指定端口才能进入Forwarding状态。
2、 Learning:学习状态。 端口可根据收到的用户流量构建MAC地址表,但不转发用户流量。 增加Learning状态是为了防止临时环路。
3、 Listening:侦听状态。 端口可以转发BPDU报文, 但不能转发用户流量。
4、 Blocking:阻塞状态。 端口仅仅能接收并处理BPDU, 不能转发BPDU, 也不能转发用户流量。 此状态是预备端口的最终状态。
5、 Disabled:禁用状态。 端口既不处理和转发BPDU报文, 也不转发用户流量。
在稳定的STP拓扑里, 非根桥会定期收到来自根桥的BPDU报文。如果根桥发生了故障,停止发送BPDU报文,下游交换机就无法收到来自根桥的BPDU报文。如果下游交换机一直收不到BPDU报文,Max Age定时器就会超时(Max Age的默认值为20秒),从而导致已经收到的BPDU报文失效,此时,非根交换机会互相发送配置BPDU报文,重新选举新的根桥。根桥故障会导致50秒左右的恢复时间,恢复时间约等于Max Age加上两倍的Forward Delay收敛时间。
1、SWA和SWB使用了两条链路互连,其中一条是主用链路,另外一条是备份链路。生成树正常收敛之后,如果SWB检测到根端口的链路发生物理故障,则其Alternate端口会迁移到Listening、Learning、Forwarding状态,经过两倍的Forward Delay后恢复到转发状态。
2、SWB经过集线器与SWA通过两条链路互连,当主用链路故障时,SWB尚未检测到信号丢失,因此保持原状态不变,但是,根端口已经无法收到来至根桥的BPDU报文,经过T=Max_Age-Message_Age 时间后,原BPDU报文过期,SWB的Alternate端口会迁移到Listening、Learning、Forwarding状态, 经过两倍的Forward Delay后恢复到转发状态。因此,链路经过2xForward_Time + (Max_Age-Message_Age)时间后恢复。
SWB与SWA之间的链路发生了某种故障(非物理层故障),SWB因此一直收不到来自SWA的BPDU报文。 等待Max Age定时器超时后,SWB会认为根桥SWA不再有效,并认为自己是根桥,于是开始发送自己的BPDU报文给SWC,通知SWC自己作为新的根桥。在此期间,由于SWC的Alternate端口再也不能收到包含原根桥ID的BPDU报文。其Max Age定时器超时后,SWC会切换Alternate端口为指定端口并且转发来自其根端口的BPDU报文给SWB。所以,Max Age定时器超时后,SWB、SWC几乎同时会收到对方发来的BPDU。 经过STP重新计算后,SWB放弃宣称自己是根桥并重新确定端口角色。非直连链路故障后,由于需要等待Max Age加上两倍的Forward Delay时间,端口需要大约50秒才能恢复到转发状态。
实验拓扑如上图所示,PCA的IP地址为2.2.2.1/24,PCB的IP地址配置为2.2.2.2/24。
由于网络中存在环路,此时可以看到交换机的所有互联端口以及连接主机的端口的指示灯均快速闪动,表示形成了广播风暴。此时PCA 无法ping通PCB。
在SW1上通过命令stp mode配置生成树协议的模式为RSTP,通过命令stp enable在交换机上使能生成树协议。
SW2、SW3、SW4的配置和SW1相同。启用生成树协议后可以看到交换机各端口指示灯停止快速闪动,网络恢复正常。此时PCA可以ping通PCB。
通过命令display stp brief可以查看交换机各端口的STP状态以及端口角色:
由上可以看出各交换机的根端口为连接SW3的端口,SW3不存在根端口,说明SW3即为网络中的根桥。
2中已知SW3为现根桥,我们可以通过以下命令指定根桥:
该配置将SW1设置为根桥,将SW2设置为备份根桥,我们也可以通过更改桥优先级控制根桥的选举,将SW3的优先级修改为8192,SW2的优先级修改为4096。
查看STP信息:
可以看到,SW2已成为新的根桥。
步骤3后,SW3的GigabitEthernet0/0/3端口为根端口,与根桥SW2互联,端口优先级默认为128,数值越大优先级越小。
将SW2的端口GigabitEthernet0/0/3端口优先级设置为32,GigabitEthernet0/0/6端口优先级设置为16:
注意:此处是修改SW2的端口优先级,而不是修改SW3的端口优先级。
在SW3上查看端口角色:
SW3的GigabitEthernet0/0/6端口成为了根端口。
SW4的GigabitEthernet0/0/3为替代端口,SW1的GigabitEthernet0/0/3为指定端口,修改SW1端口GigabitEthernet0/0/2路径开销为2000000。
查看当前端口角色信息。
STP能够提供无环网络,但是收敛速度较慢。如果STP网络的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁中断。快速生成树协议RSTP使用了Proposal/Agreement机制保证链路及时协商,从而有效避免收敛计时器在生成树收敛前超时。
RSTP的端口角色共有4种: 根端口、指定端口、Alternate端口和Backup端口。
Alternate端口:由于学习到其它网桥发送的更优配置BPDU报文而阻塞的端口;作为根端口的备份端口。
Backup端口:由于学习到自己发送的更优配置BPDU报文而阻塞的端口;作为指定端口的备份端口。
Discarding状态 , 端口既不转发用户流量也不学习MAC地址。
Learning状态 , 端口不转发用户流量但是学习MAC地址。
Forwarding状态 , 端口既转发用户流量又学习MAC地址。
RSTP收敛遵循STP基本原理。网络初始化时,网络中所有的RSTP交换机都认为自己时“根桥”,并设置每个端口为指定端口,此时,端口为Discarding状态。
每个认为自己是“根桥” 的交换机生成一个RST BPDU报文来协商指定网段的端口状态,此RST BPDU报文的Flags字段里面的Proposal位需要置位。当一个端口收到RST BPDU报文时,此端口会比较收到的RST BPDU报文和本地的RST BPDU报文。如果本地的RST BPDU报文优于接收的RST BPDU报文,则端口会丢弃接收的RST BPDU报文,并发送Proposal置位的本地RST BPDU报文来回复对端设备。
当确认下游指定端口迁移到Discarding状态后,设备发送RST BPDU报文回复上游交换机发送的Proposal消息。在此过程中,端口已经确认为根端口,因此RST BPDU报文Flags字段里面设置了Agreement标记位和根端口角色。
在P/A进程的最后阶段,上游交换机收到Agreement置位的RST BPDU报文后,指定端口立即从Discarding状态迁移为Forwarding状态,然后,下游网段开始使用同样的P/A进程协商端口角色。
首先,RSTP将网络拓扑的变化定义为端口角色的变化,因为网络拓扑的变化可以描述为某些网络端口在转发/阻塞态之间的转换,而RSTP将端口角色和端口状态进行了明确的定义(这是RSTP比STP优胜的地方)。
其次,RSTP端口角色的变化直接影响端口状态的变化。R-Port、D-Port、Edge Port处于Forwarding状态;Alternated Port(以下简称A-Port)和Backup Port处于Discarding状态。
若某条链路失效,即链路两端的端口从转发态变为阻塞态。从生成树协议的目的来看,并不会使得网络形成环路。RSTP仅需要找到处于合适的阻塞态端口,并将其转为转发态,使拓扑重新连通起来。由于RSTP在计算时已经分配好R-Port的备份端口A-Port,因此若从转发态变为阻塞态的是R-Port,则把对应的A-Port改为转发态;同理,D-Port的则色也可置相应的Backup Port为转发来实现。而Edge Port并不影响生成树的计算,故忽略。这样,当某个(些)端口状态从转发到阻塞,对于RSTP而言,无需重新计算(是不是有点熟悉,好像哪儿见过不用计算直接使用备用路径的算法。聪明的你一定想到了:DUAL)。
由于某条链路的连通有可能导致生成树域成环。在RSTP里,该行为定义为D-Port从阻塞态转化为转发态,相对的检查机制应的就是P/A机制,即从需要进入转发态的D-Port,建议对端进行同步,待收到确认后进入转发态。
对端Bridge在接收到“建议”消息后,一方面阻塞自身所有D-Port,并返回“同意”消息给“建议”消息发送方;另一方面,对自身端口进行同步。同步分两种类型:若端口为E-Port,或者原来就是非转发态,则为“已同步”;若端口原来为转发态,为重新进入转发态,将对对端进行“建议”并等待确认。
下面将结合图例,演示P/A机制的流程:
1、B、E之间建立一条新链路,首先进行端口角色选择;
2、B、E通过该链路交换BPDU,由于B端口发送的BPDU较优(superior),因此B端口角色为D-Port;与此同时,E从B收到的BPDU比从C收到的较优,因此E把连接B的端口转换为Root Port,同时,连接C的端口转换为A-Port。要注意的是,RSTP相对STP进行了根端口转发的改进,一旦确定了旧的R-Port非转发态,且新的R-Port已确定,则新的R-Port立即进入转发态;
3、此刻B端口仍为Discarding状态,并期望进入Forwarding状态,因此它将从该D-Port发送“Proposal“置位的配置BPDU给E;E接收到该BPDU后,进入同步状态:即将所有转发态端口转为丢弃,并检查端口同步情况;
4、从同步原理可知,E中只有连接D的端口为转发态,因此E继续阻塞该端口,并向B返回”同意“置位的BPDU。自此,B-E链路进入已完成同步,立即进行流量转发;而由于D连接E的端口为A-Port,不转发BPDU,因此E发出的”Proposal“置位BPDU将不会被”Agreement“置位的BPDU回应。该端口将一直保持阻塞态。
实验拓扑如上图所示,交换机各端口均属于VLAN1,PCA的IP地址为2.2.2.1/24,PCB的IP地址配置为2.2.2.2/24。
测试SW2和SW3的连通性:
查看SW2的端口角色
SW2的GigabitEthernet0/0/3为根端口,用ping测试S1到S2的连通性20次。
提示:SW2执行ping操作之后立刻关闭SW3的GigabitEthernet0/0/3接口。
查看SW2的端口角色
SW2的GigabitEthernet0/0/6 成为根端口,端口进入FORWARDING状态,1个包超时。
在SW1上通过命令stp mode配置生成树协议的模式为RSTP,通过命令stp enable在交换机上使能生成树协议。
SW2、SW3、SW4的配置和SW1相同。
配置SW2为STP生成树,其他配置保持不变。
查看SW2端口角色信息
SW2的GigabitEthernet0/0/3为根端口,用ping测试S1到S2的连通性30次。
提示:SW2执行ping操作之后立刻关闭SW3的GigabitEthernet0/0/3接口。
查看SW2端口信息
SW2的GigabitEthernet0/0/6 成为根端口,端口进入FORWARDING状态,16个包超时。
RSTP兼容STP,但收敛方式以STP模式运行。
不管是STP还是RSTP,在网络中进行生成树计算的时候都没有考虑到VLAN的情况。它们都是对单一生成树实例进行应用的。也就是说,在STP和RSTP中所有的VLAN都共享相同的生成树。
为了解决这一个问题,思科提出了第二代生成树 - PVST、PVST+。按照PVST协议规定,每一个VLAN都有一个生成树,而且是每隔2秒就会发送一个BPDU,这对于一个有着上千万个VLAN网络来说,一方面这么多生成树维护起来比较困难,另一方面,为每个VLAN每隔2秒就发送一个BPDU,交换机也是难以承受的。
为了解决PVST带来的困难,思科又提出了第三代生成树 - MST(MSTP)多生成树协议。MSTP可以对网络中众多的VLAN进行分组,把VLAN分到组里。这里的组就是后面讲的MST实例(Instance)。每个实例一个生成树,BPDU只对实例进行发送。这样就达到了负载均衡。
多生成树协议MSTP(Multiple Spanning Tree Protocol)是IEEE 802.1s中定义的一种新型生成树协议。简单说来,STP/RSTP是基于端口的,PVST+是基于VLAN的,而MSTP是基于实例的。与STP/RSTP和PVST+相比,MSTP中引入了“实例”(Instance)和“域”(Region) “的概念。
所谓“实例”就是多个VLAN的一个集合,这种通过多个VLAN捆绑到一个实例中去的方法可以节省通信开销和资源占用率。MSTP各个实例拓扑的计算是独立的,在这些实例上就可以实现负载均衡。使用的时候,可以把多个相同拓扑结构的VLAN映射到某一个实例中,这些VLAN在端口上的转发状态将取决于对应实例在MSTP里的转发状态。
所谓“域”,即MST域(MST Region),由域名(Configuration Name)、修订级别(Revision Level)、格式选择器(Configuration Identifier Format Selector)、VLAN与实例的映射关系(mapping of VIDs to spanning trees),其中域名、格式选择器和修订级别在BPDU报文中都有相关字段,而VLAN与实例的映射关系在BPDU报文中表现摘要信息(Configuration Digest),该摘要是根据映射关系计算得到的一个16字节签名。只有上述四者都一样且相互连接的交换机才认为在同一个域内。如上图所示,每个域内所有交换机都有相同的MST域配置(具有相同的域名;具有相同的VLAN到生成树实例映射配置;具有相同的MSTP修订级别配置)。缺省时,域名就是交换机的桥MAC地址,修订级别等于0,格式选择器等于0,所有的VLAN都映射到实例0上。
MSTP的实例0具有特殊的作用,称为CIST(Common Internal Spanning Tree),即公共与内部生成树,其他的实例称为MSTI(Multiple Spanning Tree Instance),即多生成树实例。CIST由通过STP/RSTP计算得到的单生成树和MSTP计算得到的域组成,是为了保证在所有桥接的局域网是简单的和全连接的。CST(Common Spanning Tree)是STP/RSTP也是MSTP计算出的用于连接MST域的单生成树。IST(Internal Spanning Tree)是在一个给定的MST域内由CIST提供的连通性。如上图所示,如果把每个MST域看作是一个“交换机”,CST就是这些“交换机”通过STP/RSTP或者MSTP协议计算生成的一棵生成树。IST是CIST在MST域内的片段,是一个特殊的多生成树实例。
与STP和RSTP相比,MSTP中引入了总根和域根的概念。总根是一个全局概念,对于所有互连的运行STP/RSTP/MSTP的交换机只能有一个总根,也即是CIST的根;而域根是一个局部概念,是相对于某个域的某个实例而言的。上图所示,所有相连的设备,总根只有一个,而每个域所包含的域根数目与实例个数相关。
与STP和RSTP相比,MSTP中引入了外部路径开销和内部路径开销的概念。外部路径开销是相对于CIST而言的,同一个域内外部路径开销是相同的;内部路径开销是域内相对于某个实例而言的,同一端口对于不同实例对应不同的内部路径开销。
与STP和RSTP相比,MSTP中引入了域边缘端口和Master端口的概念。域边缘端口是连接不同MST域、MST域和运行STP的区域、MST域和运行RSTP的区域的端口,位于MST域的边缘;在某个不包含总根的域中,Master端口是所有边界端口中,到达总根具有最小开销的端口,也就是连接MST域到总根的端口,位于整个域到总根的最短路径上;Alternate端口是Master端口的备份端口,如果Master端口被阻塞后,Alternate端口将成为新的Master端口。
MSTP协议在计算生成树时使用的算法和原理与STP/RSTP大同小异,只是因为在MSTP中引入了域和内部路径开销等参数,故MSTP中的优先级向量是7维,而STP/RSTP是5维。
STP/RSTP中的优先级向量是:
{根桥标识符,根路径开销,桥标识符, 发送BPDU报文端口标识符, 接收BPDU报文端口标识符}
MSTP中的优先级向量是:
{CIST根桥标识符,CIST外部根路径开销,CIST域根标识符,CIST内部根路径开销,CIST指定桥标识符,CIST指定端口标识符,CIST接收端口标识符}
其中STP/RSTP中的桥标识符实际上是发送BPDU的设备的标识符,与MSTP中的CIST指定桥标识符对应。MSTP中的CIST域根标识符有两种情况,一种是总根所在域内,BPDU报文中该字段是参考总根的标识符,另一种情况是不包含总根的域中,BPDU报文该字段是参考主设备的标识符。运行MSTP的实体初始化时认为自己是总根、域根,通过交互配置消息,按照上面介绍的7维向量计算CIST生成树和MSTI。
网络中的设备发送接受BPDU报文,在经过比较配置消息后,在整个网络中选择一个优先级最高的交换机作为CIST的树根。在每个MST域内MSTP通过计算生成IST;同时MSTP将每个MST域作为单台交换机对待,通过计算在MST域间生成CST。如前所述,CST和IST构成了整个交换机网络的CIST。
在MST域内,MSTP根据VLAN和生成树实例的映射关系,针对不同的VLAN生成不同的生成树实例。每棵生成树独立进行计算,计算过程与STP/RSTP计算生成树的过程类似。
MSTI的特点:
MSTP拓扑变化处理与RSTP拓扑变化处理过程类似。
在RSTP中检测拓扑是否发生变化只有一个标准:一个非边缘端口迁移到Forwarding状态。
如此,网络中就会产生RST BPDU的泛洪。
定义VLAN1-10属于INSTANCE 1,VLAN11-20属于INSTANCE 2。
配置SW2在实例1中的优先级为4096, 在实例2中的优先级为8192。
配置SW3在实例2中的优先级为4096,在实例1中的优先级为8192。
查看实例1和实例2的状态
SW2为实例1的根桥,SW3为实例2的根桥。
查看MSTP实例1的端口角色
实例1中SW2为根网桥,SW1的VLAN 1到VLAN10的用户经过GigabitEthernet0/0/1 接口和SW2、 SW3、 SW4的VLAN 1到VLAN10的用户通讯。
⑦ BPDU报文攻击的原理是什么
要知道BPDU报文攻击的原理,那就要知道BPDU的具体功能,BPDU(Bridge Protocol Data Unit)是在网桥连接中,为了避免产生回路,而使用的,具体的协议是Spanning-Tree,就是生成树协议。在多个网桥(交换机也是网桥的一种)互联时,当一台网桥接入网络、撤出网络(可能因为损坏或断电)时,生成树需要重新计算、重新生成,而在重新生成的过程中,整个网络时不转发数据的,按照最基本的的要求,这个时间可能长达40秒,也就是说这段时间内网络是瘫痪的,当然各个厂家对此都有一定的改进,时间会缩短,起码正常工作的部分受影响会大大减小。
BPDU报文攻击时会发送BPDU报文,通知网络内的交换机,生成树发生变化,需要重新计算,这样就会造成网络暂时中断,如果这种现象出现很频繁,那么整个网络也就不可用了。
有关详细知识,去查看以下Spanning-Tree的工作原理。我这里有一份我整理的PPT文档,如果需要,可以发给你。
⑧ 生成树发送报文格式有哪二种
BPDU报文有2种类型
一种是配置BPDU,用于生成树计算,是由每个交换机发出的。
一种是拓扑变更通告BPDU,用于通告网络拓扑的变化,是由根网桥发出的,用于激活block(阻塞)端口。
⑨ BPDU失效,在报文格式中有什么特征
BPDU是运行STP的交换机之间交换的讯息帧。BPDU内包含了STP所需的路径和优先权信息,STP便利用这些信息来确定根桥以及到根桥的路径。
网桥协定数据单元(Bridge Protocol Data Unit)。是一种生成树协定问候数据包,它可以配置的间隔发出,用来在网路的网桥间进行信息交换。
当一个网桥开始变为活动时,它的每个连线端口都是每2s(使用预设定时值时)传送一个BPDU。然而,如果一个连线端口收到另外一个网桥传送过来的BPDU,而这个BPDU比它正在传送的BPDU更优,则本地连线端口会停止传送BPDU。如果在一段时间(预设为20s)后它不再接收到邻居的更优的BPDU,则本地连线端口会再次传送BPDU。
主要栏位
协定ID:该值总为0。
版本号:STP的版本(为IEEE 802.1d时值为0)。
报文类型:BPDU类型(配置BPDU=0,TCN BPDU=80)。
标记域:LSB(最低有效位)=TCN标志;MSB(最高有效位)=TCA标志。
根网桥ID:根信息由2位元组优先权和6位元组ID组成。这个信息组合标明已经被选定为根网桥的设备标识。
根路径成本:路径成本为到达根网桥交换机的STP开销。表明这个BPDU从根网桥传输了多远,成本是多少。这个栏位的值用来决定哪些连线端口将进行转发,哪些连线端口将被阻断。
传送网路桥ID:传送该BPDU的网桥信息。由网桥的优先权和网桥ID组成。
连线端口ID:传送该BPDU的网桥连线端口ID。
计时器:计时器用于说明生成树用多长时间完成它的每项功能。这些功能包括报文老化时间、最大老化时间、访问时间和转发延迟。
最大老化时间:网桥将将根桥看做不可用前保留根ID的最大时间。
访问时间:根网桥连续传送BPDU的时间间隔。
转发延迟:网桥在监听学习状态所停留的时间。
⑩ 非网管交换机会发出bp报文吗
非网管交换机不能发出bp报文。bp报文是通过交换机互联链路进行发送的,BPDU报文是通过以太网帧进行传送地。这是需要网管交换机实现的,非网管交换机不可以。
交换机网管和非网管区别:1、功能不同。网管型交换机比非网管型交换机的功能更强大。它通常为监视连接状态STP、其它类似QOS的高级性能以及VLAN等提供简单网络管理协议,这些特征随厂商和模式的不同而不同。2、价格不同。网管型交换机比非网管型交换机贵很多,配置起来也比非网管型交换机耗时要多。3、优点不同。非网管型交换机优点是价格便宜,节省开支、端口数量密、用户使用灵活。网管交换机支持配置,它可以通过配置更改来实现对网络的控制,如优先级、流量控制和ACL等,而非网管交换机是不支持更改配置的,因此它的功能没有网管交换机的丰富。不仅如此网管交换机还具备背板带宽大、数据吐吞量大、包丢失率小、延迟低以及组网灵活等优点,不过也正是因为网管交换机的功能丰富,它的成本价格相对于非网管交换机来说较高。