理论

冗余的重要性

叫做MAC地址表的震荡

为了增加网络的可靠性,有必要引入双链路的备份,但是引入冗余链路以后,网络里面又产生了环路,产生一系列广播风暴的问题,可以使用STP生成树协议来解决这个问题。生成树协议可以在提高可靠性的同时,又能避免环路带来的各种问题,它是怎么办到的?

STP的基本思想就是阻断一些接口,把环路打破,形成一个树的结构
生成树协议通过在交换机之间交换BPDU来实现生成树协议,核心就是大家协商好到底要阻塞哪些端口来打破环路

STP工作原理:

上图中有ABC三个交换机,明显存在环路,我们在三个交换机上都运行STP协议
第一步:选举根桥
在最早的时候,每个交换机都认为自己是根桥,但是在交换了BPDU以后,大家一致选举唯一的交换机作为根桥,那怎么选举呢?PK的是他们的桥ID

桥ID由两个部分组成,前面两个字节桥优先级,默认是32768,优先级是可以通过命令来配置改变的,后面四个字节是这个交换机的MAC地址,MAC地址是固化在交换机上面不可更改的。

上图中SWA的桥ID是4096 AA,SWB的桥ID是32768 BB,SWC的桥ID是32768 CC
显然SWA的桥ID更小,所以SWA成功当选为根桥

第二步:为那些非根桥的交换机选举唯一的一个根端口

在这个例子里SWB和SWC都没有选举为根桥,所以SWB和SWC都需要选举根端口,我们以SWB为例来看它怎么选举根端口:
SWB有两个接口G0/0/1和G0/0/2,那么这两个接口要PK的是根路径代价(开销)

SWB上的G0/0/1,计算根路径开销。我们从根交换机要到达SWB的G0/0/1,它只要走左上这条路就可以,路径开销代价是0
G0/0/2,从根交换机到2号端口要走右边这条路先经过SWC,这时候根路径开销是0,再从SWC的一号端口进,一号端口是2000再到SWB,整个路径开销代价是20000

现在SWB一号路径开销代价是0,二号端口的根路径开销代价是20000,1号路径的开销小,所以G0/0/1成功选举为SWB这个交换机的根端口
同理SWC也会选举它的1号端口作为它的根端口。

第三步:给每一个网段选举一个唯一的指定端口

每一条链路就是一个网段,我们这个例子有三个网段,先来看左边这个网段的两个端口:SWB上的G0/0/1和SWA上的G0/0/1,那个端口的根路径开销越小呢?A交换机的1号端口直接就在根交换机上,当然离根交换机最近,所以选举A交换机的1号口作为左边这个网段的指定端口。
对于下面的网段SWB的2号端口它的根路径开销是20000,SWC的二号端口也是2000,在根路径开销相同的情况下,比较桥ID,swb的桥id比swc小,所以swb的二号端口成功当选为下面这个网段的指定端口

第四步:

G0/0/2会成为预备端口,这样stp工作完成,最后决定阻塞SWC的2号端口,成功将这个环路打破

一个端口从阻塞状态首先会进入listening状态,然后过了15s进入learning状态,再过15s进入转发状态

刚才我们为了打破这个环路,把SWC的2号端口阻塞,但是这个网络某个链路突然断掉,网络不同,那我们备用的SWC的2号端口应该顶上去使用,这个端口会经过20s时间察觉到拓扑变化,需要启用,然后进入listening状态,过15s进入learning,再过15s进入转发状态。一个阻塞端口在需要启用的时候,从阻塞到转发状态要50s。这个时间叫STP收敛时间

50s对于紧急的业务,关键的网络来讲实在是太长了,所以RSTP出现了,RSTP是快速生成树协议,rapid spanning tree protocol,实际上它是在STP里面增加了一些让收敛时间能够变小的措施,然后形成了一个改进版的新的协议。

小结:为了提高网络的可靠性我们经常需要一些冗余的链路,冗余的链路会造成整个网络里面出现环路,出现环路会导致广播风暴等一系列问题,为了避免这些问题,我们用stp来打破环路,stp收敛速度比较慢要50s,所以我们有了改进的rstp来减少收敛时间。


实验

实验1 生成树协议

这个拓扑用了两台交换机实现了双链路的备份,中间的双链路就构成了环路,环路会造成广播风暴的问题,我们运行stp打破环路

实验步骤:

1、配置PC的IP地址

2、查看默认开启的生成树协议。在默认情况下,我们什么也没有配置过,这个时候,交换机已经默认跑了某一个版本的生成树协议,那它跑的是什么版本呢?我们可以用用dis stp查看,这条命令显示的东西非常多,我们先找mode,mode显示swa和swb的stp版本都是mstp,我们知道stp有stp,rstp和mstp三个版本,华为交换机默认启用的生成树协议是mstp。然后我们再看一下time信息,这里显示mstp默认的时间设置,swa和swb一样,hello是2s,maxage是20s,fwdly是15s(forward delay),maxhop是20s。接下来找cist bridge信息,这个信息是桥ID的信息,可以判断出根交换机是A。

