Toc
  1. 前言
  2. 生成树协议概述
    1. 分类:
    2. 技术背景:
    3. STP概述
  • STP工作原理:
    1. STP角色选举(四要素):
    2. STP计算(工作)流程:
      1. 一、选举根桥:
      2. 二、每台非根桥交换机上选举一个根端口(RP Root Port):
      3. 三、在每段链路选举一个指定端口(DP):
      4. 四、选举阻塞端口
  • 手工指定根桥
  • 端口状态转换
  • 常用配置:
  • STP协议的报文–BPDU
    1. 配置BPDU:
    2. TCN BPDU(拓扑改变通知BPDU):
  • 拓扑变化分析:
    1. 拓扑发生变化,交换机的处理过程:
  • END
  • Toc
    0 results found
    Dark
    网络工程-HCIA课程(六)STP协议

    前言

    以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路。但是使用冗余链路会在交换网络上产生环路,引发广播风暴以及MAC地址表不稳定等故障现象,从而导致用户通信质量较差,甚至通信中断。为解决交换网络中的环路问题,提出了生成树协议STP(Spanning Tree Protocol)。

    运行STP协议的设备通过彼此交互信息发现网络中的环路,并有选择的对某个接口进行阻塞,最终将环形网络结构修剪成无环路的树形网络结构,从而防止报文在环形网络中不断循环,避免设备由于重复接收相同的报文造成处理能力下降。

    RSTP(Rapid Spanning Tree Protocol)协议基于STP协议,对原有的STP协议进行了更加细致的修改和补充,实现了网络拓扑快速收敛。

    常见误区:

    • 二层交换机只有一个mac地址,根桥id的mac即为交换机中的唯一mac地址
    • RP,DP端口选举遵循STP角色选举四要素规则
    • RP,DP端口选举由于在同交换机网络中,只有一个根桥交换机,即四要素中第一步的根桥ID一致,一般从第二步开始计算
    • 一般BPDU报文只在根桥交换机发出,RP是接收BPDU报文接口,DP是发送/转发送BPDU报文接口




    生成树协议概述



    分类:

    • STP 慢生成树协议(为了理解原理,本文主要讲解)
    • RSTP 快生成树协议
    • MSTP 多实例生成树协议(华为交换机默认开启协议


    技术背景:

    环路产生原因:

    • 由于二层设计要求的冗余性,进一步带来了环路

    环路影响:

    1. 引起广播风暴:可能会造成设备瘫痪
    2. MAC地址震荡:可能造成设备不通
    3. 主机收到重复数据帧

    解决核心:

    • 通过STP协议逻辑上阻塞掉一条链路,打破环路,该链路成为备份链路,当主链路产生故障,备份链路进入活跃状态,转发数据。


    STP概述

    • STP是一个用于局域网中消除环路的协议。
    • 运行该协议的设备通过彼此交互信息而发现网络中的环路,并对某些接口进行阻塞以消除环路。
    • STP在网络中运行后会持续监控网络的状态,当网络出现拓扑变更时,STP能够感知并且进行自动响应,从而使得网络状态适应新的拓扑结构,保证网络可靠性。
    • 由于局域网规模的不断增长,生成树协议已经成为了当前最重要的局域网协议之一。




    STP工作原理:

    本文为了讲解,主要使用STP(慢生成树协议)

    [SW1]stp mode  stp


    STP角色选举(四要素):

    1. 桥ID:由优先级+MAC地址组成
      //优先级默认32768,可以调整为4096的整数倍
      [SW3]stp priority 4096


    1. 根路径开销(RPC root path cost):设备去往根桥交换机的最近开销
      默认情况下:
      1Gbps端口 = 20000(开销)
      100Mbps端口= 200000(开销)


    1. (转)发送者桥ID:发送BPDU的交换机的桥ID
      由优先级+MAC地址组成


    1. 端口ID:端口优先级+端口编号,数值越小越好,优先级默认128
      //修改端口优先级,可以修改为16的整数倍
      [Huawei-GigabitEthernet0/0/2]stp port priority 16


    STP计算(工作)流程:

    以以下网络拓扑图为例讲解:



    一、选举根桥:

    根桥:是整个交换机网络的核心,所有的报文(BPDU)都是由根桥发送,根桥是唯一的

    • 优先级+MAC地址组成
    • 先比较各台设备的桥ID优先级数值越小越优先(默认都为32768),如果优先级相同,则选择MAC地址小的设备
    //查看stp信息
    [SW3]display stp

    如需修改优先级:

    //修改优先级为8192
    [SW2]stp priority 8192


    二、每台非根桥交换机上选举一个根端口(RP Root Port):

    RP:离根桥“最近”的端口,接收根桥发送的报文(BPDU)

    • 根据四要素法则选举:
      1. 先比较根桥ID(由于在同交换机网络中,只有一个根桥交换机,即根桥ID一致)
      2. 比较去往根桥最近开销,开销数值越小越优先(第二步即可选举出RP端口)
    //查看stp端口状态
    [SW2]display stp brief

    如需修改接口开销:

    //修改接口开销
    [SW2-GigabitEthernet0/0/2]stp cost 50000


    三、在每段链路选举一个指定端口(DP):

    DP:发送BPDU报文的接口,也是一段链路最优的端口(每段链路即两个端口连接成的链路都有一个DP端口)

    • 根据四要素法则选举:
      1. 先比较根桥ID(由于在同交换机网络中,只有一个根桥交换机,即根桥ID一致)
      2. 比较去往根桥最近开销,开销数值越小越优先
      3. 比较(转)发送者桥ID:先比较各台设备的桥ID优先级(数值越小越优先),如果优先级相同,则选择MAC地址小(第三步即可选举出DP端口)


    四、选举阻塞端口

    最后没有任何角色的端口就是阻塞端口,该链路就为阻塞链路





    手工指定根桥

    //手工指定某台设备为主根桥:
    [SW6]stp root primary


    //手工指定备份根桥:
    [SW8]stp root secondary




    端口状态转换

    下图仅限参考:



    1. Disabled:未启用状态,华为中不存在
    2. Blocking:阻塞状态,所有的交换机一开机在此状态,在此状态会进行根桥的选举,阻塞端口最终会回到该状态
    3. Listening:监听状态,在该状态选举RP、DR、AP阻塞端口,如果选举为RP、DR端口,则进入下一个状态
    4. Learning:学习状态,在此状态会进行MA地址的学习,构建MAC
    5. Forwarding:转发状态,最后DR、RP停留在此状态,只有该状态可以转发数据

    forward delay :转发延时,15S:用于防止临时环路
    从Listening 到Learning 需要经历15S,从Learning到Forwarding 需要经历15S





    常用配置:

    <Huawei>dis stp     //查看STP的相关信息,可以看到根桥

    [SW1]stp priority 4096 //修改根桥优先级

    [SW1]stp root primary //手工设置为主根桥

    [SW3]stp root secondary //手工设置为备份根桥

    [SW1-GigabitEthernet0/0/2]stp cost 40001 //修改接口开销

    [SW1-GigabitEthernet0/0/1]stp port priority 16 //修改端口优先级

    [SW1]stp mode stp //修改工作模式为STP

    [SW3]dis stp brief //查看端口角色




    STP协议的报文–BPDU

    BPDU分为两种类型:

    • 配置BPDU(Configuration BPDU)
    • TCN BPDU(Topology Change Notification BPDU)


    配置BPDU:

    用于STP计算,包括用于选举的一些列参数(根桥ID,根路径开销RPC、桥ID、端口ID

    • Message Age:交换机实际收到bpdu报文的时间,默认情况下,每经过一台设备,Message Age +1
    • Max Age:BPDU的老化时间,为20S,如果交换机收到的BPDU,其中Message Age实际收到的实际大于20S,则交换机丢弃该配置BPDU


    TCN BPDU(拓扑改变通知BPDU):

    只有拓扑改变时才会触发,用于通知拓扑发生变化





    拓扑变化分析:

    1. 根桥故障:
    • 根桥产生故障,无法发送BPDU,非根桥SWB/C等待20S的BPDU老化时间,如果超过20S还没有收到根桥发送的报文信息,则认为自己是根桥,发送BPDU报文。

    • 通过BPDU选举出新的根桥(SWB),SWC的AP端口变为RP端口,从Blocking- listening – learning – forwarding 需要经过2个转发延时,总共30S。

    • 最终,整个网络从发生故障,到故障解决,需要50S时间



    1. 直连故障:
    • SWB的RP端口产生故障,SWB能够直观的感受,此时,AP端口作为备份,切换成RP端口,端口状态从Blocking- listening – learning – forwarding 需要经过2个转发延时,总共30S。

    • 最终,整个网络从发生故障,到故障解决,需要30S时间,这个时间叫做收敛时间。



    1. 非直连故障:
    • SWB 连接根桥的线路产生故障,无法接收BPDU,等待20S老化时间收不到,则SWB认为自己是根桥,发送自己的BPDU

    • SWC的AP端口收到SWB的BPDU,也收到根桥的BPDU,通过对比,认为根桥的更优,所以AP端口变为DP端口,端口状态从Blocking- listening – learning – forwarding 需要经过2个转发延时,总共30S。

    • 最终,整个网络从发生故障,到故障解决,需要50S时间,这个时间叫做收敛时间。



    拓扑发生变化,交换机的处理过程:



    1. SW3的g0/0/6接口产生故障,感知拓扑发生变化,朝着DP端口发送拓扑改变通知BPDU(TCN BPDU)


    1. SW2收到SW3的通知,SW2首先回复SW3 TAC置位为1的配置BPDU ,同时,将该拓扑改变通知BPDU 朝着根桥发送


    1. 重复第二步,直到根桥为止。


    1. 当根桥交换机SW1收到拓扑改变通知BPDU,回复TCA置位为1 的配置BPDU用于确认已经收到通知,同时泛洪TC置位为1的配置BPDU,泛洪35S。


    1. 下游交换机收到TC置位为1的配置BPDU,将MAC地址老化时间从300S刷新为15S,并继续往自己的下游传递TC置位为1的BPDU。




    END

    本文作者:Dark
    版权声明:本文首发于Dark的博客,转载请注明出处!