一、 STP
1.1 定义
STP(Spanning Tree Protocol),及生成树协议。是根据IEEE 802.1D 标准建立的,用于在局域网中消除数据链路层物理环路的协议。运行该协议的设备通过彼此交互信息发现网络中的环路,并有选择的对某些端口进行阻塞,最终将环路网络结构修剪成无环路的树型网络结构,从而防止报文在环路网络中不断增生和无限循环,避免设备由于重复接收相同的报文所造成的报文处理能力下降的问题发生。
它的产生源于链路的冗余连接。在大中型网络当中,与主干网和服务器的连接是非常重要的,而端口或交换机的损坏却是不可避免的,那么,如何在一条链路损坏之后,还能有其他的链路保持连接呢?这自然就要引进冗余链接。冗余的链接固然增加了系统的安全性,但同时也带来了另外一个问题,那就是拓扑环。
STP采用的协议报文是BPDU(Bridge Protocol Data Unit,桥协议数据单元),也称为配置消息,BPDU中包含了足够的信息来保证设备完成生成树的计算过程。STP即是通过在设备之间传递BPDU来确定网络的拓扑结构。
http://mxdxm.iteye.com/blog/940821
BPDU格式及字段说明:
要实现生成树的功能,交换机之间传递BPDU报文实现信息交互,所有支持STP协议的交换机都会接收并处理收到的报文。该报文在数据区里携带了用于生成树计算的所有有用信息。
标准生成树的BPDU帧格式及字段说明:
- Protocol identifier: 协议标识
- Version: 协议版本
- Message type: BPDU类型
- Flag: 标志位
- Root ID: 根桥ID,由两字节的优先级和6字节MAC地址构成
- Root path cost: 根路径开销
- Bridge ID: 桥ID,表示发送BPDU的桥的ID,由2字节优先级和6字节MAC地址构成
- Port ID: 端口ID,标识发出BPDU的端口
- Message age: BPDU生存时间
- Maximum age: 当前BPDU的老化时间,即端口保存BPDU的最长时间
- Hello time: 根桥发送BPDU的周期
- Forward delay: 表示在拓扑改变后,交换机在发送数据包前维持在监听和学习状态的时间
1.2 STP基本概念
- 桥ID(Bridge Identifier):桥ID是桥的优先级和其MAC地址的综合数值,其中桥优先级是一个可以设定的参数。桥ID越低,则桥的优先级越高,这样可以增加其成为根桥的可能性。
- 根桥(Root Bridge):具有最小桥ID的交换机是根桥。请将环路中所有交换机当中最好的一台设置为根桥交换机,以保证能够提供最好的网络性能和可靠性。
- 指定桥(Designated Bridge):在每个网段中,到根桥的路径开销最低的桥将成为指定桥,数据包将通过它转发到该网段。当所有的交换机具有相同的根路径开销时,具有最低的桥ID的交换机会被选为指定桥。
- 根路径开销(Root Path Cost):一台交换机的根路径开销是根端口的路径开销与数据包经过的所有交换机的根路径开销之和。根桥的根路径开销是零。
- 桥优先级(Bridge Priority):是一个用户可以设定的参数,数值范围从0到32768。设定的值越小,优先级越高。交换机的桥优先级越高,才越有可能成为根桥。
- 根端口(Root Port):非根桥的交换机上离根桥最近的端口,负责与根桥进行通信,这个端口到根桥的路径开销最低。当多个端口具有相同的到根桥的路径开销时,具有最高端口优先级的端口会成为根端口。
- 指定端口(Designated Port):指定桥上向本交换机转发数据的端口。
- 端口优先级(Port Priority):数值范围从0到255,值越小,端口的优先级就越高。端口的优先级越高,才越有可能成为根端口。
- 路径开销(Path Cost):STP协议用于选择链路的参考值。STP协议通过计算路径开销,选择较为“强壮”的链路,阻塞多余的链路,将网络修剪成无环路的树型网络结构。
1.3 STP定时器
- 联络时间(Hello Time):数值范围从1秒到10秒。是指根桥向其它所有交换机发出BPDU数据包的时间间隔,用于交换机检测链路是否存在故障。
- 老化时间(Max. Age):数值范围从6秒到40秒。如果在超出老化时间之后,还没有收到根桥发出的BPDU数据包,那么交换机将向其它所有的交换机发出BPDU数据包,重新计算生成树
当网络故障引发生成树重新计算时,生成树的结构将发生相应的变化。但是重新计算得到的新配置消息无法立刻传遍整个网络,如果端口状态立刻迁移的话,可能会产生暂时性的环路。为此,生成树协议采用了一种状态迁移的机制,新的根端口和指定端口开始数据转发之前要经过2倍的传输时延,这个延时保证了新的配置消息已经传遍整个网络。
1.4 STP示例
生成树基本概念的组网示意图如图所示。交换机A、B、C三者顺次相连,经STP计算过后,交换机A被选为根桥,端口2和端口6之间的线路被阻塞。
桥:交换机A为整个网络的根桥;交换机B是交换机C的指定桥。
端口:端口3和端口5分别为交换机B和交换机C的根端口;端口1和端口4分别为交换机A和交换机B的指定端口;端口6为交换机C的阻塞端口。
二、 解决问题
- 巨大的网络地址管理耗费:如果你是一个A类网络的管理员,你一定会为管理数量庞大的主机而头痛的;
- 路由器中的选路表的急剧膨胀:当路由器与其他路由器交换选路表时,互联网的负载是很高的,所需的计算量也很高;
- IP地址空间有限并终将枯竭:这是一个至关重要的问题,高速发展的internet,使原来的编址方法不能适应,而一些ip地址却不能被充分的利用,造成了浪费。