一、快速生成树的概念
快速生成树协议:其由生成树发展而成,这种协议在网络结构发生变化时,能更快的收敛网络。它比生成树多了两种端口类型:预备端口类型(alternate port)和备份端口类型。
生成树协议主要应用于环路网络中,它通过一定的算法实现路径冗余,同时将环路网络修剪成无环路的树型网络,从而避免报文在环路网络中的增生和无限循环。
STP的基本原理是,通过在交换机之间传递一种特殊的协议报文BPDU来确定网络的拓扑结构。
生成树协议最主要的应用是为了避免局域网中的网络环回,解决以太网网络的“广播风暴”问题。
二、生成树的部分参数含义
1-PortFast特性是思科在PVST中提出的快速收敛特性。
(1)针对连接终端的端口,由于这些端口不会形成环路,配置了PortFast特性后,此端口直接从Blocking进入Forwarding状态(跳过Listening和Learning状态),收敛时间为0秒。
(2)若未配置PortFast特性,则这些连接终端的端口收敛时间为30秒(即2个转发延迟)
2-PortFast配置方法
方式1:全局启用PortFast
SW(config)#spanning-tree portfast default //针对本交换机的所有端口都启用PortFast特性
存在的问题:中继端口也会启用PortFast功能,如何改变中继端口的PortFast功能
SW(config)#int f0/1 //进入指定接口
SW(config-if)#spanning-tree portfast disable //关闭指定端口的portfast特性
方式2:接口下启用PortFast
SW(config)#int f0/1 //进入指定接口
SW(config-if)#switchport mode access //配置端口的工作模式为接入模式
SW(config-if)#spanning-tree portfast //在该接口上启动端口快速收敛功能,启用portfast
3-在trunk链路上启动PortFast的方法
SW(config)#int f0/1 //进入指定接口
SW(config-if)#switchport mode trunk //配置端口的工作模式为链路模式
SW(config-if)#spanning-tree portfast trunk //在该接口上启动端口快速收敛功能,启用portfast
注意1:若希望一个Trunk端口具备portfast特性,必须在接口下启用并明确带上trunk参数。
注意2:当此trunk端口连接到路由器时,可以启用portfast特性;但是交换机互连的trunk端口,若启用portfast特性可能造成交换环路。
4-启动BPDU保护
SW(config)#int f0/1 //进入指定接口
SW(config-if)#switchport mode access //配置端口的工作模式为接入模式
Switch(config-if)#spanning-tree bpduguard //在该接口上启动BPDU保护功能
生成树连接主机那端理论上是不需要发送BPDU建立关系的,因为主机不是交换机,不可能发出BPDU,交换机一旦收到BPDU会对比Root,从而可以抢占Root,bpduguard就是用来防止主机发送BPDU的,因为主机可以模拟发包,同理就是用来防止交换机某些不希望得到BPDU的接口做的措施.
5-启动根保护
Root Guard(根保护)传统的802.1D,STP没有给网络管理员提供确保交换式第2层网络拓扑安全。当新接入的交换机优先级更低,将抢占原有的根网桥。
根保护的目的是确保启用了根保护的端口成为指定端口。通常一个根桥的所有端口均为指定端口。除非连接到两个或多根网桥的端口。如果网桥在启用根保护的端口上收到一个较好的STP BPDU。这个端口进入STP的根不一致状态,不会有流量通过该端口。例如:如下图所示,原本交换环路中只存在M1、M2、M3时,正确的根桥应该是M3,因为在优先级相同的情况下,M3的MAC地址最低。
当有新的交换机加入到该网络中时,且该交换机的优先级也是32769,而且该交换机的MAC地址是0001.9791.3A4D;其MAC地址小于原有根桥M3DE 地址,所有新加入的M4交换机变成了该网络的根桥,如下图所示:
出现这种情况时,由于生成树的重计算,会直接导致原有的交换环路不稳定。解决的办法是在该网络的某个交换机的接口上启用根保护。
M1(config)#int f0/4
M1(config-if)#spanning-tree guard root
在M1上查看spanning-tree的情况,发现在M1的F0/4上启用根保护后,该接口始终处于LSN(学习状态),如下图所示:
出现这种现象的原因是M4的优先级始终高于M3的优先级,只有在M3发现M4不是其的威胁时,M1的F0/4接口才从LSN状态变为FWD状态,其解决办法是,提高M3的优先级或通过命令确定M3为主要的根桥。其方法如下:
(1)方法一:M3(config)#spanning-tree vlan 1priority 0 //修改该交换机的优先级
(2)方法二:M3(config)#spanning-tree vlan 1 rootprimary //指定该交换机为主要根
6-生成树端口连接类型
spanning-tree link-type 设定生成树端口连接类型,no的形式为恢复默认值。
语法 spanning-tree link-type {auto|point-to-point|shared}
(1)auto:自动根据双工方式决定连接类型,全双工端口为point-to-point,而半双工端口为shared。
(2)point-to-point:指定端口类型为point-to-point。
(3)shared:指定端口类型为shared。
三、快速生成树+参数应用实例
(1)配置拓扑图
(2)配置要求
1-根据网络拓扑图的要求,完成网络的基本配置,包括设备名、用户名、控制口密码、特权密码和远程登录密码;
2-将M_SW_3设置为VTP的服务器,负责整个网络的VLAN划分和管理,并根据拓扑图的要求,划分VLAN;
3-根据拓扑图的标记将接口分配到指定的VLAN中,并关闭所有未使用的接口;
4-根据拓扑图的情况在所有接入层的交换机上配置端口安全,预警状态为shutdown;
5-根据拓扑图的情况,在所有交换机上开启快速生成树协议;
6-根据拓扑图的情况,在所有的终端接口上,开启快速接口功能;
7-根据拓扑图的情况,在所有的终端接口上,开启BPDU保护功能;
8-检测网络中的根桥、指定端口、阻塞端口和根端口的情况;
9-接入新的交换机,并观察网络中根桥、指定端口、阻塞端口和根端口的变化情况,若根桥没有变化,则改变新接入设备的优先级,使其成为最优根桥,观察网络设备的变化情况。
10-在相应的接口上启用根保护功能,观看网络中根桥、指定端口、阻塞端口和根端口的变化情况;
11-根据要求,完成下面的配置
(1)M_SW_1作为vlan10、30、50的主根;
(2)M_SW_2作为vlan20、40、60的主根;
(3)M_SW_1作为vlan20、40、60的副根;
(4)M_SW_2作为VLAN10、30、50的副根;
12-在M_SW_1上设置DHCP,使其成为10、30、50的服务器;
13-在M_SW_2上设置DHCP,使其成为20、40、60的服务器;
(3)配置步骤
1-根据网络拓扑图的要求,完成网络的基本配置,包括设备名、用户名、控制口密码、特权密码和远程登录密码;
Switch>enable //进入特权模式
Switch#configure terminal //进入全局配置模式
Switch(config)#hostname M_SW_3 //设置主机名
M_SW_3(config)#username m_sw_3 secret cisco //设置用户名和密码
M_SW_3(config)#enable secret cisco //设置进入特权模式的密码
M_SW_3(config)#line console 0 //进入控制口
M_SW_3(config-line)#exec-timeout 10 //设置休眠时间
M_SW_3(config-line)#logging synchronous //设置光标跟踪
M_SW_3(config-line)#login local //设置采用本地用户名和密码的方式进行登录
M_SW_3(config-line)#line vty 0 4 //设置远程登录的模式
M_SW_3(config-line)#exec-timeout 10 //设置休眠时间
M_SW_3(config-line)#logging synchronous //设置光标跟踪
M_SW_3(config-line)#login local //设置采用本地用户名和密码的方式进行登录
M_SW_3(config)#banner motd # //设置banner,以#开始以#结束
Enter TEXT message. End with the character '#'.
This is M_SW_3
#
M_SW_3(config)#int f0/1 //进入接口
M_SW_3(config-if)#description F0/9 interface to M_SW_1//描述该接口连接到M_SW_1的F0/9接口上;
M_SW_3(config-if)#int f0/2 //进入接口
M_SW_3(config-if)#description F0/9 interface to M_SW_2 /描述该接口连接到M_SW_2的F0/9接口上;
Switch(config)#service password-encryption //启用系统加密命令
M_SW_3(config-if)#end //退到特权模式
M_SW_3#copy running-config startup-config //保存当前的配置
Destination filename [startup-config]?
Building configuration...
[OK]
2-将M_SW_3设置为VTP的服务器,负责整个网络的VLAN划分和管理,并根据拓扑图的要求,划分VLAN;
M_SW_3(config)#vtp mode server //设置VTP的模式为服务器模式
M_SW_3(config)#vtp domain rstp.com //设置VTP的域名
M_SW_3(config)#vtp version 2 //设置VTP的版本
M_SW_3(config)#vtp password cisco //设置VTP的密码
/*创建VLNA信息*/
M_SW_3(config)#vlan 10 //创建VLAN信息
M_SW_3(config-vlan)#vlan 20
M_SW_3(config-vlan)#vlan 30
M_SW_3(config-vlan)#vlan 40
M_SW_3(config-vlan)#vlan 50
M_SW_3(config-vlan)#vlan 60
3-将其他交换作为VTP的客户端,接收服务器端传达过来的VLAN信息;
M_SW_1(config)#vtp mode client //设置VTP的模式为客户端模式
M_SW_1(config)#vtp domain rstp.com //设置VTP的域名
M_SW_1(config)#vtp password cisco //设置VTP的密码
4-设置设备间的链路模式为trunk模式
M_SW_3(config)#int range f0/1-2 //进入F0/1-2组接口
M_SW_3(config-if-range)#switchport trunk encapsulationdot1q //封装接口模式M_SW_3(config-if-range)#switchportmode trunk //设置接口的工作模式
M_SW_1(config)#int range f0/1-10 //进入组接口
M_SW_1(config-if-range)#switchport trunk encapsulationdot1q //封装接口模式
M_SW_1(config-if-range)#switchport mode trunk //设置接口的工作模式
M_SW_2(config)#int range f0/1-10 //进入组接口
M_SW_2(config-if-range)#switchport trunk encapsulationdot1q //封装接口模式
M_SW_2(config-if-range)#switchport mode trunk //设置接口的工作模式
M_SW_4(config)#int f0/10 //进入组接口
M_SW_4(config-if)#switchport trunk encapsulation dot1q //封装接口模式
M_SW_4(config-if)#switchport mode trunk //设置接口的工作模式
SW_1(config)#int range f0/1-2 //进入组接口
SW_1(config-if-range)#switchport mode trunk //设置接口的工作模式
5-在接入层设备上测试VLAN的划分情况是否正确
6-将接口分配到指定的VLAN中
SW_1(config)#Int f0/3 //进入接口
SW_1(config-if)#Switchport mode access //设置接口的工作模式
SW_1(config-if)#Switchport access vlan 10 //将接口分配到指定的VLAN中
SW_1(config-if)#Int f0/4 //进入接口
SW_1(config-if)#Switchport mode access //设置接口的工作模式
SW_1(config-if)#Switchport access vlan 20 //将接口分配到指定的VLAN中
7-检查VLAN划分后接口的分配情况
8-根据拓扑图的情况在所有接入层的交换机上配置端口安全,预警状态为shutdown;
SW_1(config-if)#Int f0/3 //进入接口
SW_1(config-if)#switchport port-security maximum 1 //设置端口允许接入的最大数量
SW_1(config-if)#switchport port-security violationshutdown //设置预警处理方法
SW_1(config-if)#switchport port-security //启用端口安全
SW_1(config-if)#Int f0/4 //进入接口
SW_1(config-if)#switchport port-security maximum 1 //设置端口允许接入的最大数量
SW_1(config-if)#switchport port-security violationshutdown //设置预警处理方法
SW_1(config-if)#switchport port-security //启用端口安全
9-根据拓扑图的情况,在所有交换机上开启快速生成树协议;
M_SW_3(config)#spanning-tree mode rapid-pvst //启用快速生成树
10-根据拓扑图的情况,在所有的终端接口上,开启快速接口功能;
SW_1(config-if)#int f0/3 //进入接口
SW_1(config-if)#spanning-tree portfast //启动快速端口
SW_1(config-if)#int f0/4 //进入接口
SW_1(config-if)#spanning-tree portfast //启动快速端口
11-根据拓扑图的情况,在所有的终端接口上,开启BPDU保护功能;
SW_1(config)#int f0/3 //进入接口
SW_1(config-if)#spanning-tree bpduguard enable //开启BPDU
SW_1(config-if)#int f0/4 //进入接口
SW_1(config-if)#spanning-tree bpduguard enable //开启BPDU
12-检测网络中的根桥、指定端口、阻塞端口和根端口的情况;
问题:在整个网络中,所有VLAN的根都是二层交换机的SW_5;根据拓扑图的分布情况和网络中存在的设备情况,SW_5为根不符合要求,需要进行调整;
13-接入新的交换机,并观察网络中根桥、指定端口、阻塞端口和根端口的变化情况,若根桥没有变化,则改变新接入设备的优先级,使其成为最优根桥,观察网络设备的变化情况。
假设:新接入的M_SW_4交换机优先级为28672,高于SW_5优先级,则出现根被夺走现象;
M_SW_4(config)#spanning-tree vlan 1,10,20,30,40,50,60priority 28672 //修改该交换机的优先级,使其成为高优先级的设备,与原根竞争根的选举。
14-在相应的接口上启用根保护功能,观看网络中根桥、指定端口、阻塞端口和根端口的变化情况;并将恢复原有的根;
M_SW_1(config-if)#int f0/10 //进入接口
M_SW_1(config-if)#spanning-tree guard root //启用根保护功能
SW_5(config)#spanning-tree vlan 1,10,20,30,40,50,60priority 8192 //提升原根的优先级,使其他新接入的设备无法与其争用根。
15-根据要求,完成下面的配置
(1)M_SW_1作为vlan10、30、50的主根;
(2)M_SW_2作为vlan20、40、60的主根;
(3)M_SW_1作为vlan20、40、60的副根;
(4)M_SW_2作为VLAN10、30、50的副根;
M_SW_1(config)#spanning-tree vlan 10,30,50 root primary //设置m_sw_1作为vlan10、vlan30、vlan50的主根
M_SW_1(config)#spanning-tree vlan 20,40,60 root se //设置m_sw_1作为vlan10、vlan30、vlan50的副根
M_SW_2(config)#spanning-tree vlan 20,40,60 root primary //设置M_SW_2做作为vlan20、vlan40、vlan60的主根
M_SW_2(config)#spanning-tree vlan 10,30,50 root se //设置M_SW_2做作为vlan20、vlan40、vlan60的副根
16-在M_SW_1上设置DHCP,使其成为10、30、50的服务器;
M_SW_1(config)#ip dhcp pool vlan10 //设置地址池,名称为vlan10
M_SW_1(dhcp-config)#default-router 192.168.10.254 //设置vlan10的默认网关地址
M_SW_1(dhcp-config)#network 192.168.10.0 255.255.255.0//设置vlan10的网段
M_SW_1(dhcp-config)#exit //退出接口模式
M_SW_1(config)#ip dhcp excluded-address 192.168.10.254 //设置vlan10的排除地址
M_SW_1(config)#ip dhcp pool vlan30 //设置地址池,名称为vlan30
M_SW_1(dhcp-config)#default-router 192.168.30.254 //设置vlan30的默认网关地址
M_SW_1(dhcp-config)#network 192.168.30.0 255.255.255.0//设置vlan30的网段
M_SW_1(dhcp-config)#exit //退出接口模式
M_SW_1(config)#ip dhcp excluded-address 192.168.30.254 //设置vlan30的排除地址
M_SW_1(config)#ip dhcp pool vlan50 //设置地址池,名称为vlan50
M_SW_1(dhcp-config)#default-router 192.168.50.254 //设置vlan50的默认网关地址
M_SW_1(dhcp-config)#network 192.168.50.0 255.255.255.0//设置vlan50的网段
M_SW_1(dhcp-config)#exit //退出接口模式
M_SW_1(config)#ip dhcp excluded-address 192.168.50.254 //设置vlan50的排除地址
17-在M_SW_2上设置DHCP,使其成为20、40、60的服务器;
M_SW_2(config)#ip dhcp pool vlan20 //设置地址池,名称为vlan20
M_SW_2(dhcp-config)#default-router 192.168.20.254 //设置vlan20的默认网关地址
M_SW_2(dhcp-config)#network 192.168.20.0 255.255.255.0//设置vlan20的网段
M_SW_2(dhcp-config)#exit //退出接口模式
M_SW_2(config)#ip dhcp excluded-address 192.168.20.254 //设置vlan20的排除地址
M_SW_2(config)#ip dhcp pool vlan40 //设置地址池,名称为vlan40
M_SW_2(dhcp-config)#default-router 192.168.40.254 //设置vlan40的默认网关地址
M_SW_2(dhcp-config)#network 192.168.40.0 255.255.255.0//设置vlan40的网段
M_SW_2(dhcp-config)#exit //退出接口模式
M_SW_2(config)#ip dhcp excluded-address 192.168.40.254 //设置vlan40的排除地址
M_SW_2(config)#ip dhcp pool vlan60 //设置地址池,名称为vlan50
M_SW_2(dhcp-config)#default-router 192.168.60.254 //设置vlan50的默认网关地址
M_SW_2(dhcp-config)#network 192.168.60.0 255.255.255.0//设置vlan50的网段
M_SW_2(dhcp-config)#exit //退出接口模式
M_SW_2(config)#ip dhcp excluded-address 192.168.60.254 //设置vlan50的排除地址
18-配置网关地址
M_SW_1(config)#Int vlan 10 //进入vlan 的接口
M_SW_1(config-if)#Ip add 192.168.10.254 255.255.255.0 //设置接口的IP地址
M_SW_1(config-if)#Int vlan 30 //进入vlan 的接口
M_SW_1(config-if)#Ip add 192.168.30.254 255.255.255.0 //设置接口的IP地址
M_SW_1(config-if)#Int vlan 50 //进入vlan 的接口
M_SW_1(config-if)#Ip add 192.168.50.254 255.255.255.0 //设置接口的IP地址
M_SW_2(config)#Int vlan 20 //进入vlan 的接口
M_SW_2(config-if)#Ip add 192.168.20.254 255.255.255.0 //设置接口的IP地址
M_SW_2(config-if)#Int vlan 40 //进入vlan 的接口
M_SW_2(config-if)#Ip add 192.168.40.254 255.255.255.0 //设置接口的IP地址
M_SW_2(config-if)#Int vlan 60 //进入vlan 的接口
M_SW_2(config-if)#Ip add 192.168.60.254 255.255.255.0 //设置接口的IP地址
19-检查DHCP的配置情况
联系客服