STP配置的实操学习
STP简介
生成树协议(英语:Spanning Tree Protocol,STP),是一个作用在OSI网络模型中第二层的通信协议。能够防止交换机冗余链路产生的环路,确保以太网中无环路的逻辑拓扑结构,从而避免广播风暴大量占用交换机的资源。生成树协议是基于Radia Perlman(英语:Radia Perlman)在DEC工作时发明的一种算法被纳入了IEEE 802.1d中。2001年IEEE组织推出了快速生成树协议(RSTP)在网络结构发生变化时能比STP更快的收敛网络,还引进了端口角色来完善了收敛机制,被纳入在IEEE 802.1w中。
生成树协议工作原理
任意一交换机中如果到达根网桥有两条或者两条以上的链路,生成树协议都根据算法把其中一条切断,仅保留一条,从而保证任意两个交换机之间只有一条单一的活动链路。因为这种生成的拓扑结构,很像是以根交换机为树干的树形结构,故为生成树协议。
STP端口状态
STP工作流程
首先,依据网桥优先权(桥优先)和MAC地址组合生成的桥ID进行网桥选举,桥ID最小的网桥将成为网络中的根桥(桥根);
在此基础上,计算每个节点到根桥的距离,并由这些路径得到各冗余链路的代价,选择最小的成为通信路径(相应的端口状态变为forwarding),其它的就成为备份路径(相应的端口状态变为blocking)。STP生成过程中的通信任务由BPDU完成,这种数据包又分为包含配置信息的配置BPDU(其大小不超过35B)和包含拓扑变化信息的通知BPDU(其长度不超过4B)。
STP分类
STP(Spanning-tree Protocol):由IEEE802.1d定义,不能快速迁移。即使是在点对点链路或边缘端口,也必须等待2倍的forward delay的时间延迟,网络才能收敛。
RSTP(Rapid Spanning-tree Protocol):即快速生成树协议,最早在IEEE Std 802.1w定义,可以快速收敛,却存在以下缺陷:局域网内所有网桥共享一棵生成树,不能按vlan阻塞冗余链路。该协议可应用于环路网络,通过一定的算法实现路径冗余,同时将环路网络修剪成无环路的树型网络,从而避免报文在环路网络中的增生和无限循环。
MSTP(Multiple Spanning Tree Protocol):是IEEE 802.1s中定义的一种新型生成树协议,STP/RSTP是基于端口的,PVST+是基于VLAN的,而MSTP是基于实例的。MSTP中引入了“实例”(Instance)和“域”(Region) “的概念。所谓“实例”就是多个VLAN的一个集合,这种通过多个VLAN捆绑到一个实例中去的方法可以节省通信开销和资源占用率。MSTP各个实例拓扑的计算是独立的,在这些实例上就可以实现负载均衡。使用的时候,可以把多个相同拓扑结构的VLAN映射到某一个实例中,这些VLAN在端口上的转发状态将取决于对应实例在MSTP里的转发状态。
所谓“域”,由域名、修订级别、格式选择器、VLAN与实例的映射关系,其中域名、格式选择器和修订级别在BPDU报文中都有相关字段,而VLAN与实例的映射关系在BPDU报文中表现摘要信息,该摘要是根据映射关系计算得到的一个16字节签名。MSTP弥补了STP与RSTP的缺陷,它允许不同vlan的流量沿各自的路径分发,从而为冗余链路提供了更好的负载分担机制。
STP实操配置
实操拓扑
(1)为各个交换机开启STP配置
[LSW1]stp enable //启动STP
[LSW1]stp mode stp //配置STP工作类型为普通的STP
[LSW2]stp enable
[LSW2]stp mode stp
[LSW3]stp enable
[LSW3]stp mode stp
[LSW4]stp enable
[LSW4]stp mode stp
完成上述各个设备配置后,查看各STP信息。
(2)查看交换机STP信息
LSW1信息
查看命令:display stp
[LSW1]display stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :32768.4c1f-ccc5-0f25 ***//交换机的ID值(由优先级和MAC组成)***
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :32768.4c1f-cc42-14af / 200000 ***//根交换机ID***
CIST RegRoot/IRPC :32768.4c1f-ccc5-0f25 / 0
CIST RootPortId :128.1
BPDU-Protection :Disabled
TC or TCN received :443
TC count per hello :0
STP Converge Mode :Normal
----[Port1(Ethernet0/0/1)][FORWARDING]----**//端口Ethernet0/0/1为转发状态(FORWARDING)**
Port Protocol :Enabled
Port Role :Root Port**//端口角色为根端口(Root Port)**
Port Priority :128
Port Cost(Dot1T ) :Config=auto / Active=200000
Designated Bridge/Port :32768.4c1f-cc42-14af / 128.1
Port Edged :Config=default / Active=disabled
Point-to-point :Config=auto / Active=true
Transit Limit :147 packets/hello-time
Protection Type :None
Port STP Mode :STP
Port Protocol Type :Config=auto / Active=dot1s
BPDU Encapsulation :Config=stp / Active=stp
PortTimes :Hello 2s MaxAge 20s FwDly 15s RemHop 0
----[Port2(Ethernet0/0/2)][DISCARDING]----**//端口Ethernet0/0/1为丢弃状态(DISCARDING)**
Port Protocol :Enabled
Port Role :Alternate Port**//端口角色为替换端口(Alternate Port)**
Port Priority :128
Port Cost(Dot1T ) :Config=auto / Active=200000
Designated Bridge/Port :32768.4c1f-cc8e-5881 / 128.2
Port Edged :Config=default / Active=disabled
Point-to-point :Config=auto / Active=true
----[Port3(Ethernet0/0/3)][DISCARDING]----**//端口Ethernet0/0/1为丢弃状态(DISCARDING)**
Port Protocol :Enabled
Port Role :Alternate Port**//端口角色为替换端口**
Port Priority :128
Port Cost(Dot1T ) :Config=auto / Active=200000
Designated Bridge/Port :32768.4c1f-cc42-5dd3 / 128.3
Port Edged :Config=default / Active=disabled
LSW2信息
查看命令:display stp
[LSW2]display stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :32768.4c1f-cc42-14af**//交换机ID值**
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :32768.4c1f-cc42-14af / 0 **//根交换机ID值,对比来看,可以得知交换机LSW2为根交换机**
CIST RegRoot/IRPC :32768.4c1f-cc42-14af / 0
CIST RootPortId :0.0
BPDU-Protection :Disabled
TC or TCN received :27
TC count per hello :0
STP Converge Mode :Normal
----[Port1(Ethernet0/0/1)][FORWARDING]----**//端口状态为转发状态**
Port Protocol :Enabled
Port Role :Designated Port **//端口角色为指定状态**
Port Priority :128
Port Cost(Dot1T ) :Config=auto / Active=200000
Designated Bridge/Port :32768.4c1f-cc42-14af / 128.1
Port Edged :Config=default / Active=disabled
Point-to-point :Config=auto / Active=true
Transit Limit :147 packets/hello-time
Protection Type :None
Port STP Mode :STP
----[Port2(Ethernet0/0/2)][FORWARDING]----**//端口状态为转发状态**
Port Protocol :Enabled
Port Role :Designated Port**//端口角色为指定端口**
Port Priority :128
Port Cost(Dot1T ) :Config=auto / Active=200000
Designated Bridge/Port :32768.4c1f-cc42-14af / 128.2
Port Edged :Config=default / Active=disabled
Point-to-point :Config=auto / Active=true
Transit Limit :147 packets/hello-time
Protection Type :None
Port STP Mode :STP
----[Port3(Ethernet0/0/3)][FORWARDING]----
Port Protocol :Enabled
Port Role :Designated Port
LSW3信息
查看命令:display stp
[LSW3]display stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :32768.4c1f-cc8e-5881
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :32768.4c1f-cc42-14af / 200000
CIST RegRoot/IRPC :32768.4c1f-cc8e-5881 / 0
----[Port1(Ethernet0/0/1)][DISCARDING]----**//丢弃状态**
Port Protocol :Enabled
Port Role :Alternate Port**//替换端口**
Port Priority :128
Port Cost(Dot1T ) :Config=auto / Active=200000
----[Port2(Ethernet0/0/2)][FORWARDING]----
Port Protocol :Enabled
Port Role :Designated Port
Port Priority :128
Port Cost(Dot1T ) :Config=auto / Active=200000
----[Port3(Ethernet0/0/3)][FORWARDING]----
Port Protocol :Enabled
Port Role :Root Port**//根端口**
Port Priority :128
Port Cost(Dot1T ) :Config=auto / Active=200000
LSW4信息
查看命令:display stp
[LSW4]display stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :32768.4c1f-cc42-5dd3
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :32768.4c1f-cc42-14af / 200000
CIST RegRoot/IRPC :32768.4c1f-cc42-5dd3 / 0
CIST RootPortId :128.2
BPDU-Protection :Disabled
TC or TCN received :371
TC count per hello :0
STP Converge Mode :Normal
----[Port1(Ethernet0/0/1)][FORWARDING]----
Port Protocol :Enabled
Port Role :Designated Port//指定端口
----[Port2(Ethernet0/0/2)][FORWARDING]----
Port Protocol :Enabled
Port Role :Root Port//根端口
----[Port3(Ethernet0/0/3)][FORWARDING]----
Port Protocol :Enabled
Port Role :Designated Port//指定端口
当前配置STP后,拓扑选择的线路如下所示
从上图可以看出,有效避免了二层环路问题。
(3)根交换机的自主选择配置
根交换机在网络中的位置是非常重要的,如果选择了一台性能较差的交换机,或者是部署在接入层的交换机作为根交换机,会影响到整个网络的通信质量及数据传输。所以确定根交换机的位置极为重要。
根交换机选举依据是根交换机ID(由优先级和MAC确定),值越小越优先。交换机默认的优先级为32768,现在将S3配置为主根交换机,S2为备份根交换机,将S3的优先级改为0,S2的优先级改为4096(修改以后的优先级必须是4096的倍数)。
主备根交换机设备配置方式一:
[LSW2]stp priority 4096
[LSW3]stp priority 0
配置主备根交换机的方式二:
[LSW2]stp root primary //设置成为根交换机
[LSW3]stp root secondery //设置成为备份交换机
再次查看设备的STP信息
LSW3设备的MAC地址:
CIST Bridge :32768.4c1f-cc8e-5881
LSW3信息
[LSW2]display stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :4096 .4c1f-cc42-14af
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :0 .4c1f-cc8e-5881 / 200000//可以看到此处的MAC地址是LSW3设备的MAC地址,所以根交换机变更
CIST RegRoot/IRPC :4096 .4c1f-cc42-14af / 0
CIST RootPortId :128.3
#####查看交换机摘要信息
[LSW2]display stp brief
MSTID Port Role STP State Protection
0 Ethernet0/0/1 DESI FORWARDING NONE
0 Ethernet0/0/2 DESI FORWARDING NONE
0 Ethernet0/0/3 ROOT FORWARDING NONE
0 Ethernet0/0/4 DESI FORWARDING NONE
LSW3设备信息
[LSW3]display stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :0 .4c1f-cc8e-5881//交换机MAC地址
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :0 .4c1f-cc8e-5881 / 0//根交换机MAC地址(上下地址一致)
CIST RegRoot/IRPC :0 .4c1f-cc8e-5881 / 0
#####查看交换机摘要信息
[LSW3]display stp brief
MSTID Port Role STP State Protection
0 Ethernet0/0/1 DESI FORWARDING NONE
0 Ethernet0/0/2 DESI FORWARDING NONE
0 Ethernet0/0/3 DESI FORWARDING NONE
//全部为状态状态的指定角色
其他设备的信息
[LSW1]display stp brief
MSTID Port Role STP State Protection
0 Ethernet0/0/1 ALTE DISCARDING NONE
0 Ethernet0/0/2 ROOT FORWARDING NONE
0 Ethernet0/0/3 ALTE DISCARDING NONE
[LSW4]display stp brief
MSTID Port Role STP State Protection
0 Ethernet0/0/1 ROOT FORWARDING NONE
0 Ethernet0/0/2 ALTE DISCARDING NONE
0 Ethernet0/0/3 DESI FORWARDING NONE
0 Ethernet0/0/4 DESI FORWARDING NONE
自定义根端口后,此时线路变化形式
读到这里,对于STP配置的端口选择有一定了解,但是也许也会存在疑问,对于端口的选举是怎样进行的?
(4)理解根端口和指定端口的选举
生成树在选举出根交换机之后,将在每台非根交换机上选举根端口。选举时首先比较该交换机上每个端口到达根交换机的根路径开销,路径开销最小的端口将成为根端口。如果根路径开销值相同,则比较每个端口所在链路上的上行交换机ID,如果该交换机ID也相同,则比较每个端口所在链路上的上行端口ID。每台交换机上只能拥有一个根端口。
描述端口(Designated Port)
[LSW2]display stp
----[Port1(Ethernet0/0/1)][FORWARDING]----
Port Protocol :Enabled
Port Role :Designated Port
Port Priority :128
Port Cost(Dot1T ) :Config=auto / Active=200000
Designated Bridge/Port :4096.4c1f-cc42-14af / 128.1
Port Edged :Config=default / Active=disabled
Point-to-point :Config=auto / Active=true
Transit Limit :147 packets/hello-time
Protection Type :None
Port STP Mode :STP
Port Protocol Type :Config=auto / Active=dot1s
BPDU Encapsulation :Config=stp / Active=stp
Port Role :Alternate Port //替换端口角色
Port Cost(Dot1T) :Config=auto / Active=200000 //接口路径开销采用Dot1T算法,Config是指手工配置的路径开销,Active=200000为实际路径值
根端口(Root Port)
----[Port3(Ethernet0/0/3)][FORWARDING]----
Port Protocol :Enabled
Port Role :Root Port
Port Priority :128
Port Cost(Dot1T ) :Config=auto / Active=200000
Designated Bridge/Port :0.4c1f-cc8e-5881 / 128.3
Port Edged :Config=default / Active=disabled
Point-to-point :Config=auto / Active=true
Transit Limit :147 packets/hello-time
Protection Type :None
Port STP Mode :STP
Port Protocol Type :Config=auto / Active=dot1s
BPDU Encapsulation :Config=stp / Active=stp
Port Role :Root Port //根端口角色
Port Cost(Dot1T ) :Config=auto / Active=200000
如果要修改某接口到根交换机的路径开销值,可先进入当前接口配置视图,使用“stp const 路径开销值”进行修改。
[LSW3-Ethernet0/0/3]stp cost 1//修改到根交换机的路径开销为1
[LSW3-Ethernet0/0/3]display stp interface e0/0/3
.......
Port Cost(Dot1T )   :Config=1 / Active=1//可以看到此处路径开销值为1
//手工配置路径开销为1,实际路径值也为1
........
生成树的计算主要发生在交换机互联的链路上,而连接PC的端口没有必要参与生成树计算,为了优化网络,降低生成树对终端设备的影响,可以把交换机连接PC的接口配置成边缘接口。
(5)配置边缘接口
[LSW2]interface e0/0/4
[LSW2-Ethernet0/0/4]stp edged-port enable //将端口配置为边缘端口,不参与生成树计算
[LSW2-Ethernet0/0/4]stp bpdu-filter enable //忽略收到的BPDU报文
[LSW4]interface e0/0/4
[LSW4-Ethernet0/0/4]stp edged-port enable
[LSW4-Ethernet0/0/4]stp bpdu-filter enable
那么现在的设备上的端口e0/0/4是否参与计算
[LSW2]dis stp brief
MSTID Port Role STP State Protection
0 Ethernet0/0/1 DESI FORWARDING NONE
0 Ethernet0/0/2 DESI FORWARDING NONE
0 Ethernet0/0/3 ROOT FORWARDING NONE
端口e0/0/4未参与计算
如有错误!还望各位同志指教