四、STP(生成树协议)

目录

一、经典生成树(STP)

1.1、作用

1.2、重要参数

1.3、BPDU

1.4、STP计算过程

1.5、STP接口状态

二、快速生成树(RTSP)

2.1、端口角色的增补

2.2、端口状态简化

2.3、配置BPDU报文修改

2.4、配置BPDU的处理

2.5、快速收敛

2.6、拓扑变更机制

2.7、BPDU的保护功能

2.8、根保护

2.9、环路保护

2.10、防TC-BPDU攻击

三、MSTP(多实例生成树协议)


一、经典生成树(STP)

1.1、作用

  1. 破环(阻塞)
  2. 切换接口状态(保持冗余)

        主要作用是防止网桥网络中的冗余链路形成环路工作

        生成树协议是IEEE 802.1D中定议的数据链路层协议,用于解决在网络的核心层构建冗余链路里产生的网络环路问题,通过在交换机之间传递网桥协议数据单元(Bridge Protocol Data Unit,简称BPDU),通过采用STA生成树算法选举根桥、根端口和指定端口的方式,最终将网络形成一个树形结构的网络,其中,根端口、指定端口都处于转发状态,其他端口处于禁用状态。如果网络拓扑发生改变,将重新计算生成树拓扑。生成树协议的存在,既解决了核心层网络需要冗余链路的网络健壮性要求,又解决了因为冗余链路形成的物理环路导致“广播风暴”问题。

        接口阻塞:逻辑上停止转发数据帧

1.2、重要参数

        桥ID(BID,交换机ID)=优先级(默认32768且必须为4096的倍数)+mac(802.1D标准),如4096.1b43-ab32-cb32

        桥ID最小为根网桥(优先级相同,比mac)

        根网桥的BID叫根ID(Root ID)

        STP的开销(与ospf计算方法不同,可手动设置)

        根路径开销(RPC):从某设备到达根桥的累加开销(只算一边)

        端口ID(PID):优先级(0~240,默认128且必须为16的倍数)+接口编号,如128.11

1.3、BPDU

        桥协议数据单元(BPDU,bridge protocol data unit),交换机间为了协商如何破环的报文。        

  1. 配置BPDU:协商出谁是根,哪些接口阻塞或转发(破环),周期2s
  2. TCN BPDU:拓扑变化通告BPDU,链路变化后打开哪些阻塞端口(保持冗余)

        8482:配置BPDU中包含的主要内容,每一台交换机都需要发送并互相比较。

  1. 8字节RID(我认为的根网桥id)
  2. 4字节RPC(我到达根网桥的开销)
  3. 8字节BID(BPDU发送桥的桥ID)
  4. 2字节PID(BPDU发送桥的接口ID)

        配置BPDU:以自身为根的bpdu和以实际根为根的bpdu。        

        STP按照如下顺序选择最优的配置BPDU:

  1. 最小的根桥ID
  2. 最小的RPC
  3. 最小的网桥ID
  4. 最小的接口ID

       在这四条原则中(每条原则都对应配置BPDU中的相应字段),第一条原则主要用于在网络中
选举根桥,后面的原则主要用于选举根接口及指定接口

