博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
详解生成树协议(STP)
阅读量:6377 次
发布时间:2019-06-23

本文共 2194 字,大约阅读时间需要 7 分钟。

为什么要了解STP生成树协议?

因为交换网络的互联会造成网络环路,从而产生广播风暴。如下图所示:

1、当PC1第一次和PC2通信的时候,PC1会发送ARP请求交给交换机SW1。

2、当SW1收到广播后,根据交换机的工作原理,它会将此广播包从非接收端口广播出去。

3、当SW2和SW3收到广播后,同样也会广播此广播包。

4、这时就如上图所示就形成了一个环路了。

STP(生成树协议):就是把一个环形的结构变成一个树形的结构。STP协议就是用来将物理上存在环路的网络,通过一种算法,在逻辑上阻塞一些端口。

生成树算法及验证

生成树协议运行生成树算法很复杂,但是其过程可以归纳为以下三个步骤。

1)选择根网桥

2)选择根端口

3)选择指定端口

注意:网桥是交换机的前身,由于STP是在网桥基础上开发的,因此现在交换机的网络中仍然沿用这一术语,在此网桥就是指交换机。

选择根网桥:

选择根网桥的依据是网桥ID,网桥ID是由网桥优先级和网桥MAC地址组成的。按照生出树协议的定义,当比较某个STP参数的两个取值时,值小的优先级高。因此,在选择根网桥的时候,比较的方法是看那台交换机的网桥ID小,优先级小的被选为根网桥,在优先级相同的情况下,MAC地址小的为根网桥。

选择根端口:

在STP选择根端口的时候,首先比较交换机端口的根路径成本。根路径成本低的为根端口。当根路劲成本相同的时候,比较链接的交换机的网桥ID。选择网桥ID小的作为根端口,当网桥ID相同的时候,比较端口ID,选择较小的作为根端口。

选择指定端口:

在STP选择指定端口的时候,首先比较同一网段上端口中根路径成本最低的,也就是将到达根网桥最近的端口作为指定端口;当根路径成本相同的时候,比较这个端口所在的交换机的网桥ID,选择一个网桥ID值小的作为指定的端口;当网桥ID相同的时候,比较端口ID值,选择较小的作为指定端口。

如下:根据生成树算法,算出上图中交换机循环链路的生成树,将阻塞一个端口。

STP应用:配置核心交换机的负载均衡

其实在实际生产环境中,交换机的生成树都是交换机自己算好的,根本不需要我们参与,但是有些时候,交换机自己生成的树,不是很理想,对于网络不合理,那么这个时候我们就需要手动的去更改生成树了。

如下图所示:配置两台核心交换机分别为不同vlan的根网桥,使不同的vlan中各接入交换机上选择的根端口不同,因此,不同的vlan的数据传输使用的线路也不同,以达到两条线路之间的负载均衡。

注意:下面我只写修改生产树的相关命令,vlan是已经创建好的。如何创建vlan请参考文章:

配置PVST+的方法很多,在这里使用两种方法配置。(关于PVST+的更多介绍,请参思科官方网站)

方法一:

Switch1(config)#spanning-tree vlan 1-5 priority 4096

Switch1(config)#spanning-tree vlan 6-10 priority 32768

Switch2(config)#spanning-tree vlan 1-5 priority 32768

Switch2(config)#spanning-tree vlan 6-10 priority 4096

方法二:

Switch1(config)#spanning-tree vlan 1-5 root primary

Switch1(config)#spanning-tree vlan 6-10 root secondary

Switch2(config)#spanning-tree vlan 1-5 root secondary

Switch2(config)#spanning-tree vlan 6-10 root primary

注意:上面的vlan 1-5 是vlan1到vlan5,这样简写比较方便。

关于PVST+的常见配置请参看下面的语法。

启用生成树命令:

Switch1(config)#spanning-tree vlan vlan-list

指定根网桥:

Switch1(config)#spanning-tree vlan vlan-list priority Bridge-priority

还可以这样配置

Switch1(config)#spanning-tree vlan vlan-list root { secondary | primary }

如果配置primary 则交换机的优先级变成24576,配置secondary 则是28672.

修改端口成本:

Switch1(config-if)#spanning-tree vlan vlan-list cost cost

配置速端口:

Switch1(config-if)#spanning-tree portfast

查看PVST+配置信息:

Switch#show spanning-tree #查看生成树的配置

Switch#show spanning-tree vlan vlan-id detail #查看某个vlan的生成树配置信息。

本文转自yun5277 51CTO博客,原文链接:http://blog.51cto.com/dengqi/1253320,如需转载请自行联系原作者
你可能感兴趣的文章
HDU 1231:最大连续子序列(DP)
查看>>
[java] java 中Unsafe类学习
查看>>
android 图片特效处理之图片叠加
查看>>
JAVA_SE基础——13.选择结构语句
查看>>
Ambari-stack介绍
查看>>
泛泰A870(高通APQ8064t 600 cpu) Mokee4.4.2(Android4.4) 图赏
查看>>
hdu 2066 一个人的旅行
查看>>
据说有99%的人都会做错的面试题
查看>>
使用history.pushState()和popstate事件实现AJAX的前进、后退功能
查看>>
【JavaScript】一个同步于本地时间的动态时间
查看>>
js---03属性操作
查看>>
HDU 1231——最大连续子序列(DP)
查看>>
P1739 表达式括号匹配
查看>>
3.1.4 模板字符串
查看>>
redis 介绍和常用命令
查看>>
CPU的段寄存器
查看>>
linux 安装nginx
查看>>
Kettle的概念学习系列之Kettle是什么?(一)
查看>>
Qt 3D教程(二)初步显示3D的内容
查看>>
100行代码实现最简单的基于FFMPEG+SDL的视频播放器(SDL1.x)【转】
查看>>