3、观察接口状态0/0/2是alte discarding被阻塞,swa是根交换机,swb的1号口是根端口,swb的2号口被阻塞。环路被打破

4、1号端口的编号更小,1号端口当选为swb的根端口

我不想跑smtp想换成stp:

现在SWB设置为了根交换机。(把swb的优先级改了)

收敛时间30~50s

2号口顶上来用了,因为swa的端口被shutdown了。

实验2 快速生成树协议的配置

和实验1一样,主要是体会时间是不是更快


实验演示

实验1 生成树协议

1、配置PC的IP地址、子网掩码

2、查看默认开启的生成树协议

现在交换机默认跑起来,已经察觉到了双链路备份,有环路,马上就跑生成树协议了

在swb上用dis stp查看stp信息

所以A当选为了根交换机

我们可以用dis stp bri

现在SMTP工作的结果是A当选为根交换机两个接口都工作,B的一号口当选为根端口,在工作,二号口处于阻塞状态,环路被打破!

B交换机为什么选择1号口作为根端口,而不选择2号口?
这要看根路径开销,但是这两个口到根交换机距离一样啊,在距离一样的情况下就要看他们的端口号id,他们的端口号id是由他们端口的优先级+端口号码组成的,因为G0/0/1的编号比G0/0/2的编号小一点,所以胜出,所以一号口作为根端口。

4、现在我们的生成树协议是mstp,我想换成stp模式

stp mode stp

[SWB]stp mode stp

[SWA]stp mode stp

现在是A是根交换机,但是我觉得B的性能更好,我希望B为根交换机。我们知道谁当选根交换机是PK他们的优先级+他们的MAC地址的,但是他们的MAC地址是不能换的,所以我们改变优先级让B当选为根交换机

我们知道默认优先级是32768,现在把B的优先级设置为4096

[SWB]stp priority 4096

现在dis stp

5、测试STP收敛时间

用ping,在pc1上去pingPC2

先PC1上ping 192.168.0.137 -t

现在B是根交换机,A是非根交换机,A的0/0/2阻塞,所以ping包走的路线是用上面那根线,现在人为破坏上面这根链路,下面的那条链路就会顶上去

我们在SWA上进入1号口

收敛太慢了,所以我们有了rstp。


MSTP理论

mstp全称多生成树协议,它是通过802.1s来进行定义的

这个拓扑图是个环,肯定要用到生成树协议,华为交换机默认采用的就是MSTP

假设在上面这个图中有四个vlan,SW1为根交换机,SW2为次根交换机(备份根),那么他会阻塞谁?
SW2上的G0/0/2和SW3上的G0/0/6为根端口,很显然SW2上的e0/0/3为指定端口,阻塞SW3上的e0/0/5
那么也就是说在这个拓扑图最终形成了下面这个拓扑:

那么右边那条线路就是浪费的,怎么办呢?用mstp

假设,这四个vlan,我给他划分两个组,比如10,20在一组,30,40在一组。
那么对于【10,20】这个组,我让他生成一棵树


对于【30,40】,也生成一棵树

两个VLAN走左边,两个走右边,达到了负载均衡,不会有空余的线路浪费

这个“组”在MSTP里面叫“实例”通过instance来定义,一个实例一颗生成树,互不影响。

上面拓扑图中交换机上都是trunk链路:

【实验步骤】

1、创建vlan

SW1,SW2,SW3上都使用vlan batch 10 20批量创建vlan

2、端口加入vlan(SW1-3的配置省略)

3、开始配置MSTP

stp mode mstp #这条命令可以不敲,敲更好
[SW1]stp region-configuration   #进入mstp配置模式
[SW1-mst-region]region-name huawei  #配置域名为huawei
[SW1-mst-region]revision-level 1   #设置版本等级为1
[SW1-mst-region]instance 1 vlan 10  #实例1当中,只包含vlan10(将vlan10加入实例1中)
[SW1-mst-region]instance 2 vlan 20  #将vlan20加入实例2中
[SW1-mst-region]active region-configuration #一定要激活(激活配置)
Info: This operation may take a few seconds. Please wait for a moment...done.
[SW1-mst-region]

[SW2]stp region-configuration
[SW2-mst-region]reg    
[SW2-mst-region]region-name huawei
[SW2-mst-region]revis    
[SW2-mst-region]revision-level 1
[SW2-mst-region]instance 1 vlan 10
[SW2-mst-region]instance 2 vlan 20
[SW2-mst-region]active region-configuration
Info: This operation may take a few seconds. Please wait for a moment...done.
[SW2-mst-region]

[SW3]stp region-configuration
[SW3-mst-region]region-name huawei 
[SW3-mst-region]revision-level 1
[SW3-mst-region]instance 1 vlan 10  #映射10
[SW3-mst-region]ins 2 vlan 20
[SW3-mst-region]active region-configuration

4、查看一下stp

dis stp bri

现在要看谁是根的话,我们现在还没有控制根,这个配置肯定是错误的。
配置:
对于实例1来讲,SW1为主根,SW2为备根
对于实例2来讲,SW2为主根,SW1为备根

[SW1]stp instance 1 root primary
[SW1]stp instance 2 root secondary

