> 文章列表 > HCIP之STP

HCIP之STP

HCIP之STP

企业网三层架构

线路冗余—二层网络桥接环路

        因为路由器的路由表是由相对完善的计算所得,且存在防环规则;故路由器物理链路上实施备份时,一般不会出现环路;但交换转发数据依赖MAC表(CAM表),该表的生成规则非常简单(记录产生),没有防环设计,故只要交换机使用链路备份,就将出现二层环路

        CAM --- 将MAC地址+接口编号+VLAN ID进行哈希运算后,存储的哈希值,二进制格式保存;

设备冗余

网关冗余

UPS冗余

二层环路导致的问题:

        1,广播风暴 --- 广播帧在二层环路中会形成顺时针逆时针转动的两层环路,并且无限循环,最终导致设备宕机网络瘫痪

        2,MAC地址表的翻摆(MAC地址表的漂移) --- 同一个数据帧,顺时针接收后将记录MAC地址及接口在对应信息,之后,逆时针还会再更改一遍,如此循环,导致MAC地址表内容一直再翻滚。

        3,同一数据帧的重复拷贝

STP

        STP --- 生成树协议 --- 是一种工作在OSI网络模型中第二层(数据链路层)通信协议,是一种由交换机运行的,基本应用是防止交换机冗余链路产生的环路,用于确保以太网中无环路的逻辑拓扑结构,从而避免广播风暴,大量占用交换机的资源

生成树

        生成树 --- 在二层交换网络中,编辑上阻塞部分的接口,实现从根交换机所有节点位移的且最短的路径,生成一个没有环路的树形拓扑,当最佳路径出现故障时,则可以打开个别阻塞的端口,形成备份路径

最短生成树协议

        802.1D --- 由IEEE组织颁布的共有协议 -- 标准的STP协议

        PVST/PVST+(CISCO) --- 思科根据标准的STP研发的私有的生成树协议

        RSTP --- 快速生成树 --- 802.1W

        MSTP --- 多生成树协议 --- 802.1S

802.1D生成树协议

        STP使用的数据包 --- BPDU --- B --- Bridge

        PDU --- 协议数据单元 --- 交换机间沟通互动收发的数据

配置BPDU的工作过程

        所有交换机刚启动,所有接口都激活STP,一开始,并不知道谁是根,则所有设备将判定自己为根网桥,从字节的所有激活了STP的接口发送配置BPDU,则其中将包含本机参数。之后,所有设备都交换参数后,将根据参数数值进行选举,之后,将选举出一个真正的根网桥。之后,只有根网桥将周期的发送配置 BPDU,而其他非根网桥只能在接受到根网桥发送的BPDU后进行转发。(转发时可以修改其中的参数。) --- 发送周期为2S,MAX AGE --- 20S。

BPDU的数据包

        协议版本ID ---- 标准的802.1D生成树协议 --- 0

                                802.1W(RSTP) ---- 2

                                802.1S(MSTP) ---- 3

        标记 --- 8位 --- 在802.1D当中,只应用了最高位(TCA --- 拓扑变更确认标记)和最低位(TC --- 拓扑变更标记),中间6位为保留。

        网桥ID --- BID --- 网桥指交换机,因为最终需要整个交换网络生成一个树形拓扑,所以,需要对每一个交换设备进行身份标识,则使用BID来完成区分标定。 ---- (一个交换网络生成一棵树是802.1D的做法)

        根网桥ID --- RID --- 为根网桥的BID。

                8个字节 --- 优先级(2个字节) + MAC地址(6个字节)

                如果一台交换机存在多个MAC地址时,则将选择所有MAC地址中数值最小作为桥ID中的MAC地址

                根路径开销 --- RPC --- 表示的是发送BPDU的交换设备到达根网桥的开销大小。

        接口ID --- PID --- 发送该BPDU接口的身份标识

                2个字节 --- 优先级(4位) + 接口的标识(12位)

注意:

        以上四个参数都将参与STP生成树的结构选举

        消息寿命 --- 它存在一个最大跳数(MAX-HOP),这个值默认位20,即如果一个BPDU他的消息寿命超过20时,则接受的设备将不再处理该BPD

TCN BPDU

        TCN BPDU --- 只包含配置BPDU中前三个参数

        TCN BPDU --- 本地交换链路故障后,STP将重新收敛,为了加快刷新交互机的MAC地址表,将向本地所有STP接口发送那个TCN BPDU,邻居交换机收到TCN BPDU后将回复 一个TCA位置1的配置BPDU,用于可靠性传出,之后将TCN BPDU逐级转发到根网桥处,由根网桥下发TC标记位置1的配置BPDU,逐级下发给所有的交换机,所有交换机在收到后将临时的将300S的MAC地址老化时间改为15S

根网桥 --- RB

根端口 --- RP

指定端口 --- DP

非指定端口 --- NDP

1,选举根网桥 --- 802.1D当中,一个交换网络有且仅有一台根网桥

        选举方法 --- 比较配置BPDU中的BID

                8个字节 --- 优先级(2个字节) + MAC地址(6个字节)

                先比较优先级,优先级越小越优 ---- 0 - 65535,实际取值范围为0 - 61440,默认取值为32768。

                这个优先级,实际只使用了前4位。后面12位被称为扩展系统ID。因为只使用了四位,每一位代表4096。在修改优先级时,也必须按照4096的倍数来进行修改。

                如果优先级相同,则将比较MAC地址,取MAC地址数值最小的当根网桥

