HCIA-ICT实战基础06-传统生成树

HCIA-ICT实战基础-传统生成树


目录

生成树的技术概述

STP的基本概念及工作原理

STP的基础配置

1 生成树的技术概述

技术背景: 二层交换机加入冗余性的同时也产生了环路

image-20220917195016045

1.1 环路带来的问题:

1.广播风暴

交换机在接收BUM帧后会对邻接的设备进行泛洪, 而其他设备接收到后也会进行同样的操作, 在这样的套娃操作下, 网络资源会被这些无用信息耗尽, 进而导致这片网络的瘫痪.

image-20220917201050952

BUM帧:broadcast广播 ,unknown(未知单播),multicast 组播 ;交换机对于这几种帧会进行泛洪.

2.mac地址漂移

交换机不停的收到来自不停接口的同一个源mac地址, 导致mac地址表对应的接口不停变换.

image-20220917205635144

为了解决因为环路带来的种种问题, 就有了通过阻塞(Block)部分接口来消除环路的生成树协议(STP).

image-20220917205949216

那到这里就有人问了, 这生成树不就是把冗余的网络通路断了吗, 那我一开始就不这样连接了就好了?

实际上, 在交换机(二层网络)上运行的生成树协议是持续监控网络的, 当主线路出现问题时, 生陈述协议会自动选择被阻塞的链路打开, 从而保持网络的健壮性.

1.2 STP概述:

1.STP是用于局域网中消除环路的重要协议

2.运行STP的设备在彼此交换信息的时候发现网络中的环路, 会对由STP决定出的接口进行阻塞

3.STP会持续监控网络状态, 在出现拓扑变更的时候进行自动响应, 保证网络的可靠性.

华为的设备是默认开启生成树协议的

image-20220917211325776

可以看到, 这里默认使用的是MSTP(多实例生成树).

有需要可以手动关闭:

undo stp enable

image-20220917211507422

小试一下:

1)关闭三台交换机的生成树协议

image-20220917212515696

2)让PCping一个未知地址引发arp泛洪

image-20220917212743643

3)抓包来看看

image-20220917212807539

可以看到, 捕获到的arp报文数量是多得异常的, 这仅仅是由一台设备引起的广播风暴.

4)连续在交换机上查看mac表信息:

display mac-address

image-20220917213151812

可以看到通往PC的接口在g0/0/2和g0/0/3之间反复横跳, 这便是mac地址漂移

2 生成树协议的概念及基本工作原理

2.1 BID 桥ID(Bridge ID or BID)

BID由16bit桥优先级(Bridge Priority)与48bit桥MAC地址组成.

每一台运行STP的交换机都有唯一的BID.

在STP网络中, BID小的设备会被选举位根桥(Root Bridge).

BID

根桥是生成树计算的根节点(类似于数据结构中学习的树), 选举的过程为: 先比较桥优先级, 优先级越小越优先成为根节点, 若优先级相等, 则比较桥mac地址, 同样也是越小越优先.

2.2 开销值(Cost)及计算方法

Cost

接口Cost是已经激活了STP的接口所维护的一个开销值, 存在有默认值, 并且开销值与接口速率有关, 并且设备使用不同算法时, 相同速率的接口对应不同的Cost值.

2.3 RPC 根路径开销(Root Path Cost)

RPC

这个很好理解, 就是将每次出接口的cost值相加, 以上图来说, SW1为根桥, SW3到SW1有两条路可以走, 一是直连, cost值为20000(注意, 只计算出接口的cost值); 二是通过SW2, cost值为20000+500=20500, 显然这里选择直连的网络通路是更优的.

2.4 Port ID

port id

运行STP的交换机会使用接口id来标识每个接口, 接口id主要用于在特定场景下来选举制定接口.

接口id由两部分构成, 高4bit是接口优先级, 低12bit是接口编号, 上图使用了十进制来表示接口id.

激活STP的接口会维护一个缺省的接口优先级, 在华为交换机上, 该值为128. 有需要可以自行更改.

2.5 BPDU 网桥协议数据单元(Bridge Protocol Unit)

BPDU作为STP的协议报文, 是STP正常工作的基本要素.

开启STP的交换机之间会交互BPDU报文, 这些BPDU报文携带者一些重要信息(BID, cost, Port ID之类的信息).

BPDU分为两种类型:

配置BPDU (configuration BPDU)

TCN BPDU (Topology Change Notification BPDU)

配置BPDU是STP进行拓扑计算的关键, TCN BPDU只在网络拓扑变更时才会被触发.

配置BPDU的报文格式:

BPDU

图上message age有误, 正确的解读是这个:

message age是用于运行STP协议的网络中非根桥设备收到配置BPDU报文后,报文中的Message Age和Max Age会进行比较,如果Message Age小于等于Max Age,则该非根桥设备继续转发配置BPDU报文,如果Message Age大于Max Age,则该配置BPDU报文将被失效。

配置BPDU报文中的重点信息: 根桥id, 根路径开销, 网桥id, 接口id

因为STP会根据一下顺序选择最优配置BPDU: 1.最小根桥id; 2.最小路径开销; 3.最小网桥id; 4.最小接口id

在选举出根桥之前, 每台交换机都会发送配置BPDU, 并且根据这些BPDU报文选举出根桥, 选举出根桥之后就只有根桥交换机会发送BPDU

image-20220918091110564

2.6 STP的计算过程

