第9章冗余交换链路及生成树协议
生成树协议原理

生成树协议原理生成树协议是一种基于链路层的协议,它通常在以太网交换机上实现,用于管理以太网局域网中的网络拓扑。
生成树协议的工作原理是通过使用一个根桥(Root Bridge)和多个非根桥(Non-Root Bridge)来建立一颗树状结构,以确保网络中没有环路存在。
生成树协议的核心算法是通过一种称为生成树算法(Spanning Tree Algorithm)来找到从根桥到每个非根桥的最短路径,从而构建一颗最小生成树。
最小生成树是一种能够连接所有节点并且没有环路的树状结构,它是生成树协议的基础,用于确定网络中数据包的传输路径。
生成树协议的工作流程包括以下几个关键步骤:1. 选择根桥:在网络中通过比较桥(Bridge)的优先级和MAC地址来确定根桥,根桥是生成树中的根节点,所有数据包都将通过根桥进行转发。
2. 计算生成树:每个非根桥通过生成树算法计算到根桥的最短路径,确定自己在生成树中的位置,并将该信息传播到整个网络中。
3. 确定端口状态:每个桥根据生成树信息确定哪些端口可以用于数据包的传输,哪些端口需要阻断以避免环路的产生。
4. 更新生成树:在网络拓扑发生变化时,生成树协议会重新计算生成树,并更新每个桥的状态,重新确定最佳路径。
5. 数据包转发:根据生成树确定的路径,数据包会被从源地址传输到目的地址,通过生成树结构保证数据包的正常传输。
生成树协议的优点是可以有效避免数据包在网络中的循环传输,提升网络通信的稳定性和可靠性。
生成树协议能够自动适应网络拓扑的变化,快速重新计算生成树,并重新确定最佳传输路径,从而保证网络快速恢复到正常状态。
然而,生成树协议也存在一些局限性。
生成树协议在网络中设置大量的桥和端口时,会造成网络拓扑复杂,生成树的计算和更新会消耗大量的网络资源。
此外,生成树协议需要在所有交换机上进行配置和管理,当网络规模较大时,配置和管理网络可能会变得困难。
为了解决生成树协议的一些局限性,IEEE制定了一系列的生成树协议标准,包括802.1D、802.1w和802.1s等。
生成树协议介绍

1. 前言和其他协议一样,生成树协议也是随着网络的不断发展而不断更新换代的。
本文按照技术发展的主线,介绍了生成树协议的发展历程、近期热点和未来的发展方向。
生成树协议是一种二层管理协议,它通过有选择性地阻塞网络冗余链路来达到消除网络二层环路的目的,同时具备链路的备份功能。
由于生成树协议本身比较小,所以并不像路由协议那样广为人知。
但是它却掌管着端口的转发大权—“小树枝抖一抖,上层协议就得另谋生路”。
真实情况也确实如此,特别是在和别的协议一起运行的时候,生成树就有可能断了其他协议的报文通路,造成种种奇怪的现象。
生成树协议和其他协议一样,是随着网络的不断发展而不断更新换代的。
本文标题中的“生成树协议”是一个广义的概念,并不是特指IEEE 802.1D中定义的STP协议,而是包括STP以及各种在STP基础上经过改进了的生成树协议。
在生成树协议发展过程中,老的缺陷不断被克服,新的特性不断被开发出来。
按照大功能点的改进情况,我们可以粗略地把生成树协议的发展过程划分成三代,下面一一道来。
2. 开天辟地的第一代生成树协议:STP/RSTP在网络发展初期,透明网桥是一个不得不提的重要角色。
它比只会放大和广播信号的集线器聪明得多。
它会悄悄把发向它的数据帧的源MAC地址和端口号记录下来,下次碰到这个目的MAC地址的报文就只从记录中的端口号发送出去,除非目的MAC地址没有记录在案或者目的MAC地址本身就是多播地址才会向所有端口发送。
通过透明网桥,不同的局域网之间可以实现互通,网络可操作的范围得以扩大,而且由于透明网桥具备MAC地址学习功能而不会像Hub那样造成网络报文冲撞泛滥。
但是,金无足赤,透明网桥也有它的缺陷,它的缺陷就在于它的透明传输。
透明网桥并不能像路由器那样知道报文可以经过多少次转发,一旦网络存在环路就会造成报文在环路内不断循环和增生,甚至造成恐怖的“广播风暴”。
之所以用“恐怖”二字是因为在这种情况下,网络将变得不可用,而且在大型网络中故障不好定位,所以广播风暴是二层网络中灾难性的故障。
生成树协议介绍及算法实现