1.4、STP计算过程

        1、选举根桥

        按照以上原则通过两两对比(输的一方就把配置BPDU中的RID改为赢的一方的RID)后找到最优的配置BPDU。

        2、选举根端口(RP接受到最优BPDU的端口有且只有一个

        选举根网桥后,在每台非根桥上选举一个根端口(接受到最优BPDU的端口有且只有一个,找到一条根端口距离根桥最优的路径

        3、选举指定端口(DP,发BPDU的端口,互发时BPDU优的端口)

        根桥的所有端口都是BP端口

        4、找到阻塞端口(BP,block port,既不是RP也不是BP)

1.5、STP接口状态

状态名称状态描述
禁用(Disable)该接口不能收发BPDU,也不能收发业务数据帧,例如接口为down或物里链路中断
阻塞(Blocking)该接口被STP阻塞。处于阻塞状态的接口不能发送BPDU
但是会持续侦听BPDU,而且不能收发业务数据帧,也不会进行MAC地址学习
侦听(Listening)当接口处于该状态时,表明STP初步认定该接口为根接口或指定接口,但接口依然处于STP计算的过程中,此时接口可以收发BPDU,但是不能收发业务数据帧,也不会进行MAC地址学习,等待15s(做完所有选举,保证网络稳定)
学习(Learning)当接口处于该状态时,会侦听业务数据帧(但是不能转发业务数据帧),并且在收到业务数据帧后进行MAC地址学习,等待15s(学mac,防止过多未知单播帧泛洪)
转发(Forwarding)处于该状态的接口可以正常地收发业务数据帧,也会进行BPDU处理。接口的角色需是根接口或指定接口才能进入转发状态

        其他状态根据网络随时切换为阻塞状态或禁用状态。

        根桥故障

        根桥故障,其他桥收不到根桥BPDU等待20s(物理故障立即选举),非根桥互相发送配置BPDU重新选举根桥,再经过两个15s的等待,根桥故障预计回复时间需要50s左右。

        直连物理链路故障

        无需等待20s,立即重新选举端口,需要30s的等待。

        非直连链路故障

        等待20s,再重新选举端口,需要30s的等待,回复时间需要50s左右。

##使用经典stp作为选举的模式
stp mode stp
##配置交换机的优先级为0,越小越好,必须是4096的倍数。
stp priority 0
##查看接口的stp状态
dis stp ef
##查看stp的参数
dis stp

二、快速生成树(RTSP)

2.1、端口角色的增补

        将阻塞端口扩展为以下两种端口:

        1)替代端口(AP):阻塞

        选根端口时落选的端口,根端口的替代品(学习的是其他网桥发送的bpdu)

        2)备份端口(BP,backup port):下方直连设备是集线器且双路由连接导致的,阻塞

        学习到自己发送的bpdu而阻塞的端口,指定端口的替代品(备份自己的指定端口,学习到自己发送的bpdu)

2.2、端口状态简化

        禁用(Disable)、阻塞(Blocking)、侦听(Listening)简化为丢弃(discarding)状态

        丢弃状态站在用户角度统一理解为不可用。

  1. discarding:不转发流量也不学习mac
  2. learning:不转发流量但学习mac
  3. forwarding:转发流量且学习mac

        一般来说RSTP没有学习状态,只有丢弃状态和转发状态,只有对端设备是stp时为了向下兼容才会出现学习状态。

2.3、配置BPDU报文修改

        报文中除了8482外,加了标记字段(Tag),标记字段中可以标识报文是TCN还是ACK、指明端口角色、端口状态等,尤其是添加了同意和提议两字段。

2.4、配置BPDU的处理

        与STP中其他网桥需等到根网桥的bpdu再转发相比,RSTP其他网桥也可独立发送自己当前认为最优的BPDU。

        超时时间由20s降低为6s

