您的当前位置:首页正文

stp协议

2020-11-12 来源:好走旅游网


Stp协议

STP(Spanning Tree Protocol)是生成树协议的英文缩写,是OSI网络互联模型中的第二层(Date Link Layer)中的协议。 STP是基于什么需要所开发的协议:

一个优秀的网络工程师,冗余的思想是尤为重要的,因此在做某些网络互联的项目时,会使用多个交换机Switch进行保障通信,避免单点故障。可是如果几个 交换机同时作用时,难免会发生一些问题:1,广播风暴。一个PC或者Host Server 发送一个广播broadcast,从而使形成环路的交换机不停的泛洪(由于交换机是二层设备,没有网络层封装帧的TTL数,所以这种广播风暴更为严重), 直到网络堵塞。2,帧的多重复制。由于多台Switch转发数据,可以使目标路由器接收到几个相同的帧,这在三层路由的一些协议中,会出现故障。 3,MAC地址表不稳定。由于交换机中MAC表中,一个端口可对应多个MAC地址,而一个MAC无法对应多个端口。然而在多个Switch同时作用环路 时,难免会造成MAC表学习重复,使MAC地址对应的端口不断被覆盖,造成MAC地址表不稳定。 基于以上问题,开发出来了STP生成树协议,该协议可应用于环路网络,通过一定的算法实现路径冗余,同时将环路网络修剪成无环路的树型网络,从而避免报文在环路网络中的增生和无限循环。 生成树协议STP/RSTP 一. 技术原理:

STP的基本思想就是生成“一棵树”,树的根是一个称为根桥的交换机,根据设置不同,不同的交换机会被选为根桥,但任意时刻只能有一个根桥。由根桥开 始,逐级形成一棵树,根桥定时发送配置报文,非根桥接收配置报文并转发,如果某台交换机能够从两个以上的端口接收到配置报文,则说明从该交换机到根有不止 一条路径,便构成了循环回路,此时交换机根据端口的配置选出一个端口并把其他的端口阻塞,消除循环。当某个端口长时间不能接收到配置报文的时候,交换机认 为端口的配置超时,网络拓扑可能已经改变,此时重新计算网络拓扑,重新生成一棵树。

总之,其目的就是在不影响冗余的情况下,避免交换机环路的出现。

具体的选举步骤为:

1、One root bridge per network(在网络中选一个根桥)

2、One root port per nonroot bridge(在每一个非根桥中选举一个根端口称为RP) 3、One designated port per segment(在每条链路中选举一个指定端口称为DP) 4、Nondesignated ports are unused(剩下的一个端口为BLOCK状态) 选举原则:

1,在所有交换机中Bridge ID越低,越优先。

【先介绍一下Bridge ID,Bridge ID又两部分组成,{Bridge Priority,MAC Adress}。Bridge Priority为桥优先级,默认为32768;MAC Adress就是交换机的MAC地址。注:如果想把指定交换机设为根桥,可把改交换机的Bridge Priority设为更低,一般设为0】

2,选举根端口时,按照以下原则。COST--Port ID,先比较COST值,即该端口到根桥的花费。COST值越低越优先。 【COST值】 带宽 COST 10Gps 2 1Gps 4 100M 19 10M 100

如果COST值相同的话,再比较Port ID,Port 0优先与Port 1。

3,选举DP,规则为COST--Bridge ID。先比较COST,当COST相同时,再比较桥ID,桥ID越小越优先。

4,最后剩下的那个唯一的端口即为BLOCK状态,即不运作,但会接收BPDU报文,监听其他正常使用的交换机是否工作正常,如不正常立即启用。 Spanning-tree transits each port through several different states:

1,收BPDU报文,如20s没有收到回包,即转入下一步骤。------只可收BPDU报文

2,Listening 届时15s 此期间,会进行STP选举------------可以收、发BPDU报文,不转发用户数据

3,Learning 届时15s 此期间会学习MAC地址,为以后减少泛洪流量做准备 4,Forwarding

