生成树的运行机制

1、冗余会产生什么问题服务器

clip_p_w_picpath002

如上图所示:网络

1.广播风暴:当全部设备刚加电运行,此时PC须要向服务器发送数据,那么,PC须要发送ARP广播请求服务器的MAC地址,因为交换机没有存储任何MAC地址,因此交换机的第一步学习PC的源MAC地址,再将目标MAC泛洪出去,首先SW1从接口1泛洪该帧,经由网段1到达SW2的接口1,因为是广播播,SW2从2接口泛洪该帧,最终会到达SW1.其次,再SW1将帧从接口泛洪的同时,也从接口2泛洪该帧经由网段2到达SW2,SW2也泛洪该广播帧,最后,由于这个帧是广播帧,会持续循环,形成广播风暴。ide

2.多帧复制:假设PC和SW2有存储服务器的MAC地址,而SW1没有存储,当PC发送一个单播帧到服务器,SW1会将该帧泛洪,而SW2知道服务器链接在SW2的哪一个端口,因此SW2只会将帧发送到服务器而不泛洪。那么,SW1会从接口1和接口2分别发送该帧,SW2会从网段1 和网段2接收到该帧的两个复制。学习

3.MAC地址表不稳定:PC向服务器发送数据,SW2会分别从接口1 和接口2收到源MAC为PC的MAC地址,因此先是接口1学习到MAC PC,接着又会接口2 学习到MAC PC,形成MAC地址表的不稳定。spa

2、生成树的做用:用于二层有冗余链路的状况下防止环路blog

3、生成树的BPDU接口

BPDU(Bridge Protocol Data Unit)ip

·STP的各类选举是经过交换BPDU报文来实现的,BPDU是直接封装在以太网帧中的。get

·对于参与STP的全部SW,它们都经过数据消息的交换来获取网络中其余SW的信息,这种消息就被称为BPDU。it

·BPDU是直接封装在二层的协议,其MAC地址最后封装数为:00。(01:80:c2:00:00:00)

·BPDU的功能:
1.选举根桥
2.肯定冗余路径的位置
3.经过阻塞特定端口来避免环路
4.通告网络的拓扑变动
5.监控生成树的状态

·BPDU每2S由根桥发送一次。
最初的网络,每一个SW都认为本身是根桥,都会发送BPDU,比较Lowest BID,选举出一个根桥,此时就只有根桥发送BPDU。非根桥只进行转发。

BPDU分两种类型:
一、配置BPDU--一般由根网桥以周期性间隔发出,包括了STP参数,用于进行各类选举。
二、TCN(topology change notification 拓扑变动通告)BPDU--这种BPDU是当交换机检测到拓扑发生变动时所产生。

3、生成树的角色:根桥、指定网桥、根端口、指定端口、非根非指定端口

要弄清楚这些角色,首先要搞清楚它们是怎么选举出来的。两个原则:一是抢占式,若是谁条件最优,谁成为指定的角色;二是小者优先,不管是优先级仍是MAC,小的可以得到到指定角色。这和OSPF的DR选举恰好是相反的。

1.根桥的选举:每一个STP网络只有一台根桥,根桥的全部接口都是指定端口

BID小者优先,在整个二层网络中进行选择。由于三层的链路的冗余能够经过三层的协议来防止环路,不依赖于STP。

根桥的选举是比较桥ID的,桥ID由桥优先级与MAC地址组成,先比较优先级,再比较MAC地址。优先级取值0-65535,默认值32768.

在设备都运行STP的伊始,每台支持STP的交换机都会参与,且会认为本身的根桥,都发送配置BPDU,把发送者ID和根桥ID都置为本交换机的。而后全部交换机都能收到其余交换机发送过来的配置BPDU,一个组播帧。全部交换机都会把BID最小的那台交换机置成根桥

手工影响根桥的选举:

               spanning-tree [vlan 1] priority 0-61440  ,若是不带vlan这个参数,表示对全部vlan都生效

2.根端口的选举:每台非根交换机都选择一个离根最近的端口成为根端口。

      1.比较最低的根桥ID

      2.比较本交换机到根桥最低COST值的端口

      3.比较发送BTDU给本交换机的邻接交换机的BID,若是本交换机在生成树的网络中链接有多台指定交换机(离根桥近的交换机)

      4.比较发送BTDU给本交换机的邻接交换机的PORT ID,较小的优先

port ID:由接口优先级与端口编号组成,优先级默认值为128,端口编号就是物理接口编号加1,小的端口编号优先。

           spanning-tree vlan 1 port-priority 0-240

3.指定端口选举:每一个网段(链路级)只有一个端口成为指定端口

       1.比较最低的根桥ID

      2.比较链路两端的接口到根桥的cost值,小者优先

      3.比较链路两端的交换机的BID,若是有较小BID的交换机的接口优先

      4.比较链路两端的交换机的port ID,若是有较小端口ID的交换机的接口优先成为指定端口

4.cost值的计算

从根桥的指定端口发出的BPDU的值为0,而后下游交换机收到BPDU,会加上收到BPDU的接口的cost值,再向下游发送。也就是说cost值是计算入接口的值的累加。

5.小结:不少初学者可能分不清怎么样选举根端口与指定端口,由于书上写的都是最低的发送者BID与最低的端口ID。让咱们无所适从。

4、LAB:接下来咱们就能够作一个简单的实验了

clip_p_w_picpath004

如上图所示,交换机的优先级与接口优先级都是默认的,全部链路都是100M,cost值为19.求根桥、根端口、指定端口与阻塞端口

1.根桥:依照选举原则,SW1的BID较小,成为根。比较过程:首先比较三台交换机的优先级,都是32768,不能得出结果,因此比较MAC地址,SW1有较小的MAC成为根

2.根端口:每台交换机上离根cost值最小的端口。

             SW2的f0/1到达根的cost值为19,由于它收到从根发出来的cost为0的BPDU,加上自己接口的cost,得出结果为19。

             SW2的f0/2,收到SW3转发的COST 为19的BPDU,加上f0/2的cost,为38. 因此SW2选择F0/1为根端口,同理,SW3选择f0/3 为根端口

3.指定端口:每网段一个指定端口

根桥的全部端口都是指定端口,由于它们到达根的cost为0.那么SW2与SW3链接的f0/2这条链路须要选择一个指定端口

首先比较cost值,两边到达根桥的cost值相同,都为38.因此接下来比较BID

由于SW2的BID较小,因此SW2的链接端口f0/2成为该网段的指定端口。

4.由于SW3的f0/2端口不是根端口,也是不链路的指定端口,那么这只能处于阻塞状态

上图的验证,可使用GNS搭建一个简单的拓扑,按照1 2 3,三台3640的机器。默认状况下,SW1的MAC是cc00,依次向上为cc01。

若是有四台交换机,或者多条冗余链路,依照上面介绍的原则,也能够快速得到结果。若是你们发现我讲述的STP选举有问题,请你们指正。

相关文章
相关标签/搜索