[SW2]stp instance 1 root secondary
[SW2]stp instance 2 root primary

然后通过SW3,
可以使用dis stp instance 2 bri 查看具体实例阻塞了哪个端口

【路由交换实验】生成树STP(stp,rstp,mstp)相关推荐

  1. CCNP2交换:生成树:STP(802.1D)、PVST、PVST+、RSTP/RPVST、802.1W、MSTP

    文章目录 CCNP2交换:生成树:STP(802.1D).PVST.PVST+.RSTP/RPVST.802.1W.MSTP 一.线路冗余导致的问题: 1.广播风暴 2.MAC地址表翻滚: 3.同一数 ...

  2. (Router)路由交换实验

    (Router)路由交换实验 文章目录 (Router)路由交换实验 实验00 模拟器HCL 实验01 常用设备管理操作 实验03 文件操作与设备调试 任务一 使用FTP上传下载系统文件 任务二 使用 ...

  3. 使用GNS3和Cisco IOU搭建路由交换实验-安装篇

    如何使用GNS3和Cisco IOU搭建路由交换实验-安装篇 GNS3软件的安装 建议大家从官网直接下载最新版本的GNS3,官网连接http://www.gns3.com/ 根据系统类型选择相应的版本 ...

  4. 【路由交换实验】VLAN

    VLAN基础 1.VLAN 为什么要用vlan?用vlan隔离广播域 划分vlan的方法: 端口类型: 交换机的每个端口都有所属的vlan id,叫做PVID,最开始,缺省的情况下,所有端口都是被划分 ...

  5. 学习笔记之七_第2层交换和生成树协议(STP)(CCNA知识考点)

    1.交换机的3种功能.地址学习.转发/过滤决定和避免环路是交换机的3种功能. 2.命令show mac address-table.命令show mac address-table将显示LAN交换机上 ...

  6. HCIE路由交换实验

    一.实验拓扑 一.实验要求 1. 链路聚合 SW1与SW2配置链路聚合,要求使用LACP模式,活动链路为2条,开启抢占时间,抢占时间为20S基于源目MAC地址分担.(2分) 配置: [S1]lacp ...

  7. 【路由交换实验】OSPF

    OSPF实验演示 实验一.单区域OSPF 实验拓扑:  1.四个路由器连接了七个网络 路由器间的网络192.168.12.0,192.168.23.0,192.168.34.0 各个路由器用环回端口模 ...

  8. 计算机网络子网划分路由配置实验报告,完整的子网划分与路由交换实验报告 珍藏版哦...

    洛阳理工学院实验报告 系别 班级 学号 姓名 课程名称 计算机网络 实验日期 实验名称 子网的划分路由器的配置 成绩 实验目的: 1:知道如何配置路由器信息 2:知道如何划分子网信息 实验条件: 电脑 ...

  9. STP/RSTP/MSTP协议简介

    STP/RSTP/MSTP协议简介 STP 一.STP协议 二.为什么要有STP协议? BPDU 一.什么是BPDU? 二.BPDU的功能 三.BPDU的类型 端口 一.端口角色 二.端口状态描述 三 ...

最新文章

  1. Mybatis入门:4(多表查询操作)
  2. Flutter开发之PageView指示器(31)
  3. 小鹏,该兑现PPT了
  4. [No000053]我25岁了,是应该继续挣钱,还是选择自己的爱好?--正好庆祝自己25岁生日...
  5. ThreadLocal应用-使用ThreadLocal做线程缓存变量池
  6. main执行之前与之后
  7. s3c6410裸机程序(1)
  8. APMServ5.2.6 升级php5.2 到 5.3版本及Memcache升级!
  9. VisualBrush
  10. 矩池云安装gdal五种解决方案
  11. jstack查看某个进程堆栈信息
  12. 简单实践GraphEmbedding图嵌入的几种方法
  13. 【Maven】1.使用myecplise配置自己的Maven配置,不使用默认的maven
  14. Ubuntu安装显卡驱动
  15. 单片机常用外设驱动电路
  16. 武汉Web前端开发薪水没有别人高?先弄明白这4点
  17. JIRA带来的管理思路
  18. 华东师范大学2020计算机研究生招生简章,2020华东师范大学计算机考研大纲
  19. 电驴显示没有连接服务器,电驴未连接到服务器
  20. 浙大翁恺pat练习题_PAT|中国大学MOOC-浙江大学翁恺-C语言程序设计习题集(更新中)...

热门文章

  1. Effective C# 第二章:.Net资源管理(翻译)
  2. nyoj117求逆序数 并归排序法
  3. NYOJ 6 喷水装置(一) 贪心算法 之 区间覆盖问题
  4. Android Studio打包程序时出现transformClassesWithDexForRelease错误
  5. 部署Django到云服务器(centos+nginx+mysql+uwsgi+python3)【操作篇(1)】
  6. visual studio code配置项
  7. [BS-28] iOS中分页的几种算法
  8. 转:求多边形的面积 算法几何
  9. 海量数据库解决方案2011030401
  10. R学习_multitaper包解析1:子函数centre,dpss