1.定义
STP(Spanning Tree Protocol,802.1D)是生成树协议,由IEEE 802.1D-1998标准定义。以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路,但是这也带来了网络环路的问题。STP主要作用是防止网桥网络中的冗余链路形成环路。.
2.STP拓扑
交换机A、B、C之间各有一根网线连接,这样三台交换机冗余连接就产生了一个环路。STP会通过选举出一个逻辑的阻塞端口,交换机C的端口6会被阻塞起来,不发送数据,当其他两个链路出现故障时阻塞端口就会变成正常端口转发数据。
在运行STP协议的网络中,一台设备被称为一个网桥,或简称桥。每个桥都有一个桥ID
(Bridge ID,即BID),IEEE 802.1d标准中规定BID是由桥优先级(Bridge Priority)与桥MAC地址构成。BID桥优先级占据高16位,其余的低48位是MAC地址。
对于一个STP网络,根桥(Root Bridge)就是网桥ID最小的桥,在全网中只有一个,它是整个网络的逻辑中心,但不一定是物理中心。在进行BID比较时,先比较桥优先级,优先级值小的为根桥;当桥优先级值相等时,再比较桥的背板MAC地址,MAC地址小的为根桥。
3.STP端口角色和状态
端口角色 | 定义 |
---|---|
根端口(Root Port) | 去往根桥路径开销最小的端口,根端口负责向根桥方向转发数据,这个端口的选择标准是依据根路径开销判定。在一个运行STP协议的设备上根端口有且只有一个,根桥上没有根端口。 |
指定端口(Designated Port) | 每一个物理网段的不同端口之间选举出一个指定端口,离根桥设备最近的端口。每个物理网段内必须有一个指定端口,根桥上的端口都是指定端口。依次根据以下三项条件来判定(1)某网段到根桥的路径开销最小(2)接收数据时发送方(也就是链路对端的桥)的桥ID最小(3)发送方端口ID最小(端口ID有16位,它是由8位端口优先级和8位端口编号组成的,其中端口优先级的取值范围是0~240,缺省值是128,可以修改,但必须是16的倍数)。 |
阻塞端口 | 被阻塞了的端口,不转发数据。 |
禁用端口(Disabled Port) | 处于管理性关闭的交换机端口,禁用端口不参与生成树选举过程。 |
端口状态 | 定义 |
---|---|
禁用(disabled) | 该端口只是相应网管消息,并且必须先转到阻塞状态。这种状态可能是物理链路没有up,或者管理员手动关闭了端口。不收发任何报文。 |
阻塞(blocking) | 不能够参与转发数据报文,但可以接收BPDU配置消息,并交给CPU处理。不过不能发送配置BPDU消息,也不能进行地址学习。 |
监听(listening) | 处于这个状态的端口不参与数据转发,也不进行地址学习,但可以接收并发送BPDU配置消息。 |
学习 (learning) | 处于这个状态的端口不能转发数据,但是开始地址学习,并可以接收、处理和发送BPDU配置消息。 |
转发(forwarding) | 一旦端口进入该状态,就可以转发任何数据,同时也进行地址学习和BPDU配置消息的接收、处理和发送。 |
4.BPDU
BPDU(Bridge Protocol Data Unit)网桥协议数据单元,是运行生成树协议的网桥之间进行信息交换的消息帧。
字段内容 | 含义 |
---|---|
协议ID | 代表BPDU协议,该值总为0 |
协议版本 | 协议版本的标识符,STP为0,RSTP为2,MSTP为3 |
BPDU类型 | STP的配置BPDU是0x00,RSTP和MSTP为0x02 |
标志位 | 第一个bit表示“TCA(拓扑改变响应)”,最后一个bit表示“TC(拓扑改变)” |
根桥ID | 2个字节的网桥优先级和6个字节的网桥MAC地址 |
根路径开销 | 端口到根桥的开销值 |
指定桥ID | 本交换机的桥ID |
指定端口ID | 发送该BPDU端口的ID |
Message age | 消息寿命,BPDU的消息年龄 |
Max age | BPDU消息的老化时间,当这个时间内没有收到BPDU消息则认为该端口的链路发生故障,默认20s |
Hello Time | BPDU发送的时间间隔,默认2s |
Forward Delay | 转发延时,就是停留在在监听和学习状态的时间,默认15s |
5.RSTP
RSTP(rapid spanning Tree Protocol)快速生成树协议,最早在IEEE 802.1W-2001中提出,并且在IEEE 802.1D-2004标准中替代了原来的STP协议。相对于STP,这种协议在网络结构发生变化时,能更快的收敛网络。RSTP可以完全向下兼容STP协议,新型以太单板支持符合ITU-T 802.1d标准的生成树协议STP及802.1w规定的快速生成树协议RSTP,收敛速度可达到1s。
5.1端口状态对比
RSTP把STP端口状态中的Disable、Blocking、Listening状态进行了整合,这三种状态都不进行包的转发。STP 五种端口状态和RSTP 三种端口状态对比:
STP端口状态 | RSTP端口状态 |
---|---|
禁用(Disable ) | 丢弃(Discarding) |
阻塞(Blocking) | 丢弃(Discarding) |
侦听(Listening) | 丢弃(Discarding) |
学习(Learning) | 学习(Learning) |
转发(Forwarding) | 转发(Forwarding) |
5.2端口角色对比
STP 端口角色和RSTP端口角色的对比:
STP端口角色 | RSTP端口角色 |
---|---|
根端口(Root Port) | 根端口(Root Port) |
指定端口(Designated Port) | 指定端口(Designated) |
非指定端口(Unspecified port) | 备份端口(Backup Port) |
禁用端口(Disabled Port) | 替代端口 (Alternative Port) |
替代端口:用来提供替代去往根网桥路径的端口,即替换当前根端口,工作在稳定拓扑中为丢弃状态。
备份端口:充当指定交换机的那个网段提供一条备份链路,工作在稳定拓扑中为丢弃状态。
6.MSTP
MSTP(Multiple Spanning Tree Protocol)多实例生成树协议,IEEE 802.1s中提出的一种STP和VLAN结合使用的新协议。MSTP是从IEEE802.1w 的快速生成树(RSTP)算法扩展而得到的。MSTP可以形成多个无环路的树,解决广播风暴并实现冗余备份。多个生成树在VLAN间实现负载均衡,不同VLAN的流量按照不同的路径转发。MSTP是华为交换机中默认运行的生成树协议。
MSTP的分类:
分类 | 含义 |
---|---|
CIST(Common Internal Spanning Tree) | 公共与内部生成树。CIST由CST和IST组成。 |
CST(Common Spanning Tree) | 连接交换网络内所有MST域的一棵生成树。 |
IST(Internal Spanning Tree) | 各个MST域内的一棵生成树。 |
SST(Single Spanning Tree) | 运行STP或RSTP的交换设备只能属于一个生成树或者MST域中只有一个交换设备,这个交换设备构成单生成树。 |
与STP/RSTP相比,MSTP中引入了“实例”(Instance)和“域”(Region) 的概念。
所谓“实例”就是多个VLAN的一个集合。使用的时候可以把多个相同业务的VLAN映射到某一个实例中。MSTP拓扑计算以实例为维度,各个实例独立破环。通过VLAN和实例的映射,可以实现在这些实例上实现负载均衡。缺省情况下,所有的VLAN都映射到实例0上。除实例0外的其他实例叫做多生成树实例。
所谓“域”,由域名、修订级别、VLAN与实例的映射关系(mapping of VIDs to spanning trees)组成。每个域内所有交换机都要有相同的MST域配置,也就是说多台交换机域中的三个配置完全相同时,才属于同一个域。缺省情况下,域名就是交换机的桥MAC地址,修订级别等于0,所有的VLAN都映射到实例0上。
报文格式
字段内容 | 含义 |
---|---|
Version 3 Length | Version3 BPDU的长度。 |
MST Configuration Identifier | MST配置标识,表示MST域的标签信息,包含4个字段。 |
CIST Internal Root Path Cost | CIST内部路径开销指从本端口到IST Master交换设备的累计路径开销。CIST内部路径开销根据链路带宽计算。 |
CIST Bridge Identifier | CIST的指定交换设备ID。 |
CIST Remaining Hops | BPDU报文在CIST中的剩余跳数。 |
MSTI Configuration Messages(may be absent) | MSTI配置信息。每个MSTI的配置信息占16 bytes,如果有n个MSTI就占用n×16bytes。 |
7.配置STP
配置STP/RSTP/MSTP工作模式,默认工作在MSTP模式下
[Huawei] stp mode { stp | rstp | mstp }
配置根桥和备份根桥,缺省情况下,交换设备的优先级取值是32768。配置primary后该设备优先级数值自动为0,并且不能更改设备优先级。配置secondary后该设备优先级数值为4096,并且不能更改设备优先级。
[Huawei] stp root primary
[Huawei] stp root secondary
配置端口路径开销,缺省情况下,路径开销值的计算方法为IEEE 802.1t(dot1t)标准方法,取值 1~200000000,默认20000。
[Huawei]interface GigabitEthernet 0/0/1
stp cost { 1~200000000 }
配置MSTP
[Huawei]stp region-configuration # 进入MSTP配置模式
[Huawei-mst-region]region-name huawei # 配置域名
[Huawei-mst-region]instance 11 vlan 11 # 默认所有VLAN都属于实例0,这里把VLAN11映射为实例11
[Huawei-mst-region]instance 12 vlan 12
[Huawei-mst-region]active region-configuration # 激活配置
[SW1]stp instance 11 priority 4096 # 两台交换机互为备份,SW1是vlan11根交换机,SW2是vlan11的备份根交换机
[SW1]stp instance 12 priority 8192
[SW2]stp instance 11 priority 8192 # SW2是vlan12根交换机,SW1是vlan12的备份根交换机
[SW2]stp instance 12 priority 4096