生成树(stp)
为什么需要STP?
在以太网中,如果存在物理环路(例如多台交换机形成环状连接),会导致以下问题:
-
广播风暴:广播帧在环路中无限循环,耗尽带宽和交换机资源。
-
MAC地址表震荡:交换机的MAC地址表因同一MAC地址从不同端口学习而频繁更新,导致转发错误。
-
重复数据帧:同一数据帧可能通过不同路径多次到达目的地。
STP通过阻塞冗余路径中的某些端口,消除逻辑环路,并在主路径故障时激活备用路径。
STP的核心功能
-
构建无环拓扑:通过算法选择唯一路径,阻塞冗余路径。
-
自动故障恢复:当主路径失效时,重新计算拓扑并激活备用路径。
-
防止广播风暴:确保数据帧不会在环路中无限循环。
STP的工作原理
-
选举根桥(Root Bridge):
-
所有交换机通过交换BPDU(Bridge Protocol Data Unit)报文参与选举。
-
根桥的选举依据是桥ID(Bridge ID),由优先级和MAC地址组成,数值最小的成为根桥。
优先级取值范围是0~65535,默认值为32768,可以修改但是修改值必须为4096的倍数。优先级最高的设备(数值越小越优先)会被选举为根桥。如果优先级相同,则会比较MAC地址,MAC地址越小则越优先。
-
-
确定根端口(Root Port):
-
每台非根交换机选择一个根端口,即到根桥路径开销最小的端口。
-
路径开销基于链路带宽(例如,10 Mbps的开销为100,1 Gbps为4)。
-
-
确定指定端口(Designated Port):
-
每个网络段(冲突域)选择一个指定端口,负责转发流量到根桥。
-
指定端口的选举依据是到根桥的累计路径开销。
-
-
阻塞非指定端口:
-
既不是根端口也不是指定端口的端口会被阻塞(Blocking状态),防止环路。
-
STP的端口状态
-
阻塞(Blocking):不转发数据帧,但监听BPDU。
-
监听(Listening):开始参与生成树计算,不学习MAC地址。
-
学习(Learning):学习MAC地址,但仍不转发数据。
-
转发(Forwarding):正常转发数据帧。
-
禁用(Disabled):端口未启用。
状态转换时间较长(传统STP需30-50秒),因此后续改进协议(如RSTP)优化了收敛速度。
STP的变种协议
-
传统STP(IEEE 802.1D):
-
基础协议,收敛时间较长(30-50秒)。
-
-
快速生成树协议(RSTP, IEEE 802.1w):
-
引入端口角色(替代端口、备份端口)和快速收敛机制(端口状态简化为3种),收敛时间缩短至1-2秒。
-
-
多生成树协议(MSTP, IEEE 802.1s):
-
支持多个生成树实例,为不同VLAN分配不同路径,实现负载均衡。
-
STP的配置示例
#快速生成树rstp
LSW1:
[Huawei]stp enable #开启生成树协议
[Huawei]stp mode rstp #生成树模式改为rstp
Info: This operation may take a few seconds. Please wait for a moment...done.
LSW2:
[Huawei]stp enable
[Huawei]stp mode rstp
Info: This operation may take a few seconds. Please wait for a moment...done.
[Huawei]stp instance 1 priority 4096 #生成树实例1为4096,优先级越小越优先(主根)
[Huawei]int g0/0/3
[Huawei-GigabitEthernet0/0/3]stp edged-port enable #设置为边缘端口
LSW3:
[Huawei]stp enable
[Huawei]stp mode rstp
Info: This operation may take a few seconds. Please wait for a moment...done.
[Huawei]stp instance 1 priority 8192 #生成树实例1为8192,优先级越小越优先(备份根)
多生成树mstp
基本互联配置:路由器AR3作为主机,一个接口相当于一台;交换机与交换机之间使用trunk模式,交换机与主机之间使用access模式。
LSW4:
[Huawei]vlan batch 20 30 #设置vlan 20和30
Info: This operation may take a few seconds. Please wait for a moment...done.
[Huawei]int g0/0/3
[Huawei-GigabitEthernet0/0/3]port link-type trunk
[Huawei-GigabitEthernet0/0/3]port trunk allow-pass vlan all #允许所有vlan通过
[Huawei-GigabitEthernet0/0/3]int g0/0/4
[Huawei-GigabitEthernet0/0/4]port link-type trunk
[Huawei-GigabitEthernet0/0/4]port trunk allow-pass vlan all
[Huawei-GigabitEthernet0/0/4]int g0/0/1
[Huawei-GigabitEthernet0/0/1]port link-type access
[Huawei-GigabitEthernet0/0/1]port default vlan 20 #设置为valn30
[Huawei-GigabitEthernet0/0/1]int g0/0/2
[Huawei-GigabitEthernet0/0/2]port link-type access
[Huawei-GigabitEthernet0/0/2]port default vlan 30 #设置为valn30
[Huawei-GigabitEthernet0/0/2]quit
LSW5:
[Huawei]vlan batch 20 30 #设置vlan 20和30
Info: This operation may take a few seconds. Please wait for a moment...done.
[Huawei]int g0/0/1
[Huawei-GigabitEthernet0/0/1]port link-type trunk
[Huawei-GigabitEthernet0/0/1]port trunk allow-pass vlan all #允许所有vlan通过
[Huawei-GigabitEthernet0/0/1]int g0/0/2
[Huawei-GigabitEthernet0/0/2]port link-type trunk
[Huawei-GigabitEthernet0/0/2]port trunk allow-pass vlan all
[Huawei-GigabitEthernet0/0/2]int g0/0/3
[Huawei-GigabitEthernet0/0/3]port link-type access
[Huawei-GigabitEthernet0/0/3]port default vlan 30 #设置为valn30
[Huawei-GigabitEthernet0/0/3]quit
LSW6:
[Huawei]vlan batch 20 30 #设置vlan 20和30
Info: This operation may take a few seconds. Please wait for a moment...done.
[Huawei]int g0/0/1
[Huawei-GigabitEthernet0/0/1]port link-type trunk
[Huawei-GigabitEthernet0/0/1]port trunk allow-pass vlan all #允许所有vlan通过
[Huawei-GigabitEthernet0/0/1]int g0/0/2
[Huawei-GigabitEthernet0/0/2]port link-type trunk
[Huawei-GigabitEthernet0/0/2]port trunk allow-pass vlan all
[Huawei-GigabitEthernet0/0/2]int g0/0/3
[Huawei-GigabitEthernet0/0/3]port link-type access
[Huawei-GigabitEthernet0/0/3]port default vlan 20 #设置为valn20
[Huawei-GigabitEthernet0/0/3]quit
#多生成树
LSW1:
[Huawei]stp enable #开启生成树协议
[Huawei]stp mode mstp #生成树模式改为mstp
[Huawei]stp region-configuration #进入mstp配置模式
[Huawei-mst-region]region-name re1 #配置域名为re1
[Huawei-mst-region]instance 1 vlan 20 #将vlan 20加入实例1中
[Huawei-mst-region]instance 2 vlan 30 #将vlan 30加入实例2中
[Huawei-mst-region]active region-configuration #激活配置
Info: This operation may take a few seconds. Please wait for a moment...done.
LSW2:
[Huawei]stp enable #开启生成树协议
[Huawei]stp mode mstp #生成树模式改为mstp
[Huawei]stp region-configuration #进入mstp配置模式
[Huawei-mst-region]region-name re1 #配置域名为re1
[Huawei-mst-region]instance 1 vlan 20 #将vlan 20加入实例1中
[Huawei-mst-region]instance 2 vlan 30 #将vlan 30加入实例2中
[Huawei-mst-region]active region-configuration #激活配置
Info: This operation may take a few seconds. Please wait for a moment...done.
[Huawei-mst-region]quit #退出mstp配置模式
[Huawei]stp instance 1 root primary #设置此机为实例1的主根
[Huawei]stp instance 2 root secondary #设置此机就为实例2的备根
LSW3:
[Huawei]stp enable #开启生成树协议
[Huawei]stp mode mstp #生成树模式改为mstp
[Huawei]stp region-configuration #进入mstp配置模式
[Huawei-mst-region]region-name re1 #配置域名为re1
[Huawei-mst-region]instance 1 vlan 20 #将vlan 20加入实例1中
[Huawei-mst-region]instance 2 vlan 30 #将vlan 30加入实例2中
[Huawei-mst-region]active region-configuration #激活配置
Info: This operation may take a few seconds. Please wait for a moment...done.
[Huawei-mst-region]quit #退出mstp配置模式
[Huawei]stp instance 1 root secondary #设置此机为实例1的备根
[Huawei]stp instance 2 root primary #设置此机就为实例2的主根
评论一下?