目录生成树 (2)摘要 (2)原理 (2)选举根桥 (3)生成树端口状态 (7)收敛 (7)数据结构 (8)算法实现 (16)实现代码 (17)C++代码 (17)Linux中源码 (24)总结 (31)生成树摘要在交换中,通常会设多个交换设备,并在交换设备之间建立多个连接来提供链路的冗余性,但是这有可能是网络中产生环路。
为了解决这个问题,在提供冗余的同时,我们可以使用生成树协议来防止产生网络环路。
生成树协议最早是由DEC公司开发的,后来,IEEE开发了自己的STP版本,称为802.1D,有兴趣的可自行查阅资料。
STP的主要任务是阻止在第二层网络上产生网络环路。
它监视着网络中的所有链路,通过关闭一些冗余的接口来确保在网络中不会产生环路。
STP采用生成树算法,它首先创建一个拓扑数据库,然后搜索并破坏掉冗余的链路。
运行了STP算法之后,帧就只能被转发到保险的有STP挑选出来的链路上。
原理在介绍生成树原理之前,首先要来介绍一些专业术语:BPDU:BPDU就是桥协议数据单元,所有的交换设备相互之间都交换信息,并利用这些信息来选出根交换设备,也根据这些信息来进行网络的后续配置。
每台交换设备都对桥协议数据单元中的参数进行比较,它们将BPDU传送给某个邻居,并在其中放入他们从其他邻居那里收到的BPDU。
根桥:根桥是ID最低的网桥,对于STP来说,关键的问题是为网络中所有的交换机推选出一个根桥,并让根桥成为网络中的焦点。
在网络中,所有其他的决定,如哪一个端口要被阻塞,哪个端口要被置为转发状态——都是根据根桥的判断来做出的。
桥ID:SPT利用桥ID来跟踪网络中的所有交换机。
桥ID是由桥优先级和MAC 地址的组合来决定的。
在网络中,桥ID最小的网桥为根桥。
非根桥:出了根桥外,其它所有网桥都是非根桥。
他们相互之间都交换BPDU,并在所有交换机上更新STP拓扑数据库,以防止环路并对链路失效采取补救措施。
端口开销:当两台交换机之间有多条链路且都不是根端口时,就根据端口开销来决定最佳路径,链路的开销取决于链路的带宽。
生成树协议详解