以上可以看出,STP协议会持续50s,这就是有的PC开机后50s后才可以上网,进行数据传输。为此,由开发了RSTP协议(快速生成树协议),收敛速度可达到1s。 二. 功能介绍:

生成树协议最主要的应用是为了避免局域网中的网络环回,解决成环以太网网络的“广播风暴”问题,从某种意义上说是一种网络保护技术,可以消除由于失误 或者意外带来的循环连接。STP也提供了为网络提供备份连接的可能,可与SDH保护配合构成以太环网的双重保护。新型以太单板支持符合ITU-T 802.1d标准的生成树协议STP及802.1w规定的快速生成树协议RSTP,收敛速度可达到1s。 但是,由于协议机制本身的局限,STP保护速度慢(即使是1s的收敛速度也无法满足电信级的要求),如果在城域网内部运用STP技术,用户网络的动荡 会引起运营商网络的动荡。目前在MSTP 组成环网中,由于SDH保护倒换时间比STP协议收敛时间快的多,系统采用依然是SDH MS-SPRING或SNCP,一般倒换时间在50ms以内。但测试时部分以太网业务的倒换时间为0或小于几个毫秒,原因是内部具有较大缓存。SDH保护 倒换动作对MAC层是不可见的。这两个层次的保护可以协调工作,设置一定的"拖延时间"(hold-off),一般不会出现多次倒换问题。 一、STP算法

IEEE802.1D标准定义了STP的生成树算法。该算法依赖于BID、路径开销和端口ID参数来做出决定。 1、BID(网桥ID):

BID是生成树算法的第一个参数,BID决定了桥接网络的中心,称为根网桥或根交换机。

BID参数是一个8字节域。前2个字节(10进制)称为“网桥优先级”,后6个字节(16进制)是交换机的一个MAC地址。

网桥优先级用来衡量一个网桥的优先度,范围是0-65535,默认是32768。 思科交换机中的PVST+(每VLAN生成树)生成树协议使每个VLAN都有一个STP

实例。

比较两个BID的大小的原则:一是网桥优先级小的BID优先,二是如果网桥优先级相同,BID中的后六个字节的MAC小的则BID优先。 2、路径开销:

路径开销是生成树算法的第二个参数,决定到根网桥(根交换机)的路径。 通俗说,路径开销是用来衡量网桥之间的距离的远近的,其值是两个网桥之间某条路径上所有链路开销的总和。 路径开销与跳数无关。

路径开销决定到根网桥或根交换机的最佳路径,最小的路径开销是到根交换机的最佳路径。

路径开销的值的规律:带宽越大,STP开销越小。

3、端口ID:端口ID是生成树算法的第三个参数,也决定到根交换机的路径。它由2个字节组成,包括“端口优先级”和“端口号”,各占8位。 端口优先级值从0-255,默认128;端口号包括256个。 端口ID大小的判定与BID大小的判定相同。 二、STP的过程

1、STP判决和BPDU交换:

当创建一个逻辑无环的拓扑时,STP总是通过发送BPDU的第二层帧来传递生成树协议,并执行相同的4步判决顺序: 步骤1,确定根交换机;

步骤2,计算到根交换机的最小路径开销; 步骤3,确定最小的发送者BID; 步骤4,确定最小的端口ID。

网桥为每个端口存储一个其收到的最佳BPDU,当有其他的BPDU到达交换机的端口时,交换机会使用四步判决过程来判断此BPDU是否比该端口原来存储的BPDU更好,如果新收到的BPDU(或者本地生成的BPDU)更好,则替换原有值。 当一个网桥第一次被激活时,其上所有端口每隔一个HELLO时间(默认2秒)发送一次BPDU;如果一个端口发现从其他网桥收到的BPDU比自己发送的好,则本地端口就停止发送BPDU;如果在MAX AGE(最大生存时间,默认20秒)

内没有从邻居网桥收到更好的BPDU,本地端口则重新开始发送BPDU,即最大生存时间是最佳BPDU的超时时间。 2、STP收敛的三个步骤:

