软件开发实训(720科技)――生成树协议(自学)

如果有三台交换机,如下图所示。为了不使其中一条链路宕的情况下,其他的交换机无法传输,所以就两两相连,提高容错率,但是这样就会有一个问题产生,因为会产生广播风暴。而在这种情况下为了不使广播风暴产生,就产生了生成树协议。

STP-Spanning Tree Protocol(生成树协议)

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

当线路出现故障,断开的接口被激活,回复通信,起备份线路的作用。

而最终会阻塞哪个端口,是通过最后的生成树算法,算出来的。

生成树的算法:

STP将一个环形网络生成无环拓扑的步骤:

-选择根网桥(root bridge

【网桥ID:】

-每隔网络只能有一个根桥,根桥具有最低的桥ID,根桥上的所有端口都是指派端口。

-一个网桥ID是由8个字节组成的。(其中头2个字节是标识网络优先级,后6个字节标识网桥的MAC地址)

优先级在出厂的时候默认的都是32768,而优先级的取值范围则是0~65535

     网桥的MAC地址简称为“基本MAC地址”也就是“基M”

1.所以选择根网桥,首先先比较优先级,谁的优先级最小就选谁作为根桥。

但是交换机出厂的时候,它们的默认优先级都是32768

2.所以在优先级相同的情况下,就只能看网桥的MAC地址,谁的MAC地址最小小谁就可以作为根桥。

-选择根端口(root ports

在非根网桥上选择一个到根网桥最近的端口作为根端口

选择根端口的依据是:

      1.-根路径成本最低(比的是cost值)

          什么是cost值呢,cost值也叫根路径成本。而根路径成本是指非根网桥到根网桥的路径上 所有链路的成本之和。

那么交换机C的E0/1的端口的cost值就=路径成本19+路径成本100=cost119

          【人为规定:100M的以太网所花费的cost值是19,而10M的以太网所花费的cost值是100

带宽越大,所花费的cost值就越小。

      2.-直连网桥的网桥ID最小(比的是Bridge ID)

如上图所示,根网桥是交换机A,根端口就是三个红圈标注的地方,那么交换机D为什么是上面的端口是根端口呢,因为在它的两边直连网桥的优先级相同都是32768的情况下,就比较这两个网桥的bridgeID地址大小,那么明显交换机B的MAC地址小(000d.2810.d100>000d.2805.c100),所以在D上会选择这上边作为根端口。

    

      3.-直连网桥的端口ID最小(比的是Ports ID)

        

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

端口优先级默认是128,范围是0~255. 端口编号实际与端口号有很大的关系。

        比如端口f0/2,那么这个f0/2的端口编号就是128.2,而f0/1就是128.1

                                              由于对端的端口ID小,所以F0/3就是根端口。

-选择指定端口(designated ports

 在每个网段(与IP无关)上,选择1个指定端口

这个网段指的是交换机之间的链路有几条,也就说每一条链路选定一个指定端口。

 -根桥上的端口全是指定端口

 -非根桥上的指定端口:

·根路径成本最低cost

·端口所在的网桥的ID值较小bridgeID

·直连网桥的端口ID值较小

从这张图可以看出:1.根桥上的端口全是指定端口,那么交换机A的上和右的两条链路网段上的指定端口就是交换机A的上方向和右方向端口。

         -非根桥上的指定端口:1.首先看路径成本cost值,交换机B上方向端口和交换机C右方向上端口的cost值,都是19+19=38,所以没有可比性,跳过,看下一条。

                    2.看端口所在网桥的bridgeID,结果交换机B的bridgeID小。所以这第三条网段上的指定端口就是交换机B上方向的端口。那么最终交换机C的右方向端口会被阻塞。

最后,根据STP的计算,最终的逻辑结构为无环拓扑。

在生成树已经生成的情况下,第三条链路只能作为备份线路来使用,在正常情况下,是不会转发数据的,除非第一条或者第二条链路宕掉了,那么第三条链路才会启用。


那么交换机是如何知道其他交换机的带宽cost值、bridgeID的呢?

      其实它们是通过“桥协议数据单元BPDU”来交换STP信息的。

BPDU:

 -Bridge protocol data unit- 桥协议数据单元

使用组播发送BPDU,组播地址为:

01-80-c2-00-00-00

BPDU分为2种类型:

   -配置BPDU-用于生成树的计算   

开机的时候谁都会发送BPDU来计算阻塞端口,但是当计算配置完成以后,就只有根桥才会每隔2秒发送BPDU,其他的非根桥不会再发送BPDU。

   -拓扑变更通告(TCN)BPDU- 用于通告网络拓扑的变化。

           只有在拓扑发生改变的时候才会发送TCN的BPDU。

当三台交换机A\B\C互相连接的时候,刚开机,它们都会认为自己根桥,所以都会发送BPDU,而这个BPDU里面的bridgeID就是自己的bridgeID,路径成本处为0,发送网桥ID也是自己的bridgeID,从哪个端口发出去,就记录为哪个端口ID。

如果B发出了BPDU,到了A这里,A发现自己的bridgeID比B的还小,就会将自己的bridgeID填写进去。而当B和C收到A发的BPDU以后,发现自己没有A小,那么也就只能做非根桥了。

 

而当B和C往外转发BPDU的时候,是会加上自己到根桥的cost值的,而不再是A发出的BPDU里面的cost值为0.

所以如果是三台交换机的话,在刚开始开机的时候,是会有一个30秒的计算生成树的生成时间。

生成树的端口状态:

生成树的端口状态一共有五种:

1.转发forwarding    发送和接收用户数据   

2.学习 learning      构建网桥表     构建好网桥表以后,再过15秒就会进入转发状态。

3.侦听 listening      构建“活动”拓扑选举根桥、根端口、指定端口   算生成树,算好以后,经过15秒进入学习状态。

4.阻塞 blocking      只接收BPDU     应该是每隔2秒会收到来自根桥的BPDU,如果20秒还没收到,就会进入侦听状态。

5.禁用 disable       强制关闭

 

在上面的五个状态里面,只有转发状态,可以接收和发送用户数据,其他的四个状态都是不可以发送和接收用户数据的。

 

生成树计时器:

·交换机开机需要等待30秒的时间开始转发数据

·当某个正在使用的链路断掉,阻塞的端口需要50秒的时间开始转发数据。


阶段总结:

一、选择根桥【网络唯一】(如果交换机超过7台,会有多个根桥产生。)

    -bridgeID

二、选根端口【非根桥唯一】

-cost值小

-直连网桥的bridgeID

-直连网桥的PID

三、选择指定端口【网段唯一】

-根桥上面所有端口都是指定端口

-非根桥端口

   -cost值小

   -端口所在网桥的bridgeID

   -直连网桥的PID

一般情况下都是值越小,优先级越大。

根端口对面一定是指定端口,但是指定端口对面不一定是根端口,有可能是指定端口也有可能是阻塞端口。

 

PVST(按VLan生成树):

PVST是cisco私有的,为每个vlan构造一棵生成树。称为“每vlan生成树”


配置网络中比较稳定的交换机为根网桥

利用pvst实现网络的负载分担

启用生成树的命令:

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

设置根网桥:

Switch(config)#spanning-tree vlan vlan-list rootprimary|secondary设置为primary后,就相当与设置了主要根桥,优先级从默认的32768变成24576,设置为secondary后,就相当于设置成为备份根桥,优先级就从默认的32768变成为28672.

修改网桥的优先级:

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

如果要手工来指定优先级,那么bridge-priority的数字就必须是4096的倍数才可以。

 

修改端口成本:

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

修改端口优先级:

Switch(config-if)#spanning-tree vlan vlan-listport-priority priority必须是16的倍数

配置上行速链路:

Switch(config-if)#spanning-tree uplinkfast

配置端口速链路:

Switch(config-if)#spanning-tree portfast

查看生成树的配置:

Switch#show spanning-tree

查看某个vlan的生成树的详细信息:

Switch#show spanning-tree vlan vlan-id detail

配置速端口是为了节余启动生成树的30秒的等待时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值