天天看点

HCNP-路由交换:STP(生成树协议)生成树协议的原理:

为了网络稳定,通常会有冗余链路。但冗余链路会导致环路、广播风暴和MAC表震荡。STP则可以在提高网络稳定性的同时解决这些问题。

生成树协议的原理:

  1. 每个广播域选择一个根桥(根交换机);
  2. 每个非根桥上选择一个根端口(RP,root port);发送最优的BPDU
  3. 在每各段(segment)上选择一个指定端口(DP,designated port);接收最优的BPDU
  4. 既不是根端口也不是指定端口的端口成为预备端口(AP,alternated port),处于阻塞状态,不转发任何报文。

BPDU——桥接协议数据单元

为了计算生成树,交换机之间需要交换信息和参数,这些信息和参数被封装在BPDU中。BPDU有两种类型:配置BPDU和TCN BPDU。

  1. 配置BPDU:包含了桥ID、路径开销、端口ID等参数。STP协议中,交换机通过发送配置BPDU来选举根桥,以及确定每各交换机端口的角色和状态。在初始化过程中,每个桥都发送配置BPDU;当网络拓扑稳定后只有根桥主动发送配置BPDU,其他桥只有收到上游的配置BPDU后,才发送自己的配置BPDU。
  2. TCN BPDU(拓扑变更通告):下游交换机在网络拓扑发送变化时向上游发送的拓扑变化通知。

选举过程

HCNP-路由交换:STP(生成树协议)生成树协议的原理:
  1. 根桥选举:

    每一个STP交换机启动后都会认为自己时根桥。STP正真的根桥通过比较根ID选举产生。每一个STP交换机都有一个桥ID。

    桥ID=桥优先级+MAC地址

    先比较桥优先级,优先级越小越优先。默认优先级是32768。如果优先级相同,再比较MAC地址,MAC地址越小越优先。

    注意:根桥一定要放在核心设备或性能更好的设备上

    SW1的配置

<Huawei>sys
//开启STP
[Huawei]stp enable
//选择STP模式。STP有三种模式STP、RSTP(快速STP)和MSTP(多进程STP)。华为交换机默认是MSTP
[Huawei]stp mode stp
//第一种方式,修改优先级。优先级必须是4096的倍数
[Huawei]stp priority 4096
//第二种方式,直接将某个交换机定义为根桥
[Huawei]stp root ?
  primary    Primary root switch
  secondary  Secondary root switch
//选项primary相当于设置优先级为0,选项secondary相当于把优先级设定为4096
[Huawei]stp root primary
//查看STP
[Huawei]dis stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge         :0    .4c1f-cc65-78a6  #桥ID
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :0    .4c1f-cc65-78a6 / 0   #根桥与到根桥的链路消耗
CIST RegRoot/IRPC   :0    .4c1f-cc65-78a6 / 0
CIST RootPortId     :0.0
BPDU-Protection     :Disabled
CIST Root Type      :Primary root
TC or TCN received  :41
TC count per hello  :0
STP Converge Mode   :Normal 
Time since last TC  :0 days 0h:3m:10s
Number of TC        :18
Last TC occurred    :Ethernet0/0/1
----[Port1(Ethernet0/0/1)][FORWARDING]----
 Port Protocol       :Enabled
 Port Role           :Designated Port
 Port Priority       :128
 Port Cost(Dot1T )   :Config=auto / Active=200000
 Designated Bridge/Port   :0.4c1f-cc65-78a6 / 128.1
 Port Edged          :Config=default / Active=disabled
 Point-to-point      :Config=auto / Active=true
 Transit Limit       :147 packets/hello-time
           
  1. 根端口选举:

A. 最低的根桥ID;

B. 到达根桥的最低路径开销;路径开销是端口出方向到根桥的路径开销总和。非根桥交换机只能修改开销。

C. 如果路径开销相同,则选择最低的发送者网桥ID;

D. 若网桥ID相同,则选择最低的发送者端口ID。端口ID由端口优先级加端口序号组成。优先级越低越优先,优先级相同,接着比较端口序号,序号越低越优先。端口优先级默认128。根交换机只能修改端口优先级。端口优先级必须是16的倍数。

//华为交换机支持的路径开销方式
[Huawei]stp pathcost-standard ?
  dot1d-1998  IEEE 802.1D-1998
  dot1t       IEEE 802.1T
  legacy      Legacy
//修改路径开销方式
[Huawei]stp pathcost-standard dot1t
//修改非根桥上的端口路径开销值
[Huawei]int e0/0/1
[Huawei-Ethernet0/0/1]stp cost 200000000
//修改根桥上的端口优先级
[Huawei-Ethernet0/0/1]stp port priority 16
           
  1. 选举指定端口

    指定端口选举也是先比较根路径开销值,累计根路径开销最小的端口就是指定端口。如果根路径开销相同,则比较端口所在的交换机的桥ID,桥ID最小则是指定端口。如果桥ID相同则比较端口ID,端口ID最小的就是指定端口。

STP端口状态

  1. Fowarding——端口既转发用户流量也处理BPDU。只有根端口或指定端口才处于Fowarding状态。
  2. Learning——端口会根据收到的用户流量建立MAC表,但不转发用户流量。过渡状态,增加Learning状态防止临时环路。Learning进入到Fowarding默认要15秒。
  3. Listening——确定端口角色,选举出根桥、根端口、指定端口。过渡状态。Listening进入 到Learning默认要15秒。
  4. Blocking——端口只处理BPDU,不转发用户流量。阻塞端口的最终状态。
  5. Disabled——端口既不处理BPDU,也不转发用户流量。端口处于Down状态。

继续阅读