2.6.1 选举根桥

STP在交换网络开始工作后, 每个交换机都会向网络中发送配置BPDU进行两两交互, 配置BPDU中包含交换机自己的桥ID.

网络中拥有最小桥ID(BID)的交换机成为根桥.

在一个连续的STP交换网络中只会存在一个根桥.

根桥是可以抢占的, 所以为了确保交换网络的稳定, 需要提前规划STP组网, 并将决定用作根桥的交换机的桥优先值设为0.

2.6.2 选举根接口

选举玩根桥后, 会在每台非根桥上选举一个根接口(RP), 每个交换机上有且只有一个根接口.

当非根桥交换机有多个接口接入网络中时, 根接口是其收到最优配置的BPDU的接口, 判断依据为: 1.最小根桥ID; 2.最小的RPC; 3.最小的网桥ID; 4.最小的接口ID.

是不是有点难理解? 简单来说, 根接口就是每台非根桥交换机上"通往"根桥的接口.

image-20220918092338632

2.6.3 选举指定接口

根桥选举出来之后, 一般情况下根桥的所有接口都是指定接口(DP), 在其他链路上根据:1.最小RPC; 2.最小网桥ID; 3.最小接口ID; 来确保每段链路上都有一个指定接口.

image-20220918095044454

2.6.4 阻塞非指定接口

字面意思, 将非根接口且非指定接口的接口阻塞, 称为阻塞接口(BP)备份接口(AP), 从而消除环路.

image-20220918095233830

2.7 比划比划

2.7.1 比划一

image-20220918095417166

标出根接口、指定接口和阻塞接口:

  1. 选举根桥: 对比BID, 先看优先级, 都是4096, 再看桥mac地址, 选举出SW1为根桥;
  2. 选举根接口(RP): 先看SW2, 选择最小RPC(1000M<2000M), 选择GE0/0/1接口, SW3同理也是GE0/0/1;
  3. 选举指定接口(DP): 根桥SW1的GE0/0/0和GE0/0/1, 然后比较SW2-SW3上的两个接口: RPC相同(2000M=2000M), SW2的网桥ID更小, 所以选举SW2的GE0/0/2;
  4. 阻塞非指定接口(BP/AP): 阻塞SW3的GE0/0/2.

注: 上图的1000M为链路带宽, 根据IEEE802.1t标准cost(开销值)为20000, 通常链路带宽越小开销值越大;

2.7.2 比划二

image-20220918101840912

与上一题不同的是, SW1-SW3之间带宽变为10M, cost更大, 所以SW3的GE0/0/1最终被阻塞

2.7.3 比划三

四段网络通路带宽一致image-20220918102025855

这题要注意的点是, 对于SW4的两个接口选举RP, 由于RCP都相等, 所以看接口对面设备的BID, 显然SW2的BID是更小的, 所以将SW4的GE0/0/1选举位RP; 然后通过RPC确认SW2的GE0/0/2和SW3的GE0/0/2为DP, 最后阻塞SW4的GE0/0/2

image-20220918102540692

2.7.4 比划四

image-20220918102619236

本题要点在于, 选举SW2的RP, 由于RPC都相同, 链路对端设备BID也相同, 所以只能通过比较对端接口ID(PID),

SW2上的GE0/0/1对端是SW1的GE0/0/1, PID会小于SW2上的GE0/0/2对端的SW1的GE0/0/2(注意: 这里比较的是链路对端接口的PID, 即SW1上两个接口的PID), 所以SW2选举GE0/0/1为RP, 最终阻塞GE0/0/2.

2.8 STP的接口状态

image-20220918101734902

image-20220918103254573

2.9 根桥故障

image-20220918103538219

  1. 根桥SW1发送故障, 停止发送BPDU报文;
  2. 优先级次小的SW2等待MAX Age(默认20s)超时, 从而导致收到的BPDU报文失效, 知道上游出现故障;
  3. 非根桥会开始发送配置BPDU报文, 重新选举根桥;
  4. 经过重新选举后SW3被阻塞的A接口恢复正常状态;
  5. 根桥故障会导致50s左右的恢复时间.

3 STP的基础配置命令

  1. 配置生成树的工作模式

    [SW1] stp mode {stp|rstp|mstp}
    

    华为的交换机默认采用mstp

  2. (可选)配置根桥

    [SW1] stp root primary
    

    将当前设备优先级置为0, 之后无法修改本设备优先级

    注: 初始情况下交换机默认优先级为32768

  3. (可选)备份根桥

    [SW1] stp root secondary
    

    将当前设备优先级设为4096, 之后无法修改本设备优先级

  4. (可选) 配置交换机的STP优先级

    [SW1] stp priority <priority>
    
  5. (可选) 配置接口计算路径开销的策略

    [SW1] stp pathcost-standard {dot1d-1998|dot1t|legacy}
    

    设置当前接口路径开销值

    [SW1-GigabitEthernet0/0/1] stp cost <cost>
    
  6. (可选) 配置接口优先级

    [SW1-intf] stp priority priority 
    

    缺省情况下交换机接口优先级取值为128

  7. 启用STP/RSTP/MSTP

    [SW1] stp enable
    
  8. 查看STP信息

    [SW1] display stp
    

    查看接口STP信息

    [SW1] display stp brief
    

没了, 就这样.

posted @ 2022-10-30 10:46  Qurare  阅读(221)  评论(0编辑  收藏  举报