了解生成树协议

1.STP:bridges之间交换BPDU信息来检测循环,并通过关闭接口的方式来破坏循环
  
2.根桥(root bridge):拥有最好的bridge ID即为根桥,网络中的一些诸如哪些端口被堵塞(block)哪些端口作为转发模式的决定都由根桥来决定
  
3.BPDU:Bridge Protocol Data Unit,所有的switches通过交换这些信息来选择根switch
  
4.bridge ID:用于STP跟踪网络中的所有switches,这个ID由bridge优先级(priority)和MAC地址符合而成,优先级默认为32768,ID最低的即为根桥
  
5.非根桥(nonroot bridge):不是根桥的全为非根桥,非根桥交换BPDUs来更新STP拓扑数据库
  
6.根端口(root port):与根桥直接相连的端口,或者是到根桥最短的接口.如果到根桥的连接不止1条,将比较每条连接的带宽,耗费(cost)低的作为根端口;如果耗费相同就比较bridge ID,ID低的将被选用
  
7.指定端口(designated port):耗费低的端口,作为转发端口
  
8.端口耗费(port cost):带宽来决定
  
9.非指定端口(nondesignated port):耗费较高,为堵塞模式(blocking mode),即不转发帧
  
10.转发端口(forwarding port):转发端口用来转发帧
  
11.堵塞端口(blocked port):不转发帧,用来防止循环的产生,虽然不转发,但是它可以监听(listen)帧

  Spanning Tree Operations

  之前说过:STP的任务就是查找出网络中的所有连接,并关闭些会造成循环的冗余连接.STP首先选举1个根桥,用来对网络中的拓扑结构做决定.当所有的switches认同了选举出来的根桥后,所有的bridge开始查找根端口.假如在switches之间有许多连接,只能有1个端口作为指定端口

  Selecting the Root Bridge

  bridge ID用来在STP域里选举根桥和决定根端口,这个ID是8字节长,包含优先级和设备的MAC地址,IEEE版本的STP的默认优先级是32768.决定谁是根桥,假如优先级一样,那就比较MAC地址,MAC地址小的作为根桥

  Selecting the Designated Port

  假如不止1个连接到根桥,那就开始比较端口耗费,耗费低的作为根端口,下面是一些典型的耗费标准:
  1.10Gbps:2
  2.1Gbps:4
  3.100Mbps:19
  4.10Mbps:100

  Spanning-Tree Port States

  运行STP的bridges和switches的5种状态:
  1.堵塞(blocking):不转发帧,只接受BPDUs,主要目的是防止循环的产生.默认情况下,当switch启动时所有端口均为blocking状态,一般为20s
  2.监听(listening):端口接受和发送BPDUs监听数据帧,不转发数据帧,来决定在传送数据帧之前没有循环会发生,一般为15s
  3.学习(learning):监听BPDUs和学习所有路径,学习MAC地址表,不转发帧,一般为15s
  4.转发(forwarding):转发和接收数据帧,读取MAC地址,更新桥的CAM表。
  5.禁用(disabled):不参与帧的转发和STP,一般在这个状态的都是不可操作的

生成树”资料

交换机内的生成树算法(STA)使你可以创建一条备用链路(当网络中存在多台交换机时)。在主链路正常工作时,备用链路处于空闲状态(不工作);只有在主链路出现问题时,备用链路才不需要任何人工干预自动地接替主链路。这种自动重构的功能,使得网络上的用户能够最大限度地与网络保持正常的连接。生成树算法较复杂,所以,建议最好在充分研究理解其之后,再更改其一些设置。请仔细阅读并理解下述内容之后,再去更改交换机上的生成树的默认设置。

网络环路的侦测和预防(Network loop detection and prevention):任何两个局域网之间应该只有一条路径,否则,网络中将出现环路。如果存在着多于一条的路径,那么生成树算法将会侦测到环路的发生,并自动选择开销值(c ost)最低的那条路径作为可使用的路径(主链路),而阻断其它路径,将它们作为备用路径(备用链路)。

自动拓扑重构(Automatic topology re-configuration):当主链路出现故障时,生成树算法将自动启用备用链路,重构网络结构。

生成树的级别(STA Operation Levels)

生成树有两种工作级别:桥级别(bridge level)和端口级别(port level)。在桥一级上,生成树算法为每台交换机计算桥的标志级数(Bridge Identifier),然后设定根桥(Root Bridge)和指定桥(Designated Bridges)。而在端口一级上,生成树算法设定根端口(Root Port)和指定端口(Designated Ports)。详述如下:

在桥一级上(On the Bridge Level):

根桥(Root Bridge):具有最小桥标志级数的(lowest Bridge Identifier)交换机是根桥(Root Bridge)。当然,你希望根桥是环路中所有交换机当中最好的一台(交换机),以保证能够提供最好的网络性能和可靠性。

桥标志级数(Bridge Identifier):桥标志级数是桥的优先级(Bridge Priority)和交换机的MAC地址的综合数值,其中桥的优先级(Bridge Priority)是一个你可以设定的参数。例如,“4 00 80 C8 00 01 00”中的“4”是桥的优先级,“00 80 C8 00 01 00”是交换机的MAC地址。交换机的桥标志级数越低,则交换机的优先级越高,这样可以增加其成为根桥的可能性。

指定桥(Designated Bridge):在每个网段中,到根桥(Root Bridge)的路径开销最低的(lowest Root Path Cost)桥将成为指定桥(Designated Bridge),数据包将通过它转发到网段。一旦所有的交换机具有相同的根路径开销(Root Path Cost),那么具有最低的桥标志级数的(lowest Bridge Identifier)交换机才会被定为指定桥(Designated Bridge)。

根路径开销(Root Path Cost):一台交换机的根路径开销(Root Path Cost)是根端口(Root Port)的路径开销(Path Cost)与数据包经过的所有交换机的根路径开销(Root Path Cost)之和。根桥(Root Bridge)的根路径开销(Root Path Cost)是零。

桥的优先级(Bridge Priority):是一个用户可以设定的参数。设定的值越小,优先级越高。交换机具有越高的优先级,才越有可能成为根桥。

在端口一级上(On the Port Level):

根端口(Root Port):每台交换机都有一个根端口(Root Port),这个端口到根桥的路径开销最低。一旦多个端口具有相同的到根桥的路径开销时,那么具有最低的端口标志级别的才会成为根端口。

指定端口(Designated Port):指定端口就是指定桥(Designated Bridge)上的端口。

端口优先级(Port Priority):数值越小,端口的优先级就越高。具有越高端口优先级,才越有可能成为根端口。

路径开销(Path Cost):这是一个可变的参数,它将随着生成树中的设定值的变化而变化。依据STA的默认参数值,每个1000Mbps网段有一个指定的路径开销值为4 ,100Mbps网段的路径开销值19,10Mbps网段的路径开销值100。

生成树参数(STA Parameters)

生成树的参数用户可以根据自己的需要进行修改,但是建议最好使用出厂时的默认设置。除非确实需要对出厂设置值进行变动时,再去改动默认值。用户可以改动的生成树参数有如下几个:

桥优先级(Bridge Priority):数值范围从0到65535。“0”的优先级最高。

呼叫时间(Bridge Hello Time):数值范围从1秒到10秒。是指根桥向其它所有交换机发出BPDU数据包的时间间隔,以告知其它所有交换机它是根桥。如果你的交换机还未是根桥时为其设置了呼叫时间,那么,一旦你的交换机成为根桥,该呼叫时间就会派上用处。

注意:呼叫时间不能大于桥的最大老化时间(Max. Age),否则,将出现错误信息。

最大的桥老化时间(Bridge Max. Age):数值范围从6秒到40秒。如果在超出最大老化时间之后,还没有收到根桥发出的BPDU数据包,那么,在允许的条件下你的交换机将充当根桥向其它所有的交换机发出B PDU数据包。如果交换机确实具有最小的桥标志级数,那么,它将随之成为根桥。

桥转发时延(Bridge Forward Delay):数值范围从4秒到30秒。是指交换机的端口从阻塞状态转为转发状态所用的监听时间。

当你欲变动生成树参数时,请一定记住下述公式:

最大的桥老化时间≤ 2 x(桥转发时延 – 1秒)
即:Max. Age ≤ 2 x (Forward Delay - 1 second)
最大的桥老化时间≥ 2 x(呼叫时间 + 1秒)
即:Max. Age ≥ 2 x (Hello Time + 1 second)
端口优先级(Port Priority):数值范围从0到255。数值越小,那么该端口越可能成为根端口。

生成树协议(STP)

1. 冗余链路:冗余连接可以防止网络中的单点失效的问题;冗余连接也导致了交换回路的出现。

2. 交换回路引发的问题:广播风暴;同一帧的多拷贝;不稳定的MAC地址表。

3. STP介绍:通过阻塞一个或多个冗余端口,维护一个无回路的网络(IEEE802.1d)

4. 工作过程:运行生成树算法(STA)的交换机定期发送BPDU;选取唯一一个根网桥;在每个非根网桥选取唯一一个根端口;在每网段选取唯一一个标志端口。

(1). 选取唯一一个根网桥:BPDU中包含Bridge ID;Bridge ID(8B)=优先级(2B)+交换机MAC地址(6B);一些交换机的优先级默认为32768,可以修改;优先级值最小的成为根网桥;优先级值最小的成为根网桥;优先级值相同,MAC地址最小的成为根网桥;Bridge ID值最小的成为根网桥;根网桥缺省每2秒发送一次BPDU;

(2). 在每个非根网桥选取唯一一个根端口:根网桥上没有根端口;端口代价最小的成为根端口;端口代价相同,Port ID最小端口的成为端口;Port ID通常为端口的MAC地址;MAC地址最小的端口成为根端口;

(3). 在每网段选取唯一一个标志端口:端口代价最小的成为标识端口;根网桥端口到各网段的代价最小;通常只有根网桥端口成为标识端口;被选定为根端口和标识端口的进行转发状态;落选端口进入阻塞状态,只侦听BPDU;

(4). 阻塞端口在指定的时间间隔(缺省20秒)收不到BPDU时,会重新运行生成树算法进行选举;缺点:在运行生成树算法的过程中,网络处理阻断状态,所有端口都不进行转发。计算过程缺省为50秒。

生成树相关的几个概念STP/RSTP/MSTP

STP
:IEEE Std 802.1D-1998定义,不能快速迁移。即使是在点对点链路或边缘端口,也必须等待2倍的forward delay的时间延迟,网络才能收敛。

RSTP:IEEE Std 802.1w定义,可以快速收敛,却存在以下缺陷:
局域网内所有网桥共享一棵生成树,不能按vlan阻塞冗余链路。

MSTP可以弥补这样缺陷,它允许不同vlan的流量沿各自的路径分发,从而为冗余链路提供了更好的负载分担机制。

MSTP:Multiple Spanning Tree Protocol多生成树协议在规范IEEE Std 802.1s中第13节描述。

MSTP算法通过应用MSTP、STP或RSTP的桥任意互连的桥接网络,为分配给任一个特定VLAN的帧提供了简单而完备的连通性。

MSTP允许不同VLAN的数据从各自的路径分发。各条路径建立在由LAN和MST桥组成的MST域中的各个独立的多生成树实例的基础上。

当STP和RSTP混用

当STP和RSTP混用时,STP会丢弃RSTP的BPU,当RSTP收到STP的BPDU的时候会在经过一个hello周期后(防止端口频繁切换),适配未STP模式!

当网络中支持STP的设备被拿走后,RSTP的设备不会自动切换为RSTP状态,因为设备不能察觉这种情况!

MSTP和PVST的区别!

PVST会为每一个VLAN维护一个STP 的进程,发送BPUD,但是会给交机和链路带来很大的负担!

但是在实际组网中并不需要为每个VLAN生成独立的VLAN,可以给一组VLAN采用相同的STP!

因此MSTP,对此进行了改进!提出了region的概念!

详细可以参考RFC!  

MSTP和RSTP的互通

MSTP上存在一个IST(Internal Spanning Tree),相当于一个RSTP的进程,通过该IST和其它RSTP设备互通!整个MSTP的Region 对于CST(Common Spanning Tree)来说是一个虚拟的交换机!