STP:生成树协议
背景:在交换网络中为提高网络可靠性,采用双上行的冗余的环形组网方式,但是容易出现环路的问题
环路的两个现象:
广播风暴:
交换机在不同的接口上不断地接收到相同的数据帧
引发的问题:
设备处理性能优先,同意出现拥塞,严重时导致设备损坏
对于链路而言需要额外的宽带在承载这些流量,一些重要业务无法得到及时的转发
MAC地址表震荡:
交换机在不同的接口上频繁的学习到相同的MAC地址
引发的问题:
MAC地址震荡漂移,导致交换机无法正常转发更该MAC地址对应的数据
作用:在确保网络可靠性的前提下,解决二层环路问题
实现思想:通过逻辑上阻塞端口 ,阻塞端口正常情况下并不参与数据转发,只作为备份,当主路径出现故障,则阻塞端口会被启用,参与到数据转发中
实现原理:
报文-BPDU
重要字段:用于携带计算参数的字段:ROOT-ID,BID,RPC,PID
计时器字段:消息生存时间,最大的老化时间,hello time,转发延迟
作用:用于携带计算参数,周期性的发送(25一次)用于维护STP
工作原理:
- 在网络中选举出一个根桥(有且只有一个)
在初始化运行STP时,所有交换机都认为自己是根桥,则会向网络中通告自身的配置BPDU,互相收到后,开始进行选举,通过比较配置BPDU中携带的BID进行比较,BID越小越优先
BID由两部分组成,分别是桥优先级、MAC地址
桥优先级:作为优选的参数,取值范围:0-61440,默认值是32768,步长为4096,
优先极值越低优先级越高
BID比较原则:
首先小比较桥优先级,优先级极值越低越优先
若桥优先级相同,则比较MAC地址,MAC地址越小越优先
- 确定端口角色(DP,RP,AP)
DP:指定端口,用来发送/转发最优的配置BPDU
RP:根端口,用于接收最优的配置BPDU
AP:阻塞端口,用于存储最优的配置BPDU
- 在所有非根交换机上选举出一个根端口(每台交换机有且只有一个)
j首先比较RPC,RPC越小越优先
RPC:根路径开销,非根交换机去往根桥的开销,计算是通过将路径中收到BPDU入接口 的开销相加
PS:根桥发送配置BPDU中RPC的值为0
k若RPC相同,则比较对端BID,BID越小越优先
l若对端BID相同,则比较对端PID,PID越小越优先
PID:端口ID,由两个部分组成端口优先级和端口号
端口优先级:作为优选端口的参数,取值范围0-240,默认值为128.步长16
PID比较原则:首先比较端口优先级,优先级极值越小,优先级越高也越优先
若端口优先级相同,则比较端口号,端口号越小越优先
m若对端PID相同,则比较本端PID,PID越小越优先
- 在每条链路上选举一个指定端口(每台交换机上可以存在多个)
j首先比较RPC,RPC越小越优先
k若RPC相同,则比较本端BID,BID越小越优先
l若本段BID相同,则比较本端PID,PID越小越优先
- 阻塞所有非根非指定端口
实现配置:
- 修改优先级影响选举
【SW2】stp priority4096
- 强制指定设备为根/备根
【SW2】stp root primary //强制指定设备为根,修改桥优先级为0
【SW2】stp root secondary //强制指定设备为备根,修改优先级为4096
- 影响端口选举的配置
- 修改接口开销
【SW2-GigabitEthernet0/0/1】stp cost 开销值
- 修改端口优先级、
【SW2-GigabitEthernet0/0/1】stp port priority 优先级极值
RSTP:
原理:通过一些快速收敛机制,如根端口的快速收敛,P/A机制等等,解决STP存在的收敛慢的问题
边缘端口(EP):
背景:用户接入网络后,交换机连接的接口会被选举为DP口,此时是出于阻塞状态的,进入转发状态需要等待两个过渡状态的迁移(两个转发延迟的时间--30S),对于用户而言体验较差
作用:将连接终端的端口配置为边缘端口,可以不参与STP计算,直接从阻塞状态迁移到
转发状态
PS:边缘端口一定是配置在交换机连接终端的接口上,不让若边缘端口连接交换机收
到BPDU的话会丧失边缘端口的特性,变为普通的端口
配置:【SW3-GigabitEthernet0/0/3】stp edged-port enable
配置步骤:
- 根据地址网段的划分,为主机和服务器分配对应的地址
PC1---192.168.10.1/24
PC2---192.168.20.2/24
PC3---192.168.10.3/24
PC4---192.168.20.4/24
Server1---192.168.10.100/24
Server2---192.168.20.100/24
- 根据拓扑中规划的VLAN进行划分和配置
SW1:
#
sys
#
sysname SW1
#
vlan batch 10 20 100 200
#
interface GigabitEthernet0/0/4
port hybrid pvid vlan 100
port hybrid untagged vlan 10 100
SW2:
#
sys
#
sysname SW2
#
vlan batch 10 20 100 200
#
interface GigabitEthernet0/0/4
port hybrid pvid vlan 200
port hybrid untagged vlan 20 200
SW3:
#
sys
#
sysname SW3
#
vlan batch 10 20 100 200
#
interface GigabitEthernet0/0/3
port hybrid pvid vlan 10
port hybrid untagged vlan10 100
#
interface GigabitEthernet0/0/4
port hybrid pvid vlan 20
port hybrid untagged vlan 20 200
SW4:
#
sys
#
sysname SW4
#
vlan batch 10 20 100 200
#
interface GigabitEthernet0/0/3
port hybrid pvid vlan 10
port hybrid untagged vlan 10 100
#
interface GigabitEthernet0/0/4
port hybrid pvid vlan 20
port hybrid untagged vlan 20200
- 在交换机与交换机之间放行VLAN通过,以下以SW1为例
SW1:
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 10 20 100 200
- 根据需求确定好阻塞端口
SW1:
#
STP root primary
SW2:
#
stp root secondary
SW4:
#
interface GigabitEthernet0/0/2
stp cost 40001
- 根据最后一点需求,需要将连接终端设备的接口配置成边缘端口,以下以sw1为例
SW1:
#
interface GigabitEthernet0/0/4
stp edged-port enable
- 测试
- 使用ping命令进行连通性的测试
- 使用dis stp brief查看阻塞端口是否符合需求