生成树协议的研究与实现 课程设计Word文件下载.docx
《生成树协议的研究与实现 课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《生成树协议的研究与实现 课程设计Word文件下载.docx(21页珍藏版)》请在冰点文库上搜索。
1.3.3.功能介绍9
1.3.4.802.1d中STP的端口状态9
1.3.5.RSTP的P/A协商快速收敛机制10
1.4MSTP基本原理12
二.企业园区生成树事例15
三.总结20
一.生成树协议
1.1生成树的定义
生成树算法的网桥协议STP(SpanningTreeProtocol)它通过生成生成树保证一个已知的网桥在网络拓扑中沿一个环动态工作。
网桥与其他网桥交换BPDU消息来监测环路,然后关闭选择的网桥接口取消环路,统指IEEE802·
1生成树协议标准和早期的数字设备合作生成树协议,该协议是基于后者产生的。
IEEE版本的生成树协议支持网桥区域,它允许网桥在一个扩展本地网中建设自由环形拓扑结构。
IEEE版本的生成树协议通常为在数字版本之上的首选版本。
生成树协议的主要功能有两个:
一是在利用生成树算法、在以太网络中,创建一个以某台交换机的某个端口为根的生成树,避免环路。
二是在以太网络拓扑发生变化时,通过生成树协议达到收敛保护的目的。
1.2.1几个关键的概念:
(1)网桥标识(bridgeID):
①非扩展的:
网桥优先级(2bytes)+MAC地址
②扩展的:
网桥优先级(4bits)+系统标识(VLANID;
12bits)+MAC地址
(2)网桥协议数据单元(BPDU):
①配置(CFG)BPDU:
初始时每个网桥都会发送,假设自己就是根网桥
收敛后,只从根网桥发出,其他网桥在根端口接收后向下中继。
②拓扑改变提示(TCN)BGDU:
当拓扑发生变化是,其他网桥可以从根端口发出该BPDU,到达根网桥。
根网桥在配置BPDU中设定TCN位,提示其他网桥快速清理MAC地址表。
(3)时间值:
①HELLO间隔:
2秒,CFGBPDU发送间隔
②MAXAGE:
20秒,CFGBPDU的保留时间
③FWD_DELAY:
15秒,监听(listening)和学习(learning)的时间
(4)路径代价:
与链路速率相关,用于计算网桥间的距离
(5)端口状态:
①关闭(disable):
端口处于管理关闭状态
②阻塞(blocking):
不能转发用户数据
③监听(listening):
接口开始启动
④学习(learning):
学习MAC地址,构建MAC表进程项
⑤转发(forwarding):
可以转发用户数据
(6)选择标准:
①最低的网桥标识号
②最低的路径代价到根网桥
③最低的发送者的网桥标识号
④最低的端口标识号
(1)选择一个根网桥:
每一个网络选择一个
(2)选择一个根端口:
每一个非根网桥选择一个
(3)选择一个指派端口:
每一个网段选择一个
(4)非指派端口被放置在阻塞状态
1.3Rstp
RSTP:
快速生成树协议(rapidspaningtreeprotocol):
802.1w由802.1d发展而成,这种协议在网络结构发生变化时,能更快的收敛网络。
它比802.1d多了两种端口类型:
预备端口类型(alternateport)和备份端口类型。
STP(SpanningTreeProtocol)是生成树协议的英文缩写。
该协议可应用于环路网络,通过一定的算法实现路径冗余,同时将环路网络修剪成无环路的树型网络,从而避免报文在环路网络中的增生和无限循环。
▪
在上图所示拓扑中,各端口角色如图中标注
▪连接主机的端口通常配置为边缘端口
1.3.1基本原理
STP协议由IEEE802.1D定义,RSTP由IEEE802.1W定义。
STP的基本原理是,通过在交换机之间传递一种特殊的协议报文(在IEEE802.1D中这种协议报文被称为“配置消息”)来确定网络的拓扑结构。
配置消息中包含了足够的信息来保证交换机完成生成树计算。
生成树协议STP/RSTP
1.3.2.技术原理
STP的基本思想就是生成“一棵树”,树的根是一个称为根桥的交换机,根据设置不同,不同的交换机会被选为根桥,但任意时刻只能有一个根桥。
由根桥开始,逐级形成一棵树,根桥定时发送配置报文,非根桥接收配置报文并转发,如果某台交换机能够从两个以上的端口接收到配置报文,则说明从该交换机到根有不止一条路径,便构成了循环回路,此时交换机根据端口的配置选出一个端口并把其他的端口阻塞,消除循环。
当某个端口长时间不能接收到配置报文的时候,交换机认为端口的配置超时,网络拓扑可能已经改变,此时重新计算网络拓扑,重新生成一棵树。
1.3.3.功能介绍
生成树协议最主要的应用是为了避免局域网中的网络环回,解决成环以太网网络的“广播风暴”问题,从某种意义上说是一种网络保护技术,可以消除由于失误或者意外带来的循环连接。
STP也提供了为网络提供备份连接的可能,可与SDH保护配合构成以太环网的双重保护。
新型以太单板支持符合ITU-T802.1d标准的生成树协议STP及802.1w规定的快速生成树协议RSTP,收敛速度可达到1s。
1.3.4.802.1d中STP的端口状态
交换机的端口在STP环境中共有5种状态:
阻塞blocking、倾听listening、学习learning、转发forwarding、关闭(disable)。
Blocking:
处于这个状态的端口不能够参与转发数据报文,但是可以接收配置消息,并交给CPU进行处理。
不过不能发送配置消息,也不进行地址学习。
Listening:
处于这个状态的端口也不参与数据转发,不进行地址学习;
但是可以接收并发送配置消息。
Learning:
处于这个状态的端口同样不能转发数据,但是开始地址学习,并可以接收、处理和发送配置消息。
Forwarding:
一旦端口进入该状态,就可以转发任何数据了,同时也进行地址学习和配置消息的接收、处理和发送。
交换机上一个原来被阻塞掉的端口由于在最大老化时间内没有收到BPDU,从阻塞状态转变为倾听状态,倾听状态经过一个转发延迟(15秒)到达学习状态,经过一个转发延迟时间的MAC地址学习过程后进入转发状态。
如果到达倾听状态后发现本端口在新的生成数中不应该由此端口转发数据则直接回到阻塞状态。
当拓扑发生变化,新的配置消息要经过一定的时延才能传播到整个网络,这个时延称为转发延迟(ForwardDelay),协议默认值是15秒。
在所有网桥收到这个变化的消息之前,若旧拓扑结构中处于转发的端口还没有发现自己应该在新的拓扑中停止转发,则可能存在临时环路。
为了解决临时环路的问题,生成树使用了一种定时器策略,即在端口从阻塞状态到转发状态中间加上一个只学习MAC地址但不参与转发的中间状态,两次状态切换的时间长度都是ForwardDelay,这样就可以保证在拓扑变化的时候不会产生临时环路。
1.3.5.RSTP的P/A协商快速收敛机制
P/A机制即Proposal/Agreement机制。
其目的是使一个指定端口尽快进入Forwarding状态。
其过程的完成根据以下几个端口变量:
A)Proposing。
当一个指定端口处于Discarding或Learning状态的时候,该变量置位。
并向下游交换传递Proposal位被置位的BPDU。
B)Proposed。
当端口收到对端的指定端口发来的携带Proposal的BPDU的时候。
该变量置位。
该指示本网段上的指定端口希望忙进入Forwarding状态。
C)sync。
当Proposed被设置以后,收到Proposal置位信息的根端口会依次为自己的其他端口置位sync变量。
如果端口是非边缘的指定端口是则会进入Discarding状态。
D)synced。
当端口完成转到Discarding后,,会设置自己的synced变量。
Alternate、Backup和边缘端口会马上设置该变量。
根端口监视其他端口的synced,当所有其他端口的synced全被设置,,根端口会设置自己的synced,然后传回BPDU,其中Agreement位被置位。
E)agreed。
当指定端口接收到一个BPDU时,如果该BPDU中的Agreement位被置位且端口角色定段是“根端口”,该变量被设置。
Agreed变量一旦被置位,指定端口马上转入Forwarding状态。
端口状态
在RSTP中只有三种端口状态。
802.1D中的禁止端口,阻塞端口,监听端口在802.1W中统一合并为禁止端口。
STP
PortState
RSTP
端口是否
为活跃状态
学习MAC地址
禁止
No
阻塞
监听
Yes
学习
转发
RSTP相对于STP由以下优点:
A、STP没有明确区分端口状态与端口角色,收敛时主要依赖于端口状态的切换。
RSTP比较明确的区分了端口状态与端口角色,且其收敛时更多的是依赖于端口角色的切换。
B、STP端口状态的切换必须被动的等待时间的超时。
而RSTP端口状态的切换却是一种主动的协商。
C、STP中的非根网桥只能被动的中继BPDU。
而RSTP中的非根网桥对BPDU的中继具有一定的主动性。
1.4MSTP基本原理
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,下面简要介绍CIST生成树和MSTI的计算,介绍H3C设备MSTP算法实现过程
多生成树协议的区域
MSTP基本原则
每个实例上分别计算各自的生成树,互不干扰
每个实例的生成树的算法与RSTP基本相同
每个实例的生成树可以有不同的根,不同的拓扑
每个实例各自发自己的BPDU
每个实例的拓扑可以人为通过配置来确定
每个端口在不同实例上的生成树参数可以不同
每个端口在不同实例上的角色、状态可能不同
▪步骤1:
启用生成树
Ø
Switch(config)#spanning-tree
▪步骤2:
选择生成树模式为MSTP
Switch(config)#spanning-treemodemstp
在锐捷交换机中,默认情况下,当启用生成树后,生成树的运行模式为MSTP。
进入全局配置模式
Switch#configureterminal
进入MSTP配置模式
Switch(config)#spanning-treemstconfiguration
▪步骤3:
在交换机上配置VLAN与生成树示例的映射关系
Switch(config-mst)#instanceinstance-idvlanvlan-range
▪看生成树的全局配置及状态信息
Switch#showspanning-tree
▪查看MSTP的配置结果
Switch#showspanning-treemstconfiguration
▪查看特定实例的信息
Switch#showspanning-treemstinstance
▪查看特定端口在相应实例中的状态信息
Switch#showspanning-treemstinstanceinterface
配置MSTP——实现负载分担
二.企业园区生成树事例
【实验设备】
接入层交换机S2126G(2台)、分布层交换机S3550-24(2台)
【实验步骤】
第一步:
配置接入层交换机S2126-A
S2126-A(config)#spanning-tree!
开启生成树
S2126-A(config)#spanning-treemodemstp!
配置生成树模式为MSTP
S2126-A(config)#vlan10!
创建Vlan10
S2126-A(config)#vlan20!
创建Vlan20
S2126-A(config)#vlan40!
创建Vlan40
S2126-A(config)#interfacefastethernet0/1
S2126-A(config-if)#switchportaccessvlan10!
分配端口F0/1给Vlan10
S2126-A(config)#interfacefastethernet0/2
S2126-A(config-if)#switchportaccessvlan20!
分配端口F0/2给Vlan20
S2126-A(config)#interfacefastethernet0/23
S2126-A(config-if)#switchportmodetrunk!
定义F0/23为trunk端口
S2126-A(config)#interfacefastethernet0/24
定义F0/24为trunk端口
S2126-A(config)#spanning-treemstconfiguration!
进入MSTP配置模式
S2126-A(config-mst)#instance1vlan1,10!
配置instance1(实例1)并关联Vlan1和10
S2126-A(config-mst)#instance2vlan20,40!
配置实例2并关联Vlan20和40
S2126-A(config-mst)#nameregion1!
配置域名称
S2126-A(config-mst)#revision1!
配置版本(修订号)
验证测试:
验证MSTP配置
S2126-A#showspanning-treemstconfiguration!
显示MSTP全局配置
Multispanningtreeprotocol:
Enabled
Name:
region1
Revision:
1
InstanceVlansMapped
--------------------------------------------------------------------
02-9,11-19,21-39,41-4094
11,10
220,40
第二步:
配置接入层交换机S2126-B
S2126-B(config)#spanning-tree!
S2126-B(config)#spanning-treemodemstp!
采用MSTP生成树模式
S2126-B(config)#vlan10!
S2126-B(config)#vlan20!
S2126-B(config)#vlan40!
S2126-B(config)#interfacefastethernet0/1
S2126-B(config-if)#switchportaccessvlan10!
S2126-B(config)#interfacefastethernet0/2
S2126-B(config-if)#switchportaccessvlan40!
分配端口F0/2给Vlan40
S2126-B(config)#interfacefastethernet0/23
S2126-B(config-if)#switchportmodetrunk!
S2126-B(config)#interfacefastethernet0/24
S2126-B(config)#spanning-treemstconfiguration!
S2126-B(config-mst)#instance1vlan1,10!
S2126-B(config-mst)#instance2vlan20,40!
S2126-B(config-mst)#nameregion1!
S2126-B(config-mst)#revision1!
S2126-B#showspanning-treemstconfiguration
02-9,11-19,21-39,41-4094
第三步:
配置分布层交换机S3550-A
S3550-A(config)#spanning-tree!
S3550-A(config)#spanning-treemodemstp!
S3550-A(config)#vlan10
S3550-A(config)#vlan20
S3550-A(config)#vlan40
S3550-A(config)#interfacefastethernet0/1
S3550-A(config-if)#switchportmodetrunk!
定义F0/1为trunk端口
S3550-A(config)#interfacefastethernet0/23
S3550-A(config)#interfacefastethernet0/24
S3550-A(config)#spanning-treemst1priority4096!
配置交换机S3550-A在instance1中的优先级为4096,缺省是32768,值越小越优先成为该instance中的rootswitch
S3550-A(config)#spanning-treemstconfiguration!
S3550-A(config-mst)#instance1vlan1,10!
配置实例1并关联Vlan1和10
S3550-A(config-mst)#instance2vlan20,40!
配置实例2并关联Vlan20和40
S3550-A(config-mst)#nameregion1!
配置域名为region1
S3550-A(config-mst)#revision1!
配置版本(修订号)
S3550-A#showspanning-treemstconfiguration
第四步:
配置分布层交换机S3550-B
S3550-B(config)#spanning-tree!
S3550-B(config)#spanning-treemodemstp!
S3550-B(config)#vlan10
S3550-B(config)#vlan20
S3550-B(config)#vlan40
S3550-B(config)#interfacefastethernet0/1
S3550-B(config-if)#switchportmodetrunk!
定义F0/1为trunk端口
S3550-B(config)#interfacefastet