云计算学习笔记——生成树协议(STP)

                               第八章 生成树协议(STP)

一、STP概述
1、交换网络环路的产生
云计算学习笔记——生成树协议(STP)_第1张图片
(1)当交换机收到PC的ARP广播请求后,会进行广播转发,而三台相连交换机的广播转发会形成环形循环,从而不断进行广播,最终形成广播风暴,造成网络瘫痪
(2)STP协议用来解决该问题。它可在逻辑上断开环路,放置广播风暴的产生

2、STP简介
STP(Spanning Tree Protocol,生成树协议)就是用来把一个环形的结构改变成一个树形的结构。它是将物理上存在环路的网络,通过一种算法,在逻辑上阻塞一些端口,来形成一个逻辑上的树形结构

二、STP的工作原理
1、生成树算法(Spanning Tree Algorithm,STA)
(1)步骤
①选择根网桥(Root Bridge)
1)选择根网桥的依据是网桥ID,它是一个8字节的字段,前两字节十进制数称为网桥优先级,后六字节是网桥的MAC地址
2)网桥优先级取值范围0-65535,默认值为32758
3)在优先级相同的情况下,MAC地址小的为根网桥
②选择根端口(Root Ports)
1)根端口存在于非网桥交换机上,需要在每个非网桥交换机上选择一个根端口
2)选择根端口依据的顺序:
a.到根网桥最低的根路径成本
b.直连的网桥ID最小
c.端口ID最小
3)带宽与路径成本的关系:带宽越大,路径成本越低
云计算学习笔记——生成树协议(STP)_第2张图片
4)端口ID:一个2字节的STP参数,由一个1字节的端口优先级和1字节的端口编号组成。端口优先级是一个可配置的STP参数,范围0-255,默认为128。编号不是端口号,但端口号低的端口,编号也较小。
③选择指定端口(Designated Ports)
1)选择步骤
a.根路径成本较低
b.所在交换机的网桥ID值较小
c.端口ID值较小
(2)生成树算法验证
①使用show spanning-tree命令查看生成树
2、桥协议数据单元(BPDU)
交换机之间是通过BPDU(Bridge Protocol Data Unit,桥协议数据单元)来交换网桥ID、根路径成本等信息。交换机从端口与发出一个BPDU帧,使用该端口本身的MAC地址作为源地址。交换机本身并不知道它周围是否还有其他的交换机存在。因此,BPDU帧利用了一个STP组播地址(01-80-c2-00-00-00)作为它的一个目的地址,使之能达到相邻并处于STP侦听状态的交换机。每隔2S,便向所有交换机端口发送一次BPDU报文。
(1)BPDU类型
①配置BPDU——用于生成树计算
②拓扑变更通告(ToPology Change Notification,TCN)BPDU——用于通告网络拓扑变化
(2)BPDU报文字段
①根网桥ID:由一个2字节优先级和一个6字节网桥MAC地址组成。它是已经被选定为根网桥的设备标识
②根路径成本:说明这个BPDU从根网桥传输了多远,成本多少。它决定哪些端口将进行转发,哪些将被阻断
③发送网桥ID:发送该BPDU的网桥信息,由网桥的优先级和MAC组成
④端口ID:由1字节端口优先级和1字节端口编号组成
⑤计时器:用于说明生成树用多长时间能完成他的每项功能。包括报文老化时间,最大老化时间,访问时间和转发延迟
(3)STP利用BPDU选择根网桥的过程
当第一台交换机首次启动时,先假设自己是根网桥,在BPDU报文中根网桥ID字段填入自己的网桥ID,并向外发送
交换机比较接收到的BPDU报文中的根网桥ID与自己的网桥ID。选择小的替换自己现有的根网桥ID,并向外转发。此时交换机仍然会继续监听其他交换机法埃的BPDU,并继续比较和替换。持续一段时间后,当所有交换机互相接收了全部BPDU后,则能够选择出全网公认的唯一根网桥
收敛后,如果有一台网桥ID更小的交换机加入进来,那么它会吧自己当做一个根网桥在网络中通告。其他交换机比较后,会把它作为新的根网桥记录下来
(4)STP的收敛
①生成树端口的状态
1)Disabled(禁用):由网管设定或网络故障使端口处于禁用状态。这是一个比较特殊的状态,不是端口正常的STP状态的一部分
2)Blocking(阻塞):端口初始化后,一个端口既不能接受发送数据,也不能向它的地址表添加MAC地址。只允许接受BPDU报文,以便能侦听其他交换机信息。此外,选出指定端口后,非指定端口也处于阻塞状态
3)Listening(侦听):如果一个交换机认为一个端口可选为根端口或指定端口,他就把该端口Blocking状态变为Listening。此状态下,端口仍不能接受或发送数据帧。但允许他接受或发送BPDU报文。如果该端口失去根端口或指定端口的地位,那它将返回到Blocking状态
4)Learning(学习):一个端口在Listening状态下经过一段时间(转发延迟)后,将转为Learning状态。可像之前一样发送和接受BPDU报文,但交换机可以学习新的Mac地址,并将该地址添加到交换机的地址表中
5)Forwarding(转发):Learning状态下再经理一定转发延迟时间,该端口转入到Forwarding状态。该端口既可以发送和接收数据帧,也可以收集MAC地址加入到地址表,还可以发送和接收BPDU报文。在生成树拓扑图中,端口至此才成为一个全功能的交换机端口
②生成树计时器
1)计时器的作用:给交换机设置足够的时间来完成BPDU的转发和生成树的运算
2)Hello时间:网桥发送配置BPDU报文之间的时间间隔。IEEE 802.1q规定默认访问时间为2s
3)转发延迟:一个交换机端口在Listening(侦听)和Learning(学习)状态所花费的时间间隔,默认为各15s
4)最大老化时间:交换机在丢弃BPDU报文之前储存它的最大时间。在执行STP时,每个交换端口都将保存一份它所侦听到最好的BPDU备份。如果源BPDU失去了与交换机端口的联系,交换机则在最大老化时间之后通知网络已经发生了拓扑结构方面的变化。最大老化时间默认值为20s
5)典型端口过度:
a.从阻塞到侦听:20s
b.从侦听到学习:15s
c.从学习到转发:15s
6)STP计时器可通过命令配置和调整。但建议不要轻易改变计时器默认值