⽣成树协议详解⽣成树协议详解⽣成树协议是由Sun微系统公司著名⼯程师拉迪亚?珀尔曼博⼠(Radia Perlman)发明的。
⽹桥使⽤珀尔曼博⼠发明的这种⽅法能够达到2层路由的理想境界:冗余和⽆环路运⾏。
你可以把⽣成树协议设想为⼀个各⽹桥设备记在⼼⾥的⽤于进⾏优化和容错发送数据的过程的树型结构。
我们要介绍的这个问题在图1中进⾏了描述。
图1.如果这些交换机不采⽤⽣成树协议并且以这种⽅式连接,每⼀台交换机将⽆限地复制它们收到的第⼀个数据包,直到内存耗尽和系统崩溃为⽌。
在2层,没有任何东西能够阻⽌这种环路的事情发⽣。
在图1中,管理员必须要⼿⼯关闭这个红⾊连接线路才能让这个以太⽹⽹络运⾏。
⽣成树协议在当前可⽤连接有效时关闭⼀个或者更多其它冗余连接,⽽在当前连接出现故障后,再启⽤这些被关闭的冗余连接。
⽣成树协议决定使⽤哪⼀个连接完全取决于⽹络的拓扑结构。
⽣成树协议拓扑结构的思路是,⽹桥能够⾃动发现⼀个没有环路的拓扑结构的⼦⽹,也就是⼀个⽣成树。
⽣成树协议还能够确定有⾜够的连接通向这个⽹络的每⼀个部分。
它将建⽴整个局域⽹的⽣成树。
当⾸次连接⽹桥或者发⽣拓扑结构变化时,⽹桥都将进⾏⽣成树拓扑的重新计算。
当⼀个⽹桥收到某种类型的“设置信息”(⼀种特殊类型的桥接协议数据单元,BPDU)时,⽹桥就开始从头实施⽣成树算法。
这种算法从根⽹桥的选择开始的。
根⽹桥(root bridge)是整个拓扑结构的核⼼,所有的数据实际上都要通过根⽹桥。
顺便提⽰⼀下,有⼿⼯设置根⽹桥时要特别注意。
对于思科设备来⾔其根⽹桥的选择过程暴露出⼀些问题,就是过分简单化。
思科硬件通常使⽤最低的MAC地址,具备这些地址的设备通常是⽹络中最古⽼的设备,因⽽其交换速度常是最慢的,⽽从根⽹桥在⽹络中的位置看,它负荷却最重。
⽣成树构建的下⼀步是让每⼀个⽹桥决定通向根桥的最短路径,这样,各⽹桥就可以知道如何到达这个“中⼼”。
这⼀步会在每个局域⽹进⾏,它选择指定的⽹桥,或者与根桥最接近的⽹桥。
STP协议解析生成树协议的工作原理

STP协议解析生成树协议的工作原理生成树协议(Spanning Tree Protocol,STP)是一种用于网络交换机之间建立冗余链路的协议,它的作用是确保网络中不存在环路,以提高网络的可靠性和稳定性。
本文将对STP协议进行解析,并介绍其工作原理。
一、STP协议简介STP协议是由IEEE 802.1D标准定义的一种链路层协议,用于在网络交换机之间建立一个逻辑上无环路的生成树(Spanning Tree),通过将某些端口设为阻塞状态来消除冗余链路,从而避免广播风暴和数据包的循环转发。
二、STP协议的工作原理1. 桥ID和优先级STP协议中,每个交换机都有一个唯一的Bridge ID(桥ID)用于标识自己,桥ID由优先级和MAC地址组成。
优先级取值范围为0~65535,MAC地址为交换机的物理地址。
生成树的根交换机拥有最小的桥ID。
2. 选举根交换机在网络中,首先进行根交换机的选举。
每个交换机发送BPDU (Bridge Protocol Data Unit)消息,其中包含了自己的桥ID和路径代价(Path Cost)。
路径代价是指从发送BPDU的交换机到根交换机的总路径长度,路径长度越短,路径代价越小。
接收到BPDU的交换机会与自己的桥ID进行比较,如果接收到的BPDU的桥ID更小或者路径代价更小,则将接收到的BPDU继续发送给其他交换机。
3. 生成树计算生成树计算阶段,交换机通过比较收到的BPDU中的桥ID和路径代价来确定到达根交换机的最佳路径,将其端口状态设置为指定端口(Designated Port),用于与其他交换机进行通信。
同时,选举出的根交换机的端口也设置为指定端口。
如果有多条路径具有相同的最小路径代价,则选择桥ID较小的那个路径。
4. 阻塞冗余链路生成树计算完成后,除了根交换机和指定端口以外的所有其他端口都将被设置为阻塞状态(Blocking State),这样就实现了环路的消除。
生成树协议(STP)在计算机网络中的应用