2.5、快速收敛

        1)根端口失效,AP立即成为根端口并立即进入转发状态

        2)指定端口失效,BP立即成为指定端口并立即进入转发状态

        主机没有生成树协议,所以不会发bpdu,所以交换机直连终端的端口需要等待30秒才能进入转发状态

        3)直连终端的端口定义为边缘端口(EP)人工配置(端口视图stp edged-port enable),EP一旦打开不进行选举直接进入转发状态(因为对端是主机肯定不会产生环路,所以不用等待30s),只发bpdu不收,此外EP一旦收到bpdu证明对方是交换机立即丧失边缘端口属性成为普通端口参加选举。

        边缘端口不是角色而是指定端口的一种特性。

        全局视图stp edeged-port default,所有端口默认为边缘端口,端口收到bpdu后变为普通端口参加生成树选举。

        4)提议机制和同意机制(P/A机制,分段收敛

        两个直连交换机刚开机都认为自己是根网桥,双方同时互发提议报文,对比同意之后,两个端口立即分别选举为RP和DP,并进入转发状态,一个BPDU即可完成。

        如果发送给给对方(此时为AP口,不回复BPDU),对方不回复,那就只能按照经典生成树等待30s进入转发状态,成为DP。

        为了避免P/A机制导致环路,在上游端口协商的同时,交换机将下游端口(不包含EP)同步(处于丢弃状态,暂时阻塞),上游协商完,然后下游继续P/A机制修改端口状态。

2.6、拓扑变更机制

        标准:一个非边缘端口迁移到转发状态

为什么要清空MAC地址?

        如根端口失效,替代端口立即变为根端口进入转发状态,此时触发拓扑变更机制,开启计时器,将上个根端口学习到的mac清空,并向对端发TCN,对端交换机收到TC后将除了对应新根端口的端口学到的mac保留外,其余全部清空,以此类推,除了明确端口角色的端口mac保留外,所有交换机端口mac清空。

如果没有mac清空机制会发生什么?         

        如上图,在RP未断之前mac学习情况如图,当RP中断之后,AP立即变为RP进入转发状态,如果没有进行mac清空,此时,计算机A发送至B的报文到达交换机后,交换机会通过1口转发,无法通信。

2.7、BPDU的保护功能

        启动BPDU保护后,边缘端口收到BPDU,端口被error-down,需要手动开启,边缘端口属性不变,上报至网管系统。

        作用:不允许对端接入交换机,不允许收BPDU,保障网络稳定性。

##配置在全局下,哪个口为EP即可启用
stp bpdu-protection
int g0/0/4
    stp edged-port enable


disp stp int g0/0/4

        所有端口默认状态

                所有端口非EP,单独某个端口配置为EP(其他端口还是非EP),再开启BPDU保护

        所有端口默认状态stp edged-port default

              所有端口EP,单独将某个端口配置为非EP(stp edged-port disabled),其他端口是EP,再开启BPDU保护

2.8、根保护

       可以收bpdu,收到更优的BPDU端口会变为丢弃状态,交换机无法接入进来,因此只能收更差的bpdu,确保根桥角色不改变。

        在指定端口配置根保护,启动根保护的指定端口,端口角色只能保持为指定端口。

int g0/0/0
    stp root-protection

2.9、环路保护

        一般出现在光纤(一对收发)上,单纤故障导致的单向环路

        启动环路保护后,收BPDU的端口让收bpdu(端口up)、收不到bpdu(端口discarding) 保持一致       

2.10、防TC-BPDU攻击

        拓扑变化后清空mac,如果有一个攻击者接入后高频发送TC-BPDU(交换机无mac表,未知单播帧通信需泛洪),同时触发P/A机制(同步端口),导致闪断。

        措施:限制单位时间内处理次数(默认1次/2s)

        默认开启

##全局视图,阈值每2秒3次(不配置默认1次)
stp tc-protection threshold 3

三、MSTP(多实例生成树协议)

        多棵生成树

        STP和RSTP不足:

        如上图,流量全部汇聚到根网桥,无法负载分担。

        措施:采用实例(instance)+VLAN分流:将vlan1-10划入到实例1中;将vlan11-20划入到实例2中。且在实例1中将SW1设为根桥,在实例2中将SW2设为根桥

        一个vlan只能划在一个实例,一个实例可以包含多个VLAN

       

##在三个交换机上分别创建vlan
vlan batch 10 to 20

##透传vlan
SW1:
int g0/0/1
    port link-type trunk
    port trunk allow-pass vlan 10 to 20
int g0/0/3
    port link-type trunk
    port trunk allow-pass vlan 10 to 20

SW1:
int g0/0/1
    port link-type trunk
    port trunk allow-pass vlan 10 to 20
int g0/0/2
    port link-type trunk
    port trunk allow-pass vlan 10 to 20

SW3:
int g0/0/2
    port link-type trunk
    port trunk allow-pass vlan 10 to 20
int g0/0/3
    port link-type trunk
    port trunk allow-pass vlan 10 to 20



SW1、SW2、SW3:
##stp域配置(单域)
stp region-configuration
    ##域名hcip
    region-name hcip
    ##实例1中规划vlan10到14
    instance 1 vlan 10 to 14
    ##实例2中规划vlan15到20
    instance 2 vlan 15 to 20
    ##激活域配置(修改完后也需要激活)
    active region-configuration

##配置优先级
SW1:
##实例1优先级为0,即实例1的根桥
stp instance 1 priority 0(或者主根:stp instance 1 primary)
stp instance 2 priority 4096
SW2:
stp instance 1 priority 4096(或者次根:stp instance 1 secondary)
##实例2优先级为0,即实例2的根桥
stp instance 2 priority 0

SW3:
##实例的优先级都为默认32678
disp stp brief查看生成树的概要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网运少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值