zoukankan      html  css  js  c++  java
  • STP原理与配置

    STP原理与配置

    1.广播风暴
      环路会引起广播风暴,同时网络中的主机会收到重复数据帧。
    2.STP的作用
      STP通过阻塞端口消除环路,并能够实现链路备份的目的。
    3.STP操作
       1)选择根网桥:所有交换机中,Router-id最小的就是根网桥。
       2)选择根端口:根端口在非根网桥上,是非根网桥上到达根网桥路径最短的那个端口。与根网桥直连的端口为根端口
       3)选择指定端口:根网桥上的所有端口都是指定端口
       4)阻塞端口,非指定端口:未被选举为根端口或指定端口的为阻塞端口
    4.BPDU
       BPDU包含桥ID,路径开销,端口ID等参数。STP选举的过程,都是通过BPDU来选举的
       Message Age:配置BPDU在网络中传播的生存期
       Max Age:配置BPDU在设备中能够保存的最大生存期
       Hello Time:配置BPDU发送的周期
       Forward Delay:端口状态迁移的延时
    5.BPDU的两种类型
       配置BPDU和TCN BPDU
       配置BPDU包含了桥ID,路径开销,和端口ID等参数。在网络拓扑稳定以后,只有根桥主动配置BPDU,其他交换机在收到上游传来的配置BPDU后,才会发送自己的配置BPDU。

       TCN BPDU是指下游交换机感知到拓扑发生变化是向上游发生的拓扑变化通知。

    6.根桥故障:非根桥会在BPDU老化后开始重新选举根网桥,时间是Max Age+2倍Forward Delay=50s左右
    7.直连链路故障:当其中一台交换机检测到直连链路出现物理故障后,会将预备端口转化为根端口
                        这台交换机的预备端口会在30s后恢复到转发状态(2倍的转发延迟时间)
    8.非直连链路故障:交换机的预备端口会在50s后恢复到转发状态
    9.拓扑变化中TCN过程:拓扑变化过程中,根桥通过TCN BPDU报文获知生成树拓扑里发生了故障,根桥生成TC用来通知其他交换机加速老化现有MAC地址表

    10.根桥产生故障后,其他交换机会被选为根桥,当原来的根桥恢复后,网络会发生什么变化?
      网络会重新选举根桥。
    11.STP中根路径开销和本地路径开销的区别?
      路径开销:一台交换机和另一台交换的路径 根路径开销:一台交换机到根交换机的路径
      根路径开销是根据交换机之间的网段来说的,本地路径的开销也叫端口开销是针对本地的物理链路来说的。
      相关的IETF的规定为物理链路10G/s 开销为2 ,物理链路1G/s 开销为4 ,物理链路100M/s 开销为19 ,物理链路10M/s 开销为100

    ==========

    生成树协议和其他协议一样,是随着网络的不断发展而不断更新换代的。最初被广泛应用的是IEEE802.1D-1998 STP(Spanning Tree Protocol,生成树协议),随后以它为基础产生了IEEE 802.1w RSTP(Rapid Spanning Tree Protocol,快速生成树协议)和IEEE 802.1s MSTP(Multiple Spanning Tree Protocol,多生成树协议)

    三种生成树协议特点比较:

    STP:

    1. 形成一棵无环路的树,解决广播风暴并实现冗余备份。
    2. 收敛速度较慢。
    3. 无需区分用户或业务流量, 所有VLAN共享一棵生成树 。

    RSTP:

    1. 形成一棵无环路的树,解决广播风暴并实现冗余备份。
    2. 收敛速度快。
    3. 无需区分用户或业务流量, 所有VLAN共享一棵生成树 。

    MSTP:

    1. 形成多棵无环路的树,解决广播风暴并实现冗余备份。
    2. 收敛速度快。
    3. 多棵生成树在VLAN间实现负载均衡,不同VLAN的流量按照不同的路径转发。

    STP原理

    STP(Spanning Tree Protocol)生成树协议解决了链路冗余中的环路问题。

    STP通过阻塞端口来消除环路,并能够实现链路备份的目的。这种阻塞是逻辑上的阻塞,业务报文不能转发,但是协议报文能够转发。

    STP通过发送BPDU(Bridge Protocol Date Unit)桥协议数据单元来决定要阻塞的端口。

    协商原则

    STP协议是根据4个维度进行选举协商的,设备之间通过发送BPDU报文,经过4个维度的比较,最终会阻塞综合能力最差的端口。

    选举维度(桥ID,累计根路径开销,发送设备BID,发送端口PID)

    工作过程

     

    选举分四步

    1.选举一个根桥(Root Bridge)

    Bridge ID:比较优先级(0~65536,默认32768,值越小,优先级越高)+比较MAC

    2.每个非根交换机选举一个根端口(R:Root port)

    Root port:根据cost(链路开销),开销越小,优先级越高,选举为根端口。开销相同,比较交换机优先级、mac地址等。

    3.每个网段都选举一个指定端口(D:Designated port)

    每条链路选一个指定端口,根交换机每个接口都是D接口。

    4.阻塞非根、非指定端口(A:Alternative Port)

    选举完指定端口,交换机中非根、非指定端口,便是阻塞端口。

    临时环路问题
    为了避免临时环路问题,A端口进入D端口之前需要等待一段时间。A->Listening->Learning->D,默认每个状态都是15秒,总共三十秒。

    端口状态转换

    Disabled:端口被关闭
    Blocking:A端口
    Forwarding:R、D端口
    Listening:可以转发BPDU报文。但不能转发用户流量。
    Learning:可以根据收到的用户流量构建MAC地址表,但不转发用户流量。 

    角色和状态

    经过4个维度的比较,最终会协商出端口的角色和状态,确定报文流量的转发路径。STP角色的定义,如下图所示。

    根桥:就是桥ID最小的设备。 桥ID是由16位的桥优先级与桥MAC地址构成。BID桥优先级占据高16位,其余的低48位是MAC地址。华为交换机默认桥优先级都是32768。所以在不修改桥优先级时,MAC地址最小的设备就是根桥。

    指定端口:就是负责转发BPDU报文的端口。 根桥上的端口都是指定端口。该端口可以正常转发流量。

    根端口:就是 去往根桥路径开销最小的端口。该端口可以正常转发流量。

    阻塞端口:就是禁止转发流量的端口。

    从上面的官方定义,可以看出:STP协商完成后,端口要么被阻塞,要么正常转发报文。其实在STP进行协商的过程中,是有一些中间状态的。

    报文格式

    STP协议报文是通过BPDU报文封装的,目的MAC是 组播MAC:01-80-C2-00-00-00,封装格式是IEEE 802.3。

    目标MAC是组播MAC地址,组播地址只有交换机才会接收Type值是0x03。

    BPDU报文处理流程

    BPDU报文的分类

    配置BPDU报文:根据Flags标记位,分为3类

    • 第一类配置BPDU报文: Flags的TCA和TC位都置为0的配置BPDU报文
    • 第二类配置BPDU报文: Flags的TCA和TC位都置为1的配置BPDU报文
    • 第三类配置BPDU报文:Flags的TCA位置为0,TC位置为1的配置BPDU报文

    TCN BPDU报文:BPDU Type为0x80的BPDU报文,叫做TCN BPDU报文

    BPDU报文的处理流程

    BPDU报文格式

    第一类配置BPDU报文: Flags的TCA和TC位都置为0的配置BPDU报文

    该报文用于STP状态的 协商和维持。具体报文格式如下:

    第二类配置BPDU报文: Flags的TCA和TC位都置为1的配置BPDU报文

    该报文用于通知 下游设备停止发送TCN BPDU报文。具体报文格式如下:

    第二类配置BPDU报文: Flags的TCA位置为0,TC位置为1的配置BPDU报文

    该报文用于通知下游设备删除MAC地址表项。具体报文格式如下:

    TCN BPDU报文: BPDU Type为0x80的BPDU报文,叫做TCN BPDU报文,用于通知上游设备网络拓扑变更。具体报文格式如下:

    配置举例

    配置思路

    采用如下的思路配置STP:

    1. 配置模式是STP模式。
    2. 配置SwitchA为根桥,SwitchB为备份根桥。
    3. SwitchC和SwitchD的GE0/0/3端口去使能STP协议。
    4. SwitchA、SwitchB、SwitchC和SwitchD使能STP协议。

    操作步骤

    配置模式为STP模式。

    <HUAWEI> system-view

    [HUAWEI] sysname SwitchA

    [SwitchA] stp mode stp

    <HUAWEI> system-view

    [HUAWEI] sysname SwitchB

    [SwitchB] stp mode stp

    <HUAWEI> system-view

    [HUAWEI] sysname SwitchC

    [SwitchC] stp mode stp

    <HUAWEI> system-view

    [HUAWEI] sysname SwitchD

    [SwitchD] stp mode stp

    配置SwitchA为根桥,SwitchB为备份根桥。

    [SwitchA] stp root primary //也可以使用命令stp priority 0 配置优先级为0,和stp root primary的作用是一样的。

    [SwitchB] stp root secondary //也可以使用命令stp priority 4096 配置优先级为4096,和stp root secondary的作用是一样的。

    去使能SwitchB和SwitchC设备GE0/0/3端口的STP功能。

    [SwitchC] interface gigabitethernet0/0/3

    [SwitchC-GigabitEthernet0/0/3] stp disable

    [SwitchC-GigabitEthernet0/0/3] quit

    [SwitchD] interface gigabitethernet 0/0/3

    [SwitchD-GigabitEthernet0/0/3] stp disable

    [SwitchD-GigabitEthernet0/0/3] quit

    全局使能STP功能。

    [SwitchA] stp enable

    [SwitchB] stp enable

    [SwitchC] stp enable

    [SwitchD] stp enable

    验证配置结果

    查看STP简要信息,通过STP简要信息可以快速的看出端口的角色和状态。

    ========= End

  • 相关阅读:
    【HEOI2016】序列
    【AHOI2006】基因匹配
    【HAOI2016】放棋子
    【TJOI2017】DNA
    Luogu5110 块速递推
    长链剖分学习笔记
    【Vijos】lxhgww的奇思妙想
    [python 学习] requests 库的使用
    [php代码审计] Window api函数 FindFirstFile 在php中的问题
    [php代码审计] apache 后缀名解析“漏洞”
  • 原文地址:https://www.cnblogs.com/lsgxeva/p/14030884.html
Copyright © 2011-2022 走看看