1、生成树协议,交换机工作原理,根据MAC地址表转发数据帧,如果地址未知,则广播,aa,bb,A查MAC地址表,目的地址在表中不存在,A广播这个数据帧,广播风暴的产生,当网络中存在物理环路,会产生广播风暴,A,aa,bb,B,C,A查MAC地址表,目标地址在表中不存在,A广播这个帧,B与C查MAC地址表,未知目标地址,B与C广播该帧,形成双向广播环,广播永远不会停止,产生广播风暴,广播风暴最终 会导致网络资源 耗尽,交换机死机!,STP协议介绍,STP Spanning Tree Protocol(生成树协议) 逻辑上断开环路,防止广播风暴的产生 当线路出现故障,断开的接口被激活,恢复通信,起备份
2、线路的作用,STP的算法,STP将一个环形网络生成无环拓朴的步骤: 选择根网桥(Root Bridge) 选择根端口(Root Ports) 选择指定端口(Designated Ports),网桥是交换机的前身,由于STP是在网桥基础上开发的,因此现在在交换机的网络中仍然沿用网桥这一术语,第一步:选择根网桥,选择根网桥的依据,桥ID(BID) 桥ID是唯一的,交换机之间选择BID值最小的交换机作为网络中的根网桥,网桥优先级,网桥的MAC地址,2字节,6字节,取值范围:0 65535 缺省值:32768,选择根网桥的目的是为了给将生成的树形结构确定一个树根,STP选择根网桥举例,根据网桥ID选择
3、根网桥,优先级:4096 MAC地址: 000d.2800.b100,优先级:32768 MAC地址: 000d.2800.b101,优先级:32768 MAC地址: 000d.2800.b102,Root Bridge,下一步:选择根端口,以本拓朴为例,介绍STP的计算过程,选择根端口的依据,在非根网桥上选择一个到根网桥最近的端口作为根端口 选择根端口的依据是: 根路径成本最低 直连(上游)的网桥ID最小 端口(上游)ID最小,根路径成本,根路径成本(开销)是网桥到根网桥的路径上所有链路的成本之和,神码设备默认10M/100M自适应的路径开销为200000,Root Bridge,路径成本:
4、19,路径成本:100,B,A,Port 1,C的Port 1根路径成本19100119,端口ID,端口ID的组成,端口优先级,端口编号,8位,8位,取值范围:0 255 缺省值:128,100M,STP选择根端口举例,在非根桥上, 选择一个根端口(RP),优先级:4096 MAC地址: 000d.2800.b100,优先级:32768 MAC地址: 000d.2800.b101,优先级:32768 MAC地址: 000d.2800.b102,Root Bridge,下一步:选择指定端口,100M,100M,Root Port,Root Port,在B和C上,到达A最近的端口是B和C的根端口,
5、选择指定端口的依据,在每个网段上,选择1个指定端口 根桥上的端口全是指定端口 非根桥上的指定端口: 根路径成本最低 端口所在的网桥的ID值较小 端口ID值较小,STP选择指定端口举例,在每个网段选择1个指定端口(DP),100M,优先级:4096 MAC地址: 000d.2800.b100,优先级:32768 MAC地址: 000d.2800.b101,优先级:32768 MAC地址: 000d.2800.b102,Root Bridge,100M,100M,Root Port,这个端口不是根端口,也不是指定端口,STP将这个端口阻塞(Block),在这个网段上,B的网桥ID较小,所以B上的端
6、口为指定端口,DP,DP,DP,根网桥上的端口都是指定端口,STP计算结果,经过STP计算,最终的逻辑结构为无环拓朴,100M,优先级:32768 MAC地址: 000d.2800.b101,优先级:32768 MAC地址: 000d.2800.b102,100M,优先级:4096 MAC地址: 000d.2800.b100,备份线路,STP举例,BID:32768 000d.2800.b100,BID:32768 000d.2805.c100,BID:32768 000d.2810.d100,BID:32768 000d.2811.e100,100M,100M,100M,100M,100M,
7、Root Bridge,RP,RP,RP,DP,DP,DP,Block,经过STP计算后的逻辑拓朴,BID:32768 000d.2800.b100,BID:32768 000d.2805.c100,BID:32768 000d.2810.d100,BID:32768 000d.2811.e100,100M,100M,100M,Root Bridge,BPDU(桥协议数据单元),交换机之间使用BPDU来交换STP信息 BPDU Bridge Protocol Data Unit 桥协议数据单元 使用组播发送BPDU,组播地址为: 01-80-c2-00-00-00 BPDU分为2种类型: 配置
8、BPDU 用于生成树计算 拓朴变更通告(TCN)BPDU 用于通告网络拓朴的变化,BPDU包含的关键字段,100M,STP使用BPDU选择根网桥2-1,100M,网桥ID: 32768.000d.2800.b101,网桥ID: 32768.000d.2800.b102,网桥ID: 4096.000d.2800.b100,交换机启动时,假定自己是根网桥,在向外发送的BPDU中,根网桥ID字段填写自己的网桥ID,100M,100M,100M,STP使用BPDU选择根网桥2-2,100M,当接收到其他交换机发出的BPDU后,比较网桥ID,选择较小的添加到根网桥ID中,100M,100M,网桥ID:
9、32768.000d.2800.b101,网桥ID: 32768.000d.2800.b102,网桥ID: 4096.000d.2800.b100,当全网所有的交换机接收到全部的BPDU并作比较后,就可以选择出唯一的一个根网桥,STP使用BPDU计算根路径成本2-1,100M,100M,100M,根网桥发送根路径成本为0的BPDU,100M,Root Bridge,网桥ID: 32768.000d.2800.b101,网桥ID: 32768.000d.2800.b102,网桥ID: 4096.000d.2800.b100,Root Bridge,STP使用BPDU计算根路径成本2-2,其他交换
10、机接收到根网桥的BPDU后,在根路径成本上添加接收接口的路径成本,然后转发,100M,100M,100M,100M,交换机保存接口的根路径成本到内存中,网桥ID: 32768.000d.2800.b101,网桥ID: 32768.000d.2800.b102,网桥ID: 4096.000d.2800.b100,生成树端口的状态,交换机端口的5种STP状态,生成树计时器,20秒,20秒,15秒,35秒,15秒,50秒,阻断,倾听,转发,学习,最大寿命,转发延迟,转发延迟,交换机开机需要等待30秒时间开始转发数据 当某个正在使用的链路断掉,阻塞的端口需要50秒时间开始转发数据,STP状态机,在ST
11、P选举过程中,端口是不能转发用户数据的。端口一开始处于阻塞状态,这个状态只能接收BPDU;,STP状态机,监听,阻塞,转发,学习,1)端口启用或初始化,2)端口禁用或故障,3)端口被选为根端口或指定端口,4)端口被选为非指定端口,5)转发定时器超时,(1,6),(2),(2),(2),(2),(1),(2),(4),(4),(5),(4),(5),(3),6)PortFast,(6),禁 用,阻塞,阻塞,在STP选举过程中,端口是不能转发用户数据的。端口一开始处于阻塞状态,这个状态只能接收BPDU; 一个接口20秒没收到BPDU,也就是到了最大时间,端口会进入侦听状态,这时接口可以接收BPDU
12、,并开始发送BPDU;,STP状态机,监听,阻塞,转发,学习,1)端口启用或初始化,2)端口禁用或故障,3)端口被选为根端口或指定端口,4)端口被选为非指定端口,5)转发定时器超时,(1,6),(2),(2),(2),(2),(1),(2),(4),(4),(5),(4),(5),(3),6)PortFast,(6),禁 用,监听,在STP选举过程中,端口是不能转发用户数据的。端口一开始处于阻塞状态,这个状态只能接收BPDU; 一个接口20秒没收到BPDU,也就是到了最大时间,端口会进入侦听状态,这时接口可以接收BPDU,并开始发送BPDU; 发送15秒的BPDU,接口将会为转发用户数据做准备
13、,也开始学习MAC地址,这个状态叫学习状态;,STP状态机,监听,阻塞,转发,学习,1)端口启用或初始化,2)端口禁用或故障,3)端口被选为根端口或指定端口,4)端口被选为非指定端口,5)转发定时器超时,(1,6),(2),(2),(2),(2),(1),(2),(4),(4),(5),(4),(5),(3),6)PortFast,(6),禁 用,监听,学习,在STP选举过程中,端口是不能转发用户数据的。端口一开始处于阻塞状态,这个状态只能接收BPDU; 一个接口20秒没收到BPDU,也就是到了最大时间,端口会进入侦听状态,这时接口可以接收BPDU,并开始发送BPDU; 发送15秒的BPDU,
14、接口将会为转发用户数据做准备,也开始学习MAC地址,这个状态叫学习状态; 再经过15秒的学习后,端口进入转发状态,转发状态是一个正常的接口。,STP状态机,监听,阻塞,转发,学习,1)端口启用或初始化,2)端口禁用或故障,3)端口被选为根端口或指定端口,4)端口被选为非指定端口,5)转发定时器超时,(1,6),(2),(2),(2),(2),(1),(2),(4),(4),(5),(4),(5),(3),6)PortFast,(6),禁 用,监听,学习,转发,spanning-tree设置,开启STP:switchA(Config)#spanning-tree MSTP is starting
15、 now, please wait. MSTP is enabled successfully.,spanning-tree设置,查看配置 SW1#sh spanning-tree- MSTP Bridge Config Info - Standard : IEEE 802.1s Bridge MAC : 00:03:0f:01:0e:30 Bridge Times : Max Age 20, Hello Time 2, Forward Delay 15 Force Version: 3 # Instance 0 # Self Bridge Id : 32768 - 00:03:0f:01:0
16、e:30 Root Id : 16384.00:03:0f:01:0f:52 Ext.RootPathCost : 200000 Region Root Id : this switch Int.RootPathCost : 0 Root Port ID : 128.1 Current port list in Instance 0: Ethernet0/0/1 Ethernet0/0/2 (Total 2)PortName ID ExtRPC IntRPC State Role DsgBridge DsgPort - - - - - - - -Ethernet0/0/1 128.001 0
17、0 FWD ROOT 16384.00030f010f52 128.007Ethernet0/0/2 128.002 0 0 BLK ALTR 16384.00030f010f52 128.011,MSTP,用少量资源在网络中实现多个生成树 在多条Trunk链路上实现VLAN级负载均衡,多实例生成树,MSTP配置,DCS (Config)# spanning-tree mst configuration DCS (Config-Mstp-Region)#name mstp DCS (Config-Mstp-Region)#instance 1 vlan 10 DCS (Config-Mstp-
18、Region)#instance 2 vlan 20 DCS (Config-Mstp-Region)#exit DCS (Config)# spanning-tree MSTP is starting now, please wait. MSTP is enabled successfully.,进入MST配置模式,为MST域配置名字,所有开启多实例MST的交换机的域名必须相同,将vlan10加入实例1.vlan20加入实例2。,开启生成树,MSTP配置,switchA(Config)#spanning-tree mst 1 priority 4096,instance-id(实例号)取值范
19、围为148,instance-id(实例号)取值范围为148,交换机优先级,取值范围为065535,默认32768,以4096为步长,改变生成树的形态,改变交换机优先级 switchB(Config)#spanning-tree mst 0 priority 28672 改变链路开销 switchA(config-Ethernet0/0/2 )#spanning-tree mst 1 cost 300000改变端口优先级 switchA(Config-Ethernet0/0/2)#spanning-tree mst 0 port-priority 144,instance-id(实例号)取值范围为148,Cost(路径代价值), 取值范围为1200,000,000,默认20万,改变交换机优先级,必须为4096的倍数,默认为32768,端口优先级值,取值范围为0240之间的16倍数 ,默认为128,