企业网三层架构
线路冗余—二层网络桥接环路
因为路由器的路由表是由相对完善的计算所得,且存在防环规则;故路由器物理链路上实施备份时,一般不会出现环路;但交换转发数据依赖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。