首页 > 其他分享 >HCIA-ICT实战基础06-传统生成树

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

时间:2022-10-30 10:56:33浏览次数:49  
标签:BPDU 06 根桥 HCIA 接口 交换机 STP SW1 ICT

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
    

没了, 就这样.

标签:BPDU,06,根桥,HCIA,接口,交换机,STP,SW1,ICT
From: https://www.cnblogs.com/konjac-wjh/p/16840694.html

相关文章

  • HCIA-ICT实战基础12-网络设备安全特性
    HCIA-ICT实战基础-网络设备安全特性目录常见设备安全加固策略网络设备安全加固部署示例本机防攻击配置1常见设备安全加固策略1.1为什么需要网络设备安全网络安全......
  • P4062 [Code+#1]Yazid 的新生舞会
    P4062[Code+#1]Yazid的新生舞会分析这个题目还是很有意思的,我们来一步步分析一下。首先,我们来定一下我们的解题方向。涉及到众数,我们一般是考虑从每一个数字去考虑。......
  • AtCoder Regular Contest 060
    F题有循环节,一看就有KMP,比较难,太晚了,早上起来再补。C-TakandCards\(n\)个整数\(a_1\sima_n\),问有多少种选数方案,使得选出来的数平均值为\(A\)。\(1\len,a_i......
  • Python 多重继承时metaclass conflict问题解决与原理探究
    背景最近有一个需求需要自定义一个多继承abc.ABC与django.contrib.admin.ModelAdmin两个父类的抽象子类,方便不同模块复用大部分代码,同时强制必须实现所有抽象方法,没想按想......
  • 宝塔面板出现“require(): open_basedir restriction in effect. ”的解决方法
    宝塔面板出现“require():open_basedirrestrictionineffect.”的解决方法1、只需要在相应的网站目录,勾选掉防跨站攻击(open_basedir)即可!2、必须重启Php......
  • 1067 - Invalid default value for 'CREATE_TIME'
      1、进入数据库执行:showvariableslike'sql_mode';  2、永久修改,编辑mysql的配配置文件my.cnf在[mysqld]下面添加如下列:sql_mode=ONLY_FULL_GROUP_BY,STRICT......
  • 【JS ES6】use strict 严格模式
    目录​​什么是严格模式​​​​启用严格模式​​​​严格模式中的变化​​由于JavaScript语法不够严谨,一直被人们所诟病,例如在使用一个变量时,可以不使用var关键字来提......
  • P2068 统计和
    水题,线段树板子(单点修改和区间和) #include<bits/stdc++.h>usingnamespacestd;typedefunsignedlonglongull;constintN=1e5+7;ulla[N],tree[N*4];voi......
  • 2022-2023-1 20221306《计算机基础与程序设计》第九周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(2022-2023-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2022-2023-1计算机基础与程序设计第九周作业)......
  • STTH30ST06-Y-ASEMI代理意法超快恢复二极管STTH30ST06-Y
    编辑-ZSTTH30ST06-Y用的TO-247-2L封装,是意法一款汽车用超快恢复高压二极管。STTH30ST06-Y的反向漏电流(IR)为50uA,其工作时耐温度范围为-40~175摄氏度。STTH30ST06-Y的浪涌非......