常见的单点故障
二层
解决方案:链路聚合,STP生成树协议
新的问题产生:环路产生---产生了广播风暴,导致资源震荡
MAC地址表震荡
三层
解决方案:VRRP协议
---------------------------------------------------------------------------------------------------------------------------------
STP生成树协议
作用:物理线路的备份
逻辑阻塞端口,实现逻辑上无环
STP版本 :STP 802.1D 生成树协议
RSTP 802.1W 快速生成树协议
MSTP 802.1S 多实例生成树协议
STP算法:
BPDU的核心参数:
ROOT ID:用于标识当前根桥的桥iD。
RPC:用于描述根路径开销。
sender BID:BPDU发送者的桥ID。
sender PID:BPDU发送者的端口ID。
1.确定树根--------确定根网桥
------对比桥ID ID=优先级+MAC
2字节 6字节
默认优先级32768 ,步长4096
选举规则:优先级高的(数值小的),优选为根网桥
优先级相等的,对比MAC地址小的为根网桥
2.确定树干----------在非根网桥上确定根端口
选举规则:到达根网桥的开销小的接口作为根端口
开销一样,就比较与自己直连的桥ID小的接口为根端口
对端桥ID一样,就对比端口ID
端口号=优先级+端口号
1字节 1字节
默认端口优先级128
3.确定树叶----------确定指定端口
规则:1.每个物理段上都有一个指定端口(转发数据)
2.根网桥上的所有端口都是指定端口
选举规则:1.到达根网桥开销小的接口为指定端口
2.开销一样的话就对比自己所属交换机的桥ID(选小的)
3.对端桥ID相等就选端口ID
BPDU报文 :配置BPDU
拓扑变更通告BPDU --tu-BPDU
报文结构: 根网桥 桥ID 开销值 端口ID 版本 周期,老化时间
计时器:hello 2s 两秒发一个hello报文
MAX AGE 20s BPDU的最大年龄 (20s没收到BPDU)
FORWARD DELAY 15s 转发延迟 (拓扑变更后,会重新进行根网桥,根端口的选举15s)
(形成MAC地址表需要15s)
Message BPDU当前年龄
[sw1]dis stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :32768.4c1f-cc59-2cf5 //描述自己的桥ID
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20 //描述当前配置参数
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20 //描述当前运行的参数
CIST Root/ERPC :32768.4c1f-cc54-58eb / 20000 //描述根桥的桥ID
CIST RegRoot/IRPC :32768.4c1f-cc59-2cf5 / 0 //在MSTP才会用到,stp和rstp用于描述自己的桥ID
CIST RootPortId :128.1 //端口ID=优先级+端口号----[Port1(GigabitEthernet0/0/1)][FORWARDING]----Port Protocol :Enabled //接口开启的stpPort Role :Root Port //当前接口角色为根端口Port Priority :128 //接口优先级128Port Cost(Dot1T ) :Config=auto / Active=20000 //描述当前接口的costDesignated Bridge/Port :32768.4c1f-cc54-58eb / 128.1 //指定桥,用于描述当前链路上指定端口所在的桥ID Port STP Mode :STP //运行模式为stp
STP缺点:延迟大,至少30s-50s+
--------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------
RSTP 快速生成树
STP不足:
1.初始化----收敛速度慢---30s
2.根端口和阻塞端口在一个设备上,根端口出现问题,阻塞端口开始转发数据(需要30s:侦听+学习)
3.根端口和阻塞端口不在一个设备上,根端口出现问题,阻塞端口需要50s(BPDU老化时间+侦听+学习)
4.终端设备在接入的时候,STP重新计算,因为终端设备不会产生环路,所有终端设备在RSTP不需参加计算
5.STP拓扑变更机制问题:出现问题的设备向上游设备发送TCN消息,上游设备收到后返回一个TCA消息,然后复制一份TCN消息向上游发送,直到根网桥收到TCN消息,从根网桥向全网发送TC消息,从而网络里面的其他设备收到TC消息之后,开始清除错误的MAC信息(把MAC地址表老化时间变为15s,原来的是300s)
6.端口状态分的太细:
disable:禁用状态,没有启用STP协议的端口或者人为关闭的端口处于禁用状态。
listending :侦听状态,可以发送BPDD接收BDPD 不学习MAC地址不转发数据
Learning:学习状态:可以发送BPDU接受BPDU学习MAC地址不转发数据
forwarding:转发状态,可以发送BPDU接收BDPU学习MAC地址转发数据
blocking:阻塞状态,不可以发送BDPU可以接受BPDU不学习MAC地址不转发数据。
7.端口角色:根端口,指定端口
RSTP针对STP不足点进行改进
1.使用发起请求/确认回复机制 P/A机制
(P/A机制就是实现指定端口快速进入转发状态)
我们以下图为例,介绍RSTP协议中的P/A机制。
RSTP协议中的P/A机制工作如下:1> S1、S2、S3的网桥优先级如上图所示。2> S1通过端口E1发送Proposal置位的RST BPDU消息给S2。3> S2收到该消息后,通过比较BPDU,判断端口E2为根端口。启用同步机制阻塞指定端口E1和E3以避免产生环路。然后将根端口设置为转发状态,并向S1发送Agreement消息。4> S1收到Agreement消息后,指定端口E1马上进入转发状态。5> S2的E1、E3端口是指定端口,并且不是转发状态。S2通过指定端口E1和E3发送Proposal报文。6> S3收到S2发送的Proposal报文后,判断E1为根端口,启动同步过程,由于S3下游均为边缘端口,所以已经实现了同步,因此S3直接向S2回复Agreement消息。7> S2收到S3发送的Agreement消息后,端口E1马上进入转发状态。8> S4收到S2发送的Proposal报文后,判断E1为根端口,启动同步过程,由于S4下游均为边缘端口,所以已经实现了同步,因此S4直接向S2回复Agreement消息。9> S2收到S4发送的Agreement消息后,端口E3马上进入转发状态。P/A过程结束
2.根端口快速切换 预备端口
(RP和AP在同一个设备,AP快速替代RP)
(在RSTP中可以直接转为RP,立即进入转发状态,不需要等30s)
3.次等BPDU处理机制 结合P/A 备份端口(AP快速备份DP)
4.针对终端接入的时候,不需要进行STP计算,可以设置边缘端口
当把交换机的一个接口设置为EP的时候,交换机一旦开机,STP进程在接口上运行,此时发现接口为EP,则会直接进入到转发状态,而无需等待30S时间。
int g0/0/0
stp edged-port enable
5.允许RSTP的设备拓扑发生变化后,直接向网络其他设备发送TC变更信息,从而快速收敛
—旦检测到拓扑发生变化,将进行如下处理:
为本交换设备的所有非边缘指定端口启动一个TC While Timer,该计时器值是Hello Time的两倍。
在这个时间内,清空状态发生变化的端口上学习到的MAC地址。同时,由这些端口向外发送RSTBPDU,其中TC置位。一旦TC While Timer超时,则停止发送RST BPDU。
其他交换设备接收到RST BPDU后,清空所有端口学习到MAC地址,除了收到RST BPDU的端口。
然后也为自己所有的非边缘指定端口和根端口启动TC While Timer,重复上述过程。如此,网络中就会产生RST BPDU的泛洪。
6.端口状态:discarding(失效状态):不学习MAC地址,不转发数据,处理BPDU
learning:学习MAC地址,不转发数据,处理BPDU
forwarding:学习MAC地址转发数据,处理BPDU
7.端口角色:根端口
指定端口
预备端口(RP和AP在同一个设备,替代的根端口)
备份端口(RP和AP不在同一个设备上,备份的是指定端口DP)
边缘端口(终端主机接入的端口)
--------------------------------------------------------------------------------------------------------------------------------
1.BPBU保护
接口配置边缘接口,实现终端接入网络的时候减少网络的动荡,但是如果在配置边缘端口的情况下收到了BPDU,这个接口重新参与stp计算,会影响网络,为防止这种情况,系统视图下配置BPDU保护,当边缘端口收到BPDU后,端口直接会DOWN掉
int g0/0/3
[Huawei-GigabitEthernet0/0/3]stp edged-port enable
[Huawei]stp bpdu-protection
将3口设置为边缘端口,开启bpdu保护后,连入新的交换机,3口收到bpdu后直接会将接口down掉
手动开启:int g0/0/3
[Huawei-GigabitEthernet0/0/3]undo shutdown
自动开启:
[Huawei]error-down auto-recovery cause bpdu-protection interval 30
2.根保护
网络里面添加了一个新交换设备,如果这台设备的桥ID优先级比现网里面的根网桥优先级还高,那么会影响现网的稳定,所有在与设备相连的指定端口上配置根保护,防止网络动荡,当接口上配置根保护之后,再次受到桥ID优先级比当前根网桥还高的BPDU,此接口状态会变为discarding状态
interface GigabitEthernet0/0/4
stp root-protection
场景:针对于不是边缘端口的DP接口,如果接入了优先级更高的交换机,那么将会导致二层网络产生震荡,此时可以使用根保护来解决这个问题。
作用:强制一个接口永远为DP端口,不能变为RP端口,防止周围交换机成为根桥。
恢复:当接口不再收到更优的BPDU之后,接口等待两个转发延迟时间(15S),进入转发状态
3.泛洪TC-BPDU保护(拓扑变更通告)
在网络中,连接终端的接口,频繁收到TC-BPDU,会导致网络设备频繁刷新MAC地址表项,影响网络的稳定性,所有在连接终端的接口配置为边缘接口的情况下,设置TC-BPDU发送的阈值,此设备只处理阈值以内的TC-BPDU,比如10S处理2此TC BPDU,其他超出阈值,交换机不会处理,当设备的计时器达到一定时间,会统一处理一次((即执行MAC地址表和ARP表项删除的动作一次)
)
[sw3]stp tc-protection threshold 3
4.环路保护
场景:当网络发生拥塞或者出现单向故障的时候,很有可能导致AP和RP在BPDU超时之后,依然没有收到任何BPBU报文,那么此时可能导致网络中出现单向环路的风险。此时可以在AP或者RP上开启环路保护功能。
作用:当一个接口开启环路保护功能之后,接口在BPDU超时之后,没有收到任何BPDU报文,
将会把接口变为DP处于Disacarding状态。
恢复:直到端口重新收到BPDU,或者单向故障恢复将会进行P/A的协商,之后进入到转发状态。
[sw3]stp loop-protection
---------------------------------------------------------------------------------------------------------------------------------
MSTP单域配置
拓扑
配置MSTP单域多实例步骤
1.配置基本信息如:ip,vlan,链路类型
2.配置MST域
配置域名
创建实例并绑定vlan
激活MST域
[sw1-mst-region]dis this
stp region-configurationregion-name aaainstance 1 vlan 10instance 2 vlan 20active region-configuration
(每个交换机都是如此)
3.可以手动选择实例的主根次根
[sw1]stp instance 1 root primary
[sw1]stp instance 2 root secondary[sw2]stp instance 1 root secondary
[sw2]stp instance 2 root primary
4.也可以手动影响信息发送的路径
如果不手动选择阻塞端口,默认就是这样
[sw3]dis stp brief MSTID Port Role STP State Protection0 GigabitEthernet0/0/1 DESI FORWARDING NONE0 GigabitEthernet0/0/2 DESI FORWARDING NONE0 GigabitEthernet0/0/3 DESI FORWARDING NONE0 GigabitEthernet0/0/4 ROOT FORWARDING NONE0 GigabitEthernet0/0/5 DESI FORWARDING NONE1 GigabitEthernet0/0/1 DESI FORWARDING NONE1 GigabitEthernet0/0/3 ROOT FORWARDING NONE1 GigabitEthernet0/0/4 DESI FORWARDING NONE1 GigabitEthernet0/0/5 ALTE DISCARDING NONE2 GigabitEthernet0/0/2 DESI FORWARDING NONE2 GigabitEthernet0/0/3 ALTE DISCARDING NONE2 GigabitEthernet0/0/4 ALTE DISCARDING NONE2 GigabitEthernet0/0/5 ROOT FORWARDING NONE
[sw3]
[sw4]dis stp brief MSTID Port Role STP State Protection0 GigabitEthernet0/0/1 DESI FORWARDING NONE0 GigabitEthernet0/0/2 DESI FORWARDING NONE0 GigabitEthernet0/0/3 DESI FORWARDING NONE0 GigabitEthernet0/0/4 DESI FORWARDING NONE0 GigabitEthernet0/0/5 DESI FORWARDING NONE1 GigabitEthernet0/0/1 DESI FORWARDING NONE1 GigabitEthernet0/0/3 ROOT FORWARDING NONE1 GigabitEthernet0/0/4 ALTE DISCARDING NONE1 GigabitEthernet0/0/5 ALTE DISCARDING NONE2 GigabitEthernet0/0/2 DESI FORWARDING NONE2 GigabitEthernet0/0/3 ROOT FORWARDING NONE2 GigabitEthernet0/0/4 DESI FORWARDING NONE2 GigabitEthernet0/0/5 ALTE DISCARDING NONE
[sw4]
如果需要选择路径,就需要将不想走的路开销调大
[sw3-GigabitEthernet0/0/5]stp instance 1 cost 200000
这样就会将这个端口阻塞,从别的路转发数据了
多域MSTP配置过程
拓扑:
配置思路:
1.配置IP,将连接pc端的端口链路类型都改成access,交换机直连的都改成trunk,允许所有vlan通过
2.在sw1、2、3创建域aaa1,创建实例1实例2,绑定vlan,激活域,sw1为两个实例的主根
sw1,2,3同配置
[sw1-mst-region]dis this
stp region-configurationregion-name aaa1instance 1 vlan 2instance 2 vlan 3active region-configuration
stp instance 1 root primary
stp instance 2 root primary
3.在sw4、5、6创建域aaa2,创建实例1实例2,绑定vlan,激活域,配置两个实例的主根和次根
sw4,5,6同配置
[sw5-mst-region]dis this
stp region-configurationregion-name aaa2instance 1 vlan 2instance 2 vlan 3active region-configuration
sw5配置
stp instance 1 root primary
stp instance 2 root secondary
sw6配置
stp instance 1 root secondary
stp instance 2 root primary
3.在sw7、8、9创建域aaa3,创建实例1实例2,绑定vlan,激活域,配置两个实例的主根和次根
sw7,8,9同
[sw8-mst-region]dis this
stp region-configurationregion-name aaa3instance 1 vlan 2instance 2 vlan 3active region-configuration
sw8配置
stp instance 1 root secondary
stp instance 2 root primary
sw9配置
stp instance 1 root primary
stp instance 2 root secondary
测试:
pc1 ping pc7
pc2 ping pc8