2,选举根端口 --- 每一台非根网桥上,有且仅有一个,离根网桥最近的接口,用来接受来自根网桥发送的配置BPDU,不能被阻塞。

注意: 

        华为设备支持以上三种RPC的评判标准,默认选择的是802.1t中定义的标准。

[Huawei]stp pathcost-standard ? --- 修改接口开销值遵循的标准 dot1d-1998 IEEE 802.1D-1998 dot1t IEEE 802.1T legacy Legacy [Huawei-GigabitEthernet0/0/1]stp cost ? --- 自定义接口开销值 INTEGER<1-200000000> Port path cost

1,比较入向的配置BPDU的开销值,选择最小的接口作为根端口

2,如果存在多个接口入向开销相同时,则将会对比对端设备的BID,选择BID小的设备所对应的接口作为根端口

3,如果存在对端设备的BID也相同的情况时,则将比较对端的PID,PID小的端口所对应的端口为根端口

        2个字节 --- 优先级(4位) + 接口的标识(12位)

                优先级每一位代表16,则其取值范围 0 - 240,默认取值为128。所以,在修改优先级的时候,必须按照16的倍数来进行修改。优先级越小越优

                优先级相同,则比较接口编号,接口编号也是越小越优。

4,如果对端的PID也相同,则将比较本地的PID,取本地PID小的作为根端口

3,选举指定端口 --- 在每条链路上有且仅有一个端口作为指定端口,用于转发根网桥发送的配置BPDU,不能被阻塞

        首先,根网桥所有的端口都是指定端口

        其次,所有存在根端口的链路,则其对端端口必然指定接口

                1,比较端口发出根网桥的BPDU的RPC值

                2,比较本地的BID值,BID值小的所对应的端口为指定端口。

                3,当本地BID也相同时,则将比较本地PID,取本地PID小的作为指定端口。

                4,如果本地PID也相同,则将直接堵塞该接口

4,非指定端口 --- 剩余没有角色的端口均为非指定端口,则需要进行逻辑堵塞。

STP接口状态

        禁用 --- 1,接口关闭情况下;2,接口禁用生成树协议

        阻塞 --- 生成树协议激活接口后进入的第一个状态。该状态下,接口只能侦听BPDU不能转发BPDU和业务帧,也不能学习MAC地址

        一开始所有接口都进入阻塞状态,则都不发送配置BPDU,这样,所有接口都侦听不到BPDU,则20S老化时间后将进入下一个阶段。

        侦听 --- STP角色选举阶段,这个状态下可以收发BPDU,但是不能转发业务数据,也不能学习MAC地址

                这个状态下不允许转发业务数据,主要是因为为了防止在角色没有完全选出来时,可能出现临时环路,导致业务流量入环。

                侦听状态需要停留一个转发延迟时间,默认为15S,这个时间就是用来选举的时间。即使,角色选举提前结束,也需要等到时间到达再进入下一个状态。

                角色选举完成后,不是所有的接口都进入下一个学习状态,而是根端口指定端口可以继续进行,非指定端口则将退回到阻塞状态。

        学习 --- 该状态需要停留15S,只学习业务数据帧中的MAC地址,但是不进行转发

                其目的在于减少在MAC地址没有记录时未知单播泛洪操作

        转发 --- 可以正常的接受发送BPDU及业务数据

802.1D收敛时间

        收敛时间 --- 50S

        结构突变 ---

                        1,根网桥故障:50S

                        2,直连链路故障:30S

                        3,非直连发生故障:50S

802.1D生成树协议的缺陷:

        1,收敛速度慢

        2,链路利用率低

PVST 基于VLAN的生成树协议

        PVST --- 基于VLAN的生成树协议 --- 一个VLAN一棵树 --- PVST的问题是如果交换网络中存在大量VLAN时,则需要大量树,每棵树都需要通过配置BPDU来来维护树形结构,则造成资源占用过大

STP的配置

[sw1]stp mode ? --- 修改STP选择的协议版本 --- 华为设备默认选择的是MSTP协议 mstp Multiple Spanning Tree Protocol (MSTP) mode rstp Rapid Spanning Tree Protocol (RSTP) mode stp Spanning Tree Protocol (STP) mode [sw1]stp mode stp  
[sw1]stp enable --- 华为设备默认激活了STP,所以,这一步可以不用写
[sw6]display stp --- 查看STP信息
[sw3]display stp brief --- 查看STP接口的角色和状态信息
[sw5]stp priority 28672 --- 修改优先级的命令,必须按照4096的倍数来修改
注意:
        STP根网桥的选举是抢占模式的
[sw6-GigabitEthernet0/0/1]stp port priority ? --- 修改接口优先级的命令,必须按照16的倍数来进行修改 INTEGER<0-240> Port priority, in steps of 16 
[sw1]stp root primary --- 将一台交换机设置成为根网桥 ---- 实质上是将该设备的BID中的优先级修改为0。 [sw2]stp root secondary --- 将一台交换机设置成为备份根网桥 ---- 实质上是将该设备的BID中的优先级修改为4096。