生成树协议(STP)在计算机网络中的应用生成树协议(Spanning Tree Protocol,STP)是一种用于在计算机网络中构建冗余路径并避免网络环路的协议。
它是一种链路层协议,常用于以太网中。
在局域网中,当网络拓扑发生变化时,可能会出现环路的情况,可能导致网络中出现广播风暴,影响网络性能。
为了解决这个问题,STP被引入,它可以自动选择合适的路径,构建一棵树状结构,以避免环路。
STP的工作原理如下:1. 每个网络设备(交换机)都有一个唯一的桥优先级(Bridge Priority)值,以及一个桥ID(Bridge ID),桥ID由桥优先级和MAC地址组成。
2. 当网络启动时,STP协议会通过选举的方式选择一个交换机作为根桥(Root Bridge),根桥的桥ID最小。
3. STP通过在网络中发送BPDU(Bridge Protocol Data Unit)的方式进行交流。
BPDU 中包含了交换机的桥ID以及与根桥之间的最短路径开销。
4. 当收到BPDU时,交换机会比较自己的桥ID和收到的BPDU中的桥ID,并根据比较结果选择一个最优的路径。
如果自己的桥ID更小,则发送自己的BPDU,如果收到的桥ID更小,则更新自己的桥ID,并重新发送BPDU。
5. 根据最短路径的原则,STP会选择一条路径作为根路径(Root Path),其他路径将被标记为不活跃状态。
6. 当网络中某个链路发生故障或恢复时,STP会自动调整路径,以保持网络的稳定性。
1. 避免环路:STP可以自动选择一条路径,并将其他路径标记为不活跃状态,从而避免网络中出现环路。
2. 冗余路径:STP可以构建冗余路径,在网络中发生故障时,可以迅速切换到备用路径,以确保网络的可用性和容错性。
3. 负载均衡:当网络中有多条可用路径时,STP可以根据路径的开销选择最优的路径,实现负载均衡。
生成树协议(STP)通过构建冗余路径并避免网络环路,可以提高网络的可用性、容错性和稳定性,在计算机网络中具有广泛的应用。
管理交换网络中的冗余链路——生成树协议

浙江工业职业技术学院
本章内容
交换网络中的冗余链路 生成树协议STP 快速生成树协议RSTP 配置STP、RSTP
网络中存在的单点故障
故障
网络中的单点故障可导致网络的无法访问
交换网络中的冗余链路
故障
在网络中提供冗余链路解决单点故障问题
生成树经过一段时间(默认值是50秒左右)稳定之后,所 有端口要么进入转发状态,要么进入阻塞状态。
课程议题
交换网络中的冗余链路 生成树协议STP 快速生成树协议RSTP 配置STP、RSTP
IEEE 802.1w—快速生成树协议
快速生成树协议RSTP(Rapid Spannning Tree Protocol) IEEE 802.1w RSTP协议在STP协议基础上做了三点重要改进, 使得收敛速度快得多(最快1秒以内)。
Sw C
最短路径的选择
3、如果发送者Bridge ID相同,即同一台交换, 则比较发送者交换机的port ID
Sw D Mac:00d0f80000d1 Sw A
f0/1 f0/2
Mac:00d0f80000f1 Sw B
Sw C Port ID:端口信息由1字节端口优先级和1字节端口ID组成
STP、RSTP信息显示
Switch#show spanning-tree !显示交换机生成树的状态 Switch#show spanning-tree interface fa 0/1 !显示交换机接口的状态
配置STP、RSTP
Spanning Tree 的缺省配置:
关闭STP,且STP Priority 是32768,STP port Priority 是128。 STP port cost 根据端口速率自动判断; Hello Time 2秒; Forward-delay Time 15秒; Max-age Time 20秒; 可通过 spanning-tree reset 命令让 spanning tree 参 数恢复到缺省配置。
生成树协议(STP)

