生成树协议(spanning tree protocol),是一种工作在OSI网络模型中第二层(数据链路层)的通信协议,是一种由交换机运行的,基本应用是防止交换机冗余链路产生的环路,用于确保以太网中无环路的逻辑拓扑结构,从而避免了广播风暴,大量占用交换机的资源以及mac地址表震荡等问题
生成树协议工作原理:任意一交换机中如果到达根网桥有二条或者二条以上的链路,生成树协议都根据算法把其中一条切断,仅保留一条,从而保证任意二个交换机之间只有一条单一的活动链路,因为这种生成的这种拓扑结构,很像是以跟交换机为树干的树形结构,故为生成树协议。
在之前已经介绍了stp树的选举机制,这次来讲生成树,多生成树以及快速生成树的区别。
一.生成树:
生成树的选举包括:
1.根网桥
(1)看网桥id(BID):BID最小的选举问根网桥
网桥id是由2个字节的网桥优先级和6个字节的mac地址组成
取值范围:0~65535
缺省值:32768
2.根端口
(1)本端口到根端口的路径成本(cost)最低
(2)如果上面比不出来,就比直连端口的网桥id
(3)再不行就比直连端口id(pid)
注:端口id是(端口优先级+端口编号)
3.指定端口
(1)根桥上的端口全是指定端口
(2)非根桥的指定端口:
●本端口所在网桥到根端口路径成本最小
●本端口所在网桥的id值最小
●本端口的端口id最小
stp端口的状态包括:
1.失效(disabled):这种状态可以是由于端口的物理状态(如端口物理层没有up)导致的,也可能是管理员手工将端口关闭
2.阻塞(blocking):处于这个状态的端口不能够参与转发数据报文,但可以接收BPDU 配置消息,并交给CPU处理,不过不能发送配置BPDU消息,也不能进行地址学习。
3.监听(listcning):处于这个状态的端口不参与数据转发,也不进行地址学习,但可以接收并发送BPDU配置消息。
4.学习(lcaming):处于这个状态的端口不能转发数据,但是开始地址学习,并可以接收,处理和发送BPDU配置消息
5.转发(forwarding):一旦端口进入该状态,就可以转发任何数据,同时也进行地址转发和BPDU配置消息的接收、处理和发送。
需要50s的时间,时间太长,所以提出了效率更高的生成树协议
二.快速生成树(RSTP)
1.STP缺陷
STP没有细致区分端口状态和端口角色。
STP算法是被动的算法,依赖定时器等待方式判断拓扑变化,收敛速度慢
STP算法要求在稳定的拓扑中,仅根桥可以主动发送出配置BPDU,其他设备只能被动地进行配置BPDU处理,然后再发送自己的配置BPDU,这也是倒是收敛速度慢的原因之一。
RSTP提出了快速收敛机制:
1.边缘端口机制
edge port(边缘端口):
一般与用户终端设备连接,一般不会收到配置BPDU(终端不支持STP协议),也不参与RSTP拓扑计算,相当于在端口上禁用了RSTP一样,一旦收到配置BPDU后就成了普通的RSTP端口,参与RSTP拓扑计算。
除了边缘端口,其他端口类型:
root port(根端口):
该端口是所在交换机上离根交换机最近的端口,稳定时处于转发状态。
designated port(指定端口):
该端口接收所连接的物理网段发往根交换机方向的数据,以及转发发往所连接的物理网段的数据,稳定时处于转发状态。
backup port(备份端口):指定端口的备份
不处于转发状态,所属交换机不是端口所连接的物理网段。
alternate port(预备端口):根网桥的备份
不处于转发状态,所属交换机不是端口所连接物理网段的指定交换机,alternate端口作为根端口的备份端口,提供了从指定桥到根桥的另一条可切换路径,是上行端口。
端口状态:
discarding:
对收到的数据做丢弃处理,可以接收和发送BPDU(参与生成树计算)但不学习MAC地址表learing:
不转发数据帧,但学习MAC地址表 ,参与生成树计算,接收并且发送BPDU。
forwarding:
正常转发数据帧,学习MAC地址表,参与生成树计算,接收并发送BPDU
2.根端口和指定端口快速切换机制
alternate端口和backup端口处于discarding状态,但在进入learing状态前的根端口和指定端口也为discarding状态。learning状态是某些指定端口和根端口在进入转发状态之前的一种临时状态。designted port和root port稳定情况下处于forwarding状态
注:
RSTP端口角色划分中的一个重要改变就是使用两种不同的端口角色来实现端口冗余备份,一个是backup端口,它与alternate端口进行区分,另一个就是edge端口,一般与PC连接,一般不收到任何配置BPDU,相当于STP处于禁用状态,不会参与RSTP拓扑计算,如果一旦因为某种原因收到了配置BPDU,则可以立即从RSTP的disable状态切换到forawrding状态,这样就丧失了边缘端口的属性,并参与RSTP拓扑计算,引起网络振荡。
三.MSTP
MSTP通过 MSTP 把一个交换网络划分成多个域,每个域叫做一个 MST域(MST Region:Multiple Spanning Tree Region)。 每个域内形成多棵生成树,生成树之间彼此独立,每棵生成树叫做一个 MSTI(Multiple Spanning Tree Instance)。每个实例是由一个或者多个vlan组成。
MSTP生成树的组成
CST:
公共生成树 CST(Common Spanning Tree)是连接交换网络内所有 MST 域的一棵生成树,如果把每个 MST 域看作是一个节点,CST 就是这些节点通过 STP 或 RSTP 协议计算生成的一棵生成树。
IST :
内部生成树 IST(Internal Spanning Tree)是各 MST 域内的一棵生成树。 IST 是一个特殊的 MSTI,MSTI 的 ID 为 0,通常称为 MSTI0,IST 是 CIST 在 MST 域中的一个片段。
CIST:
公共内部生成树 CIST 是通过 STP 或 RSTP 协议计算生成的,连接一个交换网络内所有交换设备的单生成树。 所有 MST 域的 IST 加上 CST 就构成一棵完整的生成树。
总根:
是 CIST(Common and Internal Spanning Tree)的根桥。总根是区域 A0 中的某 台设备
主桥:
是 IST Master,它是IST域内距离总根最近的交换设备,如果总根在 MST 域中,则总根为该域的主桥。
MSTI 域根
是每个多生成树实例的树根。
总结:mstp有两种树,一种是连接不同mst域的树,一个是mst域内不同实例的生成树。
端口角色
MSTP 在 RSTP 的基础上新增了 2 种端口,MSTP 的端口角色共有 7 种:根端口、指定端口、Alternate端口、Backup 端口、边缘端口,Master 端口和域边缘端口。 根端口、指定端口、Alternate 端口、Backup 端口和边缘端口的作用同 RSTP 协议中定义。
Master 端口是 MST 域和总根相连的所有路径中最短路径上的端口,它是交换设备上连接 MST 域到总根的端口。 如果ERPC路径开销相同,则比较上行链路的MST域中instance 0的域根bid的大小。
域边缘端口是指位于 MST 域的边缘并连接其它 MST 域或 SST 的端口。
MSTP定义的端口状态与RSTP协议中定义相同
Forwarding状态:端口既转发用户流量,学习MAC地址,又接收/发送BPDU报文。
Learning状态:过渡状态,端口接收/发送BPDU报文,不转发用户流量但是学习MAC地址。
Discarding状态:端口只接收BPDU报文,不转发用户流量也不学习MAC地址。
端口在拓扑中的角色
Forwarding
根端口、指定端口、Master端口、域边缘端口
Learning
根端口、指定端口、Master端口、域边缘端口
Discarding
根端口、指定端口、Master端口、域边缘端口、Alternate端口(备份端口)、Backup端口(预备端口)
例题:
网桥怎样知道网络端口连接了哪些网站?(63)。当网桥连接的局域网出现环路时怎么办?(64)。
(63)A.如果从端口收到一个数据帧,则将其目标地址记入该端口的数据库
B.如果从端口收到一个数据帧,则将其源地址记入该端口的数据库
C.向端口连接的各个站点发送请求以便获取其MAC地址
D.由网络管理员预先配置好各个端口的地址数据库
(64)A.运行生成树协议阻塞一部分端口
B.运行动态主机配置协议重新分配端口地址
C.通过站点之间的协商产生一部分备用端口
D.各个网桥通过选举产生多个没有环路的生成树
【答案】B A
【解析】
网桥如果从端口收到一个数据帧,则将其源地址记入该端口的数据库。形成MAC和端口的对应表。当网桥连接的局域网出现环路时,运行生成树协议阻塞一部分端口。