STP(802.1D)作用和工作原理

STP(802.1D)作用和工作原理

 

1.STP 作用:

  • 解决、广播风暴,mac地址不稳定、重复单播帧等问题(防环)
  • STP也提供了为网络提供备份连接的可能,避免单点故障,可与SDH保护配合构成以太环网的双重保护。

2.交换机互动沟通数据包———BPDU(桥协议数据单元) 

BPDU数据包结构

  2.实现过程 

   1). 选根。

基于boot-ID字段,最小的是根。(开机后,交换机都认为自己是根,所以root-ID的初始值是和sender-ID是一样的)比boot-ID的大小,就是先比优先级priority,数值小的选中,priority相同的话,再比MAC值。数值小的选中。Priority的缺省值是:32768

确定根后,就只有根每隔2秒周期发BPDU了。非根交换机就只是转发BPDU了。

   2). 选root port

是为非根交换机选root port(root port:非根交换机离根最近的接口)。基于path cost选,小的优选。

   3). 选指派接口

为每个网段选一个指派接口(指派接口:网段离根最近的接口)。基于path cost选,小的优选。如path cost相同,比接口发的BPDU的sender-ID,小的选中.

   4). 没被任何步骤选中的非根交换机接口,被该算法管理关掉,即被设为blocking.此时该接口只能接收BPDU帧,不转发BPDU帧,也不能收、发用户帧。

  • 当交换机的root port失效时,被blocking的接口,会有一个被自动激活,成为active.成为root port(因为被blocking的接口能接收BPDU)
  • 网络稳定后,接口只有2种状态:forwording、blocking.

注意:配置BPDU—只有根网桥可以发送


3.拓扑变更

TCN—拓扑变更消息(也是BPDU):

  • 本地交换机链路故障后,STP重新收敛,为了快速刷新全网所有交换机的MAC表,将向本地所有STP接口发送TCN(标记位中的TCN位置1),邻居交换机收到TCN后,先标记为ACK位为回复,用于可靠传输消息;
  • 之后将TCN逐级转发到根网桥处,由根网桥回复TC消息来逐级回复到所有交换机;
  • 使所有交换机临时将MAC表的老换时间修改为15s(默认的,转发延时)


4.选举规则 (根网桥  根端口  指定端口   非指定端口)

 

  • 根网桥
    • 描述:在一棵生成树实例中,有且仅有一台交换机为root; BPDU中的 桥ID来决定  
    • 选举规则:   先比较优先级,越小小优; →→  若优先级相同,比较mac,数值小优;

桥ID= 网桥优先级+  MAC地址

       网桥优先级:0-65535公有, 默认32768 。

       MAC地址:只有存在svi接口的交换机才拥有mac地址,若存在多个mac选数值最小。

 

  • 根端口(ROOT)
    • 描述:在每台非根网桥上,有且仅有一个接口;本地离根网桥最近的接口(最短、星型),
    • 功能:接收来自根网桥的BPDU,转发用户的流量(该接口不阻塞)
    • 选举规则:
      •   连对端PID也相同,比较本地PID,小优;
      • 对端BID也相同,比较该接口对端设备的接口的PID;越小越优,若优先级一致,编号小
      •  入向cost值相同,比较该接口对端设备的BID,小优
      • 比较从根网桥发出后,通过该接口进入时最小的cost值;

注:PID=端口ID   接口优先级(0-240,步长16,默认128)      接口编号

 

  • 指定端口(Desg
    • 描述:在每一段存在STP的物理链路上,有且仅有一个;
    • 功能:转发来自根网桥的BPDU,同时可以转发用户流量(不阻塞);默认根网桥上所有接口为指定端口
    • 选举规则:
      • 比较从根网桥发出后,通过该接口进入这段链路时的cost值最小(出向)
      •  若出向cost值相同,必须本地的BID,小优;
      •   本地BID相同,比较本地的PID;
      • 本地PID,相同,直接阻塞该端口;
  • 非指定端口(Altn、阻塞端口)
    • 描述:当以上所有角色全部选举完成后,剩余没有任何角色的接口为非指定;
    • 功能:该接口逻辑阻塞,实际可以接收到信息,但不转发;

 

STP端口状态
端口状态 说明 端口能力
Disabled 没有BPDU收发,一旦可以进行BPDU收发进入下一状态 不收发任何报文
Blocking 逻辑阻塞 不接受或者转发数据,接受但不发送BPDU,不进行地址学习
Listing

强制15s;所有交换机进行BPDU收发,选举所有角色;接口角色为非指定端口直接进入阻塞状态; 若为指定端口和根端口进入下一状态;

不接收或者转发数据,接收并发送BPDU,不进行地址学习
Learning

强制15s; 指定端口和根端口学习所有接口连接设备的MAC地址,生成MAC表;之后进入下一状态;

不接收或者转发数据,接收并发送BPDU,开始进行地址学习
Forwarding 指端端口和根端口进入,可以转发用户报文 接收或者转发数据,接收并发送BPDU,进行地址学习

 

:只有到接口进入到转发状态后,才能为用户转发数据报文,之前的30s不能转发任何数据;

 


5.收敛时间

  • 初次收敛:30s =  15侦听+15s学习
  • 结构变化:
    • 存在直连检测:本地存在阻塞端口,若其他端口断开,该阻塞端口马上进入15是侦听(选举);结果若为              启用,那么将再进入15s学习---总30s
    • 没有直连检测:本地不存在阻塞端口,若某个端口断开,将发送次优BPDU(以本地为根)给其他邻居交换机,其他交换机无视该数据,进行20s hold time计时,到时时阻塞接口进入15s侦听,15s学习=总50s

6.802.1D 缺点:

  • 收敛慢
  • 链路利用率低

7.802.1配置命令:

[sw1]stp mode stp   修改为802.1d算法,当下华为默认为MSTP;

[sw1]stp priority 4096    修改网桥优先级



[sw1-GigabitEthernet0/0/1]stp cost ?   修改接口cost值

  INTEGER<1-200000000>  Port path cost



[sw1-GigabitEthernet0/0/1]stp port priority ?  修改接口优先级

  INTEGER<0-240>  Port priority, in steps of 16

 

posted @ 2020-02-17 18:40  ASQW234  阅读(577)  评论(0编辑  收藏  举报