STP生成树协议的功能:局域网中为了避免环路形成的广播风暴,需要阻塞冗余链路,消除环路,并且在主链路中断时,又可以将冗余链路自动切换为转发状态,恢复网络的连通性。
STP(spanning tree protocol,生成树协议)用于消除数据层物理环路的协议通过在桥之间交换BPDU(bridge protocol data unit,桥协议数据单元),来保证设备完成生成树的计算过程。
小知识:环路产生的原因:1.基于局域网的可靠性,为交换机之间提供冗余连接;2.错误的网络配置导致环路产生;根桥(root bridge):整个生成树的根节点,有所有交换机中优先级最高的交换机担任。
桥ID:包含桥优先级和MAC地址(长度是8B),由于MAC 在网络中是唯一的,故:桥ID也是唯一的,先比较优先级在比较MAC地址;(优先级值和MAC值越小越优)路径开销(path cost):STP中每一条链路都有开销值,用于衡量桥与桥之间的优劣;指定桥(designate bridge):负责一个物理端上数据转发任务的桥,由物理端上优先级最高的桥担任。
、端口角色:根端口(root port):是指网桥距离根桥最近的端口。
根桥没有根端口,每一个非根桥有且只有一个根端口;指定端口(designate port):是指物理端上属于指定桥的端口。
根桥是所有网桥中优先级最高的,它是其所连接所有物理端上的指定桥,所以通常情况下根桥的所有端口都是指定端口;阻塞端口(alternate port):既不是根端口又不是指定端口,剩下的就是阻塞端口,它是用来为根端口或指定端口做备份。
是网桥到达根桥的备份路径;注:当拓扑发生变化时,节点重新计算,收敛成新的树型拓扑;STP使用BPDU(bridge protocol data unit,桥数据单元)来交互信息;配置BPDU:用来进行生成树计算和维护生成树拓扑的报文;TCN BPDU:当拓扑结构发生变化时,用来通知相关设备网络拓扑发生变化的拓扑;端口状态:Disabled:未启用STP功能的端口:不接收BPDU,不进行地址学习,不收发数据;Blocking:非指定端口或根端口:不接收BPDU,不进行地址学习,不收发数据;Listening:接收BPDU,不进行地址学习,不收发数据;Learning:接收BPDU,进行地址学习,不收发数据;Forwarding:指定端口或根端口:接收BPDU,进行地址学习,收发数据;生成树(STP)的不足:端口从阻塞状态进入转发状态必须经历两倍的forwarding delay时间如果网络中的拓扑结构变化频繁,网络会频繁地失去连通性RSTP(rapid spanning tree protocol快速生成树协议):是STP协议的优化版STP和RSTP的不同点:RSTP减少了端口的状态RSTP增加了端口的角色RSTP配置BPDU的格式和发送方式有所改变当网络拓扑发生变化时,RSTP的处理方式不同,可以实现更为快速的收敛RSTP具备STP的所有功能桥优先级配置:【H3C】stp priority 4096桥优先级字段共有16位,包含优先级位和0比特两部分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9.2.3 根网桥选举
BID:32768.AAAA.AAAA.AAAA
Switch A
F0/1
根网桥
非根网桥 F0/1
网段1
F0/1 非根网桥
Switch B
BID:32768.BBBB.BBBB.BBBB F0/2
图9-4-2 PVST
9.4.3 根网桥调整
9.4.4 多VALN生成树
9.5 实验1 生成树诊断
一、实验目的 掌握交换机上生成树协议的诊断方法。
二、实验任务 配置两个交换机之间的冗余主干道,对运行的生成 树协议进行诊断。
三、实验设备 Cisco交换机CATALYST 2950两台,控制台电缆一条 ,交叉双绞线若干。
四、“生成树诊断”实验环境
Switch A Switch B
V
V
L A
主干道
L A
N
N
1
1
五、实验步骤
1.按图9-5-1连接交换机SwitchA、SwitchB。 2.将交换机SwitchA和SwitchB的第17、24号端口设置
成为主干道接口。 3.用双绞线连接SwitchA和SwitchB的第17号端口。 4.用双绞线连接SwitchA和SwitchB的第24号端口。 5.使用9.3节中介绍的命令对运行着的生成树协议进行
Switch B
HOST X
HOST B
HOST Y
图9-1-2 交换机间的循环链路
9.1.2 单帧的多次递交
单播包→HOST B
HOST A
Switch A
网网段段1 Nhomakorabea2
Switch B
HOST X
HOST B
HOST Y
图9-1-3 单帧的多次递交
9.1.3 桥接表的不稳定
单播包
HOST A
端口1
根网桥信息
1.
2.
3. 4.
10.3.1 show spanning-tree
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
接口状态、参数
本网桥信息
10.3.1 show spanning-tree
show spanning-tree detail
10.3.1 show spanning-tree
Switch A 网 段 1
端口1
Switch B
端口2
网 段 2
端口2
HOST X
HOST B
HOST Y
图9-1-4 桥接表的不稳定性问题
9.2 生成树协议(Spanning Tree Protocol)概述
9.2.1 生成树协议概述
生成树协议(Spanning Tree Protocol,STP) 起源于DEC公司的“网桥到网桥”协议。后来, IEEE 802委员会制定了生成树协议的规范 802.1d。
第9章 冗余交换链路与生成树协议
主要内容
冗余拓扑结构的优点及其带来问题 生成树协议工作原理和相关术语 根网桥选举的过程 生成树协议的诊断 生成树协议的调整
9.1 冗余拓扑结构
核心层
分布层 访问层
图9-1-1 交换机间冗余拓扑结构
9.1.1 广播风暴
广播包
HOST A
Switch A
网
网
段
段
1
2
2.网桥号(Bridge ID):pp. 216 3.根网桥(Root bridge): 4.指定网桥(Designated bridge): 5.根端口(Root port): 6.指定端口(Designated port): 7.非指定端口(NonDesignated port):
9.2.3 根网桥选举
Switch C BID:CC
× F0/2 非指定端口 阻塞
网段2
100Mbps
图9-2-3 根端口选举
9.2.5 生成树协议操作
加电启动
阻塞状态 20秒
侦听状态 15秒
无效状态
学习状态 15秒
转发状态
图9-2-4 交换机端口的四种状态
9.2.6 生成树的重新计算
Switch C
F0/2 BID:CC
网段2
图9-2-2 根网桥选举
9.2.4 生成树代价
表9-2-2 生成树链路代价值
链 路 带 宽 旧 标 准 新 标 准
4Mbps 10 Mbps 16Mbps 100Mbps 155 Mbps 622 Mbps 1Gbps 10Gbps >10Gbps
F0/2 非指定端口→根端口
图9-2-5
网段2
100Mbps
生成树的重新计算
9.3 生成树协议诊断
1、生成树几乎不需要任何配置; 2、一些诊断工具:
show spanning-tree show spanning-tree blockedports show spanning-tree detail
VLAN 10
F0/1
F0/2
DP(10) RP(20)
VLAN 20
DP(10) DP(20) F0/1
Switch A
F0/2 DP(10)
RootBridge(10)RP(20)
NDP(10) F0/2 DP(20)
F0/1 RP(10) DP(20)
Switch B
RootBridge(20)
250
250
100
100
63
62
10
19
6
14
2
6
1
4
1
2
1
1
BID:32768.AAAA.AAAA.AAAA
Switch A
指定端口 F0/1
根网桥
代价:19 根端口 F0/1
网段1
100Mbps F0/1 根端口
BID:32768.BBBB.BBBB.BBBB Switch B
指定端口 F0/2 代价:38
BID:32768.AAAA.AAAA.AAAA
Switch A
指定端口 F0/1
根网桥
代价:19 根端口 F0/1
网段1
×断开
100Mbps F0/1
BID:32768.BBBB.BBBB.BBBB Switch B
指定端口 F0/2 代价:38
Switch C BID:CC
诊断。 6.断开处于转发状态的主干道接口,再次查看生成树
协议的相关信息。
9.6 思考与练习
1.冗余拓扑结构解决了什么问题? 2.冗余拓扑结构带来了什么问题? 3.生成树协议的目标是什么? 4.生成树协议操作中交换机的端口要历经哪些
状态? 5.如何加速生成树的收敛? 6.PVST是如何工作的?
第二层的协议:数据链路层:在物理环路上建立一 个无环的逻辑链路拓扑结构。
通过逻辑阻塞某端口,使得任何两台主机之间只有 一条唯一通路,达到既冗余又无环的目的
图9-2-1 生成树协议操作
网
端口1
Switch A
× 端口2
阻塞此端口
网
段
段
1
2
端口1
Switch B
端口2
9.2.2 生成树协议术语
1.网桥协议数据单元(Bridge Protocol Data Unit, BPDU): pp. 214
10.3.1 show spanning-tree
9.4 生成树协议调整
9.4.1 加速生成树收敛时间 设置快速端口: spanning-tree portfast
9.4.2 每VLAN生成树(Per Vlan Spanning Tree ,PVST)
RP(10)
NDP(20) Switch C