几句话就能让你明白:生成树协议(STP)

简介:

【STP】

作用:防止广播风暴,阻塞环路,备份线路

原理:通过生成树算法确定阻塞端口


一、STP概述

1)、交换网络环路的产生


073749639.jpg


a)在网络通信的最初,PC1的ARP条目中没有PC2的MAC地址,根据ARP原理,PC1首先会发送一个ARP广播请求(请求PC2的MAC地址)给交换机SW1

b)当SW1收到ARP的广播请求时,根据交换机转发原理,SW1将会将广播帧从除接收端口之外的所有端口转发出去(即该广播会从F0/1和F0/2分别转发给SW2和SW3)

c)SW2收到该广播帧后,同样根据交换机转发原理,将广播帧从F0/2和连接PC2的端口转发,同样,SW3收到广播帧后,将其从F0/2端口转发

d)SW2从F0/2端口收到从SW3发送的广播帧后,将其从F0/2和连接PC2的端口再次转发;同样,SW3收到SW2发送的广播帧后,将其从F0/1端口转发

e)SW1分别从SW2、SW3收到广播帧,然后将从SW2收到的广播帧转发给SW3,而将从SW3收到的广播帧转发给SW2

《总结》:

SW1、SW2和SW3会将广播帧相互转发,这时就形成了一个环路,而交换机之间并不

知道,这将导致广播帧在这个环路中永远循环下去。如“图2”所示,然而在实际

网络中,情况要复杂得多,当广播帧经过交换机时,交换机就经指数的形式生成广

播帧(都在转发广播帧),这种广播帧会越来越多,最终形成广播风暴,导致网络瘫痪。

《解决》

   STP协议就是用来解决这个问题的。STP协议并不是断掉物理环路,而是在逻辑上

断开环路,防止广播风暴的产生。

2)、STP简介

定义:STP(Spanning  Tree  Procotol,生成树协议)就是把一个环形的结构改变成

一个树形的结构

原理:将物理上存在环路的网络,通过一种算法,在逻辑上阻塞一些端口,来生成一个

逻辑上的树形结构



073817446.jpg


二、STP工作原理

1)、生成树算法及验证

1、生成树算法(Spanning  Tree Algorithm,STA)

【三个步骤】

a)选择根网桥(Root  Bridge):选择准基点

b)选择根端口(Root  Ports):在每个非根网桥上选择

c)选择指定端口(Designated  Ports):在每条链路上选择

《名词解释》:

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

a)【选择根网桥】

Ø选择根据是网桥ID,网桥ID是一个八个字节的字段

Ø前两个字节的十进制数称为网桥优先级,后六个字节是网桥的MAC地址


073913643.jpg

Ø比较方法:优先级小的被选择为根网桥;在优先级相同的情况下,MAC地址小的为根网桥

b)【选择根端口】

Ø选择根端口的依据按照顺序依次如下:

到根网桥最低的根路径成本

直连的网桥ID最小:对端网桥ID最小

端口ID最小:对端端口ID最小

Ø根端口存在于非根网桥上,需要在每个非根网桥上选择一个根端口

Ø根路径成本是两个网桥间的路径上所有线路的成本之和,也就是某个网桥到达根网桥的中间所有线路的成本之和

Ø路径成本用来代表一条线路带宽的大小,一条线路的带宽越大,它传输数据的成本就越低


链路带宽(Gb/s)

路径成本

10

100

16

62

45

39

100

19

155

14

622

6

1000

4

10000

2


表:带宽与路径成本的关系

Ø端口ID是一个二字节的STP参数,由一个字节的端口优先级和一个字节的端口编号组成





074051986.jpg

Ø端口编号是catalyst用于列举各个端口的数字标识符。在基于IOS的交换机上,可以支持256个端口,端口编号不是端口号,但是,端口号低的端口,端口编号值也较低

c)【指定端口】

ØSTP进行最后的计算,在每一个网段上选择一个指定端口

Ø选择指定端口的顺序如下:

根路径成本

所在的交换机的网桥ID的值较小:看自己

端口ID的值较小:看对端端口ID值较小


074149297.jpg

2、生成树算法验证

   Switch# show  spanning-tree


074201589.jpg

2)、桥协议数据单元(BPDU

Ø交换机之间通过BPDU(桥协议数据单元,Bridge  Protocol Data  Unit)来交换网桥ID,根路径成本等信息

ØBPDU帧利用一个STP组播地址(0c-80-c2-00-00-00)作为它的一个目的地址,使之能到达相邻的,并处于STP侦听状态的交换机

Ø每隔两秒,便向所有的交换机端口发送一次BPDU报文,以便交换机能交换当前最新的拓扑信息,并讯速识别和检测其中的环路

1、BPDU的两种类型

Ø配置BPDU,用于生成树计算

Ø拓扑变更通告(Topology  Change  Notification,TCN)BPDU,用于通告网络拓扑的变化

2、BPDU报文字段

根网桥ID:由一个二字节优先级和一个六字节网桥MAC地址组成。这个信息组合表

明已经被选定为根网桥的设备标识

根路径成本:说明这个BPDU从根网桥伟输了多远,成本是多少。这个字段的值决定哪些端口将进行转发,哪些端口被阴断

发送网桥ID:这是发送该BPDU的网桥信息,由网桥的优先级和网桥MAC地址组成

端口ID:由一个字节的端口优先级和一个字节的端口编号组成

计时器:计时器用于说明生成树用多长时间完成它的每项功能。这些功能包括“报

文老化时间、最大老化时间、访问时间和转发延迟”

3、STP利用BPDU选择根网桥的过程

Ø根网桥的选择是一个持续、反复进行的过程,它每隔两秒触发一次

Ø时刻会检查BPDU的根网桥ID是否发生了变化,网络中是否有网桥ID更低的交换机加入进来

3)、STP的收敛


1、生成树端口的状态


状态

用途

转发(Forwarding)

收发BPDU,学习MAC地址,转发数据

学习(Learning)

收发BPDU,学习MAC地址

侦听(Listening)

收发BPDU

阻塞(Blocking)

只收BPDU

禁用(Disabled)

强制关闭


表:交换机端口的五种STP状态


2、生成树计时器


【STP利用三种计时方法来确保一个网络正常收敛】

Hello时间:网桥发送配置BDPU报文之间的时间间隔,IEEE 80.21d标准规定的

默认访问时间为两秒

转发延时:一个交换机端口在(侦听)和(学习)状态所花费的时间间隔,默认

值为各15s

最大老化时间:交换机在丢弃BDPU报文之前储它的最大时间,默认值是20s



【端口过渡如下】



074232317.jpg

三、STP的应用

1)、STP的与VLAN的关系

【生成树与VLAN之间的关系有以下几种】

   IEEE的CST(Common  Spanning  Tree,通用生成树)

   Cisco的PVST(Per  VLAN  Spanning Tree,每VLAN生成树)

   Cisco的PVST+(Per  VLAN Spanning  Tree  Plus,增强的每VLAN生成树)

   IEEE的MST(Multiple  Spanning  Tree,多生成树)


074304585.jpg



【PVST的缺点】

Ø为了维护针对每个VLAN而生成的生成树,交换机利用率(如CPU负载)会更高

Ø为了支持各个VLAN的BPDU,需要占用更多的Trunk线路带宽

ØPVST与IEEE的CST不兼容,使得运行PVST的Cisco交换机不能与其他厂商的交换机进行互操作

2)、配置PVST+的意义

1、利用PVST+实现网络的负载均衡

2、配置速端口(Post  Fast)

Ø在端口启用速端口功能后,当端口从down到up状态时,该端口不经过侦听学习状态,节省30秒的转发延迟

Ø然而,该端口仍然运行生成树协议,如果检测到了环路,也能够从转发关态转换到阻塞状态,速端口只能配置在连接终端的接口上,否则就有可能导致短时间的生成树环路

3)、PVST+配置命令

【启用生成树】

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

【指定根网桥】

   Switch(config)# spanning-tree  vlan vlan-list  priority bridge-priority

如:switch(config)#spanning-tree  vlan  5,10 priority  4096


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

          Primary默认优先级:24576

          Secondary默认优先级:28672

【修改端口成本】

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

如  switch(config-if)# spanning-tree  vlan 2  cost  10

【修改端口优先级】

   Switch(config-if)# spanning-tree  vlan vlan-list port-priority  priority

如  switch(config-if)# spanning-tree  vlan 2  port-priority  96

【配置速端口】

   Switch(config-if)#  spanning-tree portfast

配置速 端口使接入终端的接口快速进入转发状态,不参与生成树选择

【配置上行速链路】

   Switch(config)# spanning-tree  uplinkfast

配置上行速链路可以使阻塞端口快速进入转发状态

【查看生成树的配置】

   Switch# show spanning-tree

【查看某个VLAN的生成树说细信息】

   Switch# show spanning-tree  vlan  vlan-id detail



本文转自甘兵 51CTO博客,原文链接:http://blog.51cto.com/ganbing/1214669,如需转载请自行联系原作者
相关文章
|
8月前
|
缓存 网络协议 网络安全
硬核图解!30张图带你搞懂!路由器,集线器,交换机,网桥,光猫有啥区别?
硬核图解!30张图带你搞懂!路由器,集线器,交换机,网桥,光猫有啥区别?
296 0
|
10月前
|
存储 缓存
【数据链路层】三个协议治你的错---差错控制
【数据链路层】三个协议治你的错---差错控制
|
11月前
|
Python
一篇文章让你明白STP生成树协议
一篇文章让你明白STP生成树协议
178 0
一篇文章让你明白STP生成树协议
|
网络协议 算法 Linux
Linux网络原理及编程(8)——第十八节 数据链路层
在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址)
195 0
Linux网络原理及编程(8)——第十八节 数据链路层
|
存储 网络协议 Linux
Linux网络原理及编程(7)——第十七节 网络层
子网内的主机需要和外网进行通信时, 路由器将IP首部中的IP地址进行替换(替换成WAN口IP), 这样逐级替换, 最终数据包中的IP地址成为一个公网IP. 这种技术称为NAT(Network Address Translation,网络地址转换)(上面说到过)。
123 0
Linux网络原理及编程(7)——第十七节 网络层
|
负载均衡 监控 算法
90%的面试官都会问到交换网络里面冗余和破环的STP协议
90%的面试官都会问到交换网络里面冗余和破环的STP协议
185 0
90%的面试官都会问到交换网络里面冗余和破环的STP协议
|
网络协议 安全 网络安全
我画了 42 张图就是为了让你搞懂计算机网络层(四)
前面我们学习了运输层如何为客户端和服务器输送数据的,提供进程端到端的通信。那么下面我们将学习网络层实际上是怎样实现主机到主机的通信服务的。几乎每个端系统都有网络层这一部分。所以,网络层必然是很复杂的。下面我将花费大量篇幅来介绍一下计算机网络层的知识。
我画了 42 张图就是为了让你搞懂计算机网络层(四)
|
存储 域名解析 缓存
自上而下的理解网络(6)——终篇!ARP与Ethernet Ⅱ
在IP协议这一层,是只关注IP地址的,但是再向下,到封装成数据链路层的数据帧时,已经被转换成了源MAC地址和目的MAC地址。你可能会有疑惑,按照我们前面的理解,通过IP地址已经可以唯一的定位到要进行网络通信的两端,为何要多此一举的又使用MAC地址呢?这样做究竟是什么目的又有什么必要性呢?本篇文章就来帮你解惑。
499 0