三、STP应用
1、STP与VLAN的关系
(1)IEEE的CST(Common Spanning Tree,通用生成树):
以交换机为单位,不考虑VLAN
(2)Cisco的PVST(Per VLAN Spanning Tree,每个VLAN生成树)
私有协议,为每个VLAN运行单独的生成树实例(每个VLAN生成一个生成树实例)
②优点:优化根网桥位置,为所有VLAN提供最优路径
③缺点:
1)交换机利用率(如CPU负载)会更高
2)占用更多的Trunk线路带宽
3)与IEEE的CST不兼容,不能与其他厂家交换机进行互操作
(3)Cisco的PVST+(Per VLAN Spanning Tree Lpus,增强的每个VLAN生成树)
①Cisco默认使用PVST+
允许CST的信息传给PVST,以便与其他厂商在VLAN上运行生成树的实现方法进行互操作
(4)IEEE的MST(Multiple Spanning Tree,多生成树)
2、PVST+的配置命令
(1)配置PVST+的意义
①手动选择网络中比较稳定的交换机为根网桥
②实现网络的负载均衡
③配置速端口(PostFast)
1)速端口可使连接中断的端口快速进入到转发状态
2)速端口任然运行生成树协议,如果检测到了环路,也能够从转发状态转换到阻塞状态
3)速端口只能配置在连接终端的端口上,否则可能导致短时间的生成树环路
(2)PVST+配置命令
①启用生成树命令:交换机默认启用生成树。命令前加no可关闭生成树。但不建议关闭。
1)Spanning-tree vlan [vlan-id]
②指定根网桥:
1)Spanning-tree vlan [vlan-list] priority [Bridge-priority](设置VLAN优先级)
a.Bridge-priority默认为32768,范围0-65535,必须是4096的倍数
b.Vlan-list实例:vlan 5,10-20
2)Spanning-tree vlan [vlan-list] root {primary|secondary}(指定交换机优先级)
a.Primary:优先级为24576
b.Secondary:优先级为28672
③修改端口成本
1)端口模式下:spanning-tree vlan [vlan-list] cost [cost]
④修改端口优先级
1)端口模式下:spanning-tree vlan [vlan-list] port-priority [priority]
⑤配置速端口
1)端口模式下Spanning-tree portfast
(3)PVST+配置的查看
①查看生成树的配置
1)show spanning-tree
②查看某个VLAN的生成树详细信息
1)show spanning-tree vlan [vlan-id] detail
3、PVST+配置实例
云计算学习笔记——生成树协议(STP)_第3张图片
(1)配置Trunk和设置VLAN1/2(略)
(2)配置VLAN的负载均衡
①使用spanning-tree vlan vlan-id root {primary|secondary}命令
1)SW1(config)#spanning-tree vlan 1 root primary 
SW1(config)#spanning-tree vlan 2 root secondary
2)SW2(config)#spanning-tree vlan 1 root secondary
SW2(config)#spanning-tree vlan 2 root primary

②使用spanning-tree vlan vlan-id port-priority priority命令
1)SW1(config)#spanning-tree vlan 1 priority 4096
2)SW2(config)#spanning-tree vlan 2 priority 4096

③VLAN1的拓扑图
云计算学习笔记——生成树协议(STP)_第4张图片云计算学习笔记——生成树协议(STP)_第5张图片云计算学习笔记——生成树协议(STP)_第6张图片
④VLAN2的拓扑图
云计算学习笔记——生成树协议(STP)_第7张图片云计算学习笔记——生成树协议(STP)_第8张图片云计算学习笔记——生成树协议(STP)_第9张图片
⑤配置速端口
云计算学习笔记——生成树协议(STP)_第10张图片

四、综合实例
云计算学习笔记——生成树协议(STP)_第11张图片
1、给电脑设置相应IP及网关
2、使用VTP为四台交换机添加VLAN2-4
(1)所有交换机连接口设置Trunk链路
switchport trunk encapsulation dot1q
Switchport mode trunk
(2)为所有交换机创建VTP(vtp domain v1)设置一台三层交换机为server(vtp mode server),其他交换机为client(vtp mode client
(3)在server交换机上创建VLAN2-4(vlan 2等)
3、二层交换机为VLAN分配端口
(1)Switchport mode access
(2)Switchport access vlan [vlan-id]
4、三层交换机开启路由功能并设置相应VLAN虚接口及网关IP
(1)Ip routing
(2)Interface vlan 1
(3)Ip address 192.168.1.1 255.255.255.0
(4)No shutdown
5、三层交换机设置路由器接口IP
(1)no switchport(设置接口为三层接口)
(2)Ip address 192.168.5.2 255.255.255.0
6、路由器接口IP设置及开启
(1)Ip address 192.168.5.1 255.255.255.0
(2)No shutdown
7、设置1号三层路由器为VLAN1-2的主要根网桥,VLAN3-4的次要根网桥
Spanning-tree vlan 1-2 root primary
Spanning-tree vlan 3-4 root secondary

8、设置2号三层路由器为VLAN3-4的主要根网桥,VLAN1-2的次要根网桥
Spanning-tree vlan 3-4 root primary
Spanning-tree vlan 1-2 root secondary

9、路由器添加默认路由
(1)Ip route 0.0.0.0 0.0.0.0 g0/0
10、分别给两台三层交换机添加默认路由或静态路由(静态路由需分别添加三条),使VLAN1-2与VLAN3-4连通
(1)将三层交换机之间连接接口设置为三层接口,并分配192.168.7.1/192.168.7.2
No switchport
Ip address 192.168.7.1 255.255.255.0
(2)两台三层交换机分别添加默认路由
Ip route 0.0.0.0 0.0.0.0 192.168.7.1及192.168.7.2
11、验证:使用电脑分别ping两端交换机及其他电脑地址
云计算学习笔记——生成树协议(STP)_第12张图片云计算学习笔记——生成树协议(STP)_第13张图片云计算学习笔记——生成树协议(STP)_第14张图片
 

你可能感兴趣的:(云计算,网络基础,STP生成树协议,三层交换机,VTP,路由器,Trunk)