生成树算法收敛于一个无环拓扑的初始过程包含三个选举步骤: 步骤1 选举一个根交换机。 步骤2 选举根端口。 步骤3 选举指定端口。

在网络第一次“初始”时,所有网桥都洪泛混合的BPDU信息,网桥通过执行STP四步判决过程,形成整个网络或VLAN惟一的生成树。在网络稳定后,BPDU从根网桥流出,沿着无环支路到达网络中的每一个网段。网络发生变化时,生成树协议按照收敛三个步骤做出处理。 (1)选举根交换机:

根交换机是一个具有最小BID的网桥,它是惟一的,是通过交换BPDU选举得出来的。

BPDU的格式:BPDU是网桥之间用来交换生成树信息的特殊帧,它在网桥之间传播,包括交换机和所有配置来进行桥接的路由器,BPDU不携带终端用户流量。 BPDU包括根BID、根路径开销、发送者BID和端口ID信息。

也就是说,交换机通过传递BPDU来发现谁是最小的BID,从而将具有最小BID的网桥做为根交换机。最初时,交换机总将自己认为是根网桥,当它发现有比自己小的BID时,就将收到的具有最小BID的交换机作为根网桥。 (2)选举根端口:

在根交换机选举完后,就开始选举根端口了。所谓根端口,就是按照路径开销最靠近根交换机的端口,也就是说具有最小根路径开销的端口。每一个非根交换机都必须选举一个根端口。 (3)选举指定端口:

通过以上两个步骤后,生成树算法还没有消除任何环路,因为还没有选举指定端口。所谓指定端口,就是连接在某个网段上的一个桥接端口,它通过该网段既向根交换机发送流量也从根交换机接收流量。桥接网络中的每个网段都必须有一个指定端口。

指定端口也是根据最小根路径开销来决定,因此根交换机上的每个活动端口都是指定端口,因为它的每个端口都具有最小根路径开销(实际是它的根路径开销是0)。

注意:指定端口只在中继端口(TRUNK口)起作用。接入端口在指定端口选举中不起任何作用。接入端口是用来连接到主机或者三层端口的。 3、STP状态

在网桥已经确定了根端口、指定端口和非指定端口后,STP就准备开始创建一个无环拓扑了。

为创建一个无环的拓扑,STP配置根端口和指定端口转发流量,非指定端口阻塞流量。

实际上,STP决定端口转发和阻塞看似只有这两个状态,实际上是有五种状态的。

(1)、Disabled(为了管理目的或者因为发生故障将端口关闭);

(2)、Blocking(在初始启用端口之后的状态。端口不能接收或者传输数据,不能把MAC地址加入地址表,只能接收BPDU(bridge protocol data unit)。如果检测到有一个桥接环,或者端口失去了它的根端口或者指定端口的状态,那么就会返回到Blocking状态);

(3)、Listening(如果一个端口可以成为一个根端口或者指定端口,那么它就转入监听状态。此时端口不能接收或者传输数据,也不能把MAC地址加入地址表,但可以接收和发送BPDU);

(4)、Learning(在Forward Delay计时时间到(默认15秒)后,端口进入学习状态,此时端口不能传输数据,但可以发送和接收BPDU,也可以学习MAC地址,并加入地址表);

(5)、Forwarding(在下一次转发延时计时时间到后,端口进入转发状态,此时端口能够发送和接收数据、学习MAC地址、发送和接收BPDU)。 在这些状态过程中,会引发网络拓扑结构发生改变。此时,发生变化的交换机会在它的根端口上每隔hello time时间就发送TCN BPDU,直到上级的指定网桥邻居确认了该TCN(拓扑结构变化通知)为止。当根网桥收到后,会发送设置了TC(topology change,拓扑改变)位的BPDU,通知整个生成树拓扑结构发生了

变化。这会让所有的下级交换机把它们的Address Table Aging(地址表老化)计时器从默认值(300秒)降为Fordwarding Delay(默认为15秒),从而让不活动的MAC地址比正常情况下更快地从地址表更新掉

因篇幅问题不能全部显示,请点此查看更多更全内容