生成树协议(spanning tree protocol)

生成树协议(spanning tree protocol)

工作在二层里面(数据链路层)      二层交换机

 

理解一下重点:

  1. STP的工作原理
  2. 配置PVST+

 

生成树协议的目的是:

  1. 建立一个冗余的交换机网络
  2. 提高容错性
  3. 备份。

 

环路带来的三个问题:

  1. 广播风暴
  2. 收到重复的数据帧
  3. MAC地址表不稳定(震荡)

解决的方法就是:生成树协议STP

树是没有环的。

 

生成树的目的(作用)就是通过算法算出来阻塞哪个接口进而消除环路。而且当正常的链路断掉之后,阻塞的接口会自动的打开,让终端之间可以正常访问,达到备份的目的。

 

STP  (spanning tree protocol)生成树协议

 

 

 

生成树算法:

  1. 选择根网桥    (网桥就是交换机)
  2. 选择根端口
  1. 到根网桥最低的根路径成本(开销)
  2. 直连的网桥ID最小的
  3. 端口ID最小的
  1. 选择指定端口
  1. 根路径成本较低
  2. 所在的交换机的网桥ID值较小
  3. 端口ID值较小

 

口诀:一个根桥,两种度量,三要素选举,四个比较原则,五种端口状态。

 

一个根桥

每个二层拓扑中,必须要有一个根网桥(一个特殊的交换机(根交换机))

根交换机只有一个,非根交换机可以多个。

选择根网桥的依据是网桥ID,网桥ID是唯一的

 

两种度量

  1. ID
  1. BID(bridge ID)网桥ID

BID由两部分组成:第一部分是16bit的priority优先级(默认是32768)

取值范围:0-65535

第二部分是48bit的MAC地址

上面的MAC地址是交换机(或者交换机接口)的MAC地址

16bit的priority(优先级)

48bit的MAC地址

 

优先级最小的就是根设备(根交换机或者根网桥),如果优先级一样,那就比较MAC地址。

MAC地址小的就是根设备。

BID小的就一定是根设备。

根桥的BID就叫做RID(root ID)

(2)PID(port ID)端口ID

PID也由两部分组成:第一部分是接口优先级(默认是128)

  第二部分是接口号

  1. cost开销,成本

只有从接口把数据发出去的时候才考虑开销。

  1. 路径开销

在交换机上把数据从接口发出去的开销

思科设备开销:10M带宽(cost:100)

100M带宽(cost:19)

1000M带宽(cost:4)

 

  1. 根路径开销

非根设备到达根设备的路径开销之和RPC(root path cost)

一般我们根路径开销说的都是最小的根路径开销

 

三要素选举

  1. 在每个非根设备上选举一个根端口(RP——root port)

在每个非根设备上有且只能有一个RP

RP的定义是:离根最近的端口

  1. 在每段链路上选择一个指定端口(DP——design port)

在每段链路上有且只能有一个DP

如何选择指定端口:

在一段链路里要比较两个设备的根路径开销,根路径开销小的会成为DP端口;如果根路径开销一样,那么比较BID,BID小的会成为DP端口。

3、既不是RP端口,又不是DP端口,就将其阻塞掉。

 

四个比较原则

  1. RID(根桥的BID)
  2. RPC(root  path  cost ,根路径开销,即成本)
  3. 发送者的BID
  4. 发送者的PID

生成树的报文中,BDPU报文(桥协议数据单元)

 

五种端口状态:

disable(禁用):生成树关闭(或者接口关闭的时候)

blocking(阻塞):阻塞接口的最终状态

listening(侦听):设备开机之后,生成树接口默认处于的状态

等15s     15s的时间叫做转发延迟   forward delay

learning(学习):该状态是学习MAC地址的状态

等15s     

forwarding(转发):只有处在该状态,才能转发数据

注:RP(根端口)和DP(指定端口)端口都在转发状态

 

STP的计算步骤:

  1. 根据BID选出根桥,先比较优先级,优先级小的成为根,如果优先级一样,比较MAC地址,MAC地址小的成为根。优先级默认是32768
  2. 找到每个非根设备上的根路径开销
  3. 在每个非根设备上找到一个根端口,每个非根设备有且只能有一个根端口,根路径开销最小的那个接口就是根端口
  4. 在每段链路上,有且只能有一个指定端口DP,首先比较每段链路上所有设备的根路径开销,根路径开销小的成为DP,如果根路径开销一样,那么比较每个设备的BID,BID小的会成为DP
  5. 既不是RP也不是DP,就将其阻塞。

 

生成树的类型:

  1. 标准的STP  802.1d

思科认为标准的STP不好,所以思科有自己的私有协议

PVST+     per  vlan  spanning  tree  plus  每vlan生成树+

  1. 快速的生成树   RSTP   802.1w

思科认为快速生成树不好,思科有自己的私有协议

PVRSTP+ 或者Rapid PVST+     

 per  vlan  rapid  spanning  tree  plus  每vlan快速生成树+

  1. MSTP   多实例的生成树  802.1s

 

小结:

思科的交换机上默认只支持三种生成树:

PVST+

PVRST+

MSTP  

 

 

总结:

STP(spanning-tree protocol)---生成协议

作用----存在冗余链路的情况下,实现环路保护,

(即线路故障时,阻塞端口打开,恢复数据通信)

    实现----BPDU(网桥协议数据单元)

    分类----PVST/RSTP/MSTP

 

   工作过程

  1.确定交换机的角色

     分类:

           根交换机(只有一个)

           非根交换机(除根交换机以外的交换机)

     原则:

           比较每个交换机的BID(桥ID),越小越好

           组成:优先级+MAC地址(基MAC)

                 优先级:默认是32768

                  MAC地址:交换机主板MAC地址

                   sw#show version

  2.确定端口角色

     分类:

         根端口---在非根交换机上距离根交换机最近的端口

        指定端口---每一个冲突域中,距离根交换机最近的端口

        (冲突域---交换机端口互联形成)---根交换机上的端口均为指定端口

      非指定端口---除根端口及指定端口以外的交换机端口

   判断思路----首先判断根端口----->再判断指定端口------>最后判断非指定端口

    如何表示上文中“最近“这个距离?

            在STP中,通过cost 表示一个路径的距离

         对于某些链路,均有默认的cost值:(路径成本值)

链路带宽---路径成本

         10 M --- cost 100

          100M --- cost 19

          1000M(1G) ---- cost 4

          10000M(10G) ---- cost 2

总结:带宽越宽,成本越小

    通过什么来判断端口所属角色?

       BPDU--桥协议数据单元

        root-id      //表示根交换机是谁

        cost        //表示发送该BPDU协议的交换机到达根交换的距离

        BID         //表示发送该BPDU的交换机的名字

        Port-id      //表示发送方交换机是在那个端口发送出来的

                    (组成--优先级(默认128)+MAC地址) 

                  以上都是越小越好!!!

 

调整生成树协议:

1、通过调整优先级,来影响阻塞端口(全局配置模式下)

spanning-tree vlan 10   启用生成树(默认启用的)

spanning-tree vlan 10 priority 0  修改sw1在vlan10中的优先级

spanning-tree vlan 20 priority 4096  修改sw3在vlan10中的优先级

 

spanning-tree vlan 5,10-20 priority 0

spanning-tree vlan 10 root {primary|secondary}

primary:优先级为24576

secondary:优先级为28672

 

2、修改端口成本(在端口模式中)

spanning-tree vlan 10 cost 50  修改本交换机的端口在vlan10中的出接口成本

 

3、修改端口优先级

spanning-tree vlan 10 port-priority 96  

 

 

show spanning-tree    查看所有的vlan生成树。

 

 

 

你可能感兴趣的:(生成树协议(spanning tree protocol))