【网络协议详解】——STP技术(学习笔记)

目录

  • 1. STP技术工作原理
  • 2. BPDU报文
    • 2.1 配置BPDU
    • 2.2 TCN BPDU
  • 3. 实验:了解STP生成过程

1. STP技术工作原理

以太网交换机使用生成树协议STP(Spanning Tree Protocol),可以在提高网络可靠性的同时又避免环路带来的各种问题。

生成树算法STA(Spanning Tree Algorithm)是生成树协议STP的核心。它的实现目标是:在包含有物理环路的网络中,构建出一个能够连通全网各节点的树型无环逻辑拓扑

STP协议由IEEE 802.1D 定义,描述时使用的是“网桥”,由于“交换机”的本质是“多端口网桥”,接下来都使用“网桥”来描述。

生成树算法的三个步骤:

  1. “选举”根交换机
  2. “选举”根端口
  3. “选举”指定端口并阻塞备用端口

注:这里所谓的“选举”,是通过网络中各交换机相互发送生成树协议专用的数据帧来实现的,这些交换信息的报文称为网桥协议数据单元,简称BPDU

选举根交换机:

  • 根交换机的选举条件:网桥ID(BID)最小者当选
  • 网桥ID(BID)由以下两部分构成:
    • 优先级(2字节)
      • 范围:0 - 61440(也有说法是65535)
      • 步长:4096
      • 默认值:32768
    • 交换机的基本MAC地址(6字节)
  • 网桥ID (BID)的比较方法:
    • 优先级取值越小,则网桥ID(BID)就越小。
    • 若优先级相同,则比较MAC地址,从MAC地址的左侧开始依次比较,数值小的,则网桥ID(BID)就小。

选举根端口:

  • 在每一个非根交换机上选出一个根端口RP(Root Port),并且只能是一个。
  • 根端口RP用于接收根交换机发来的BPDU,也用来转发普通流量。
  • 根端口RP的选举条件:
    • BPDU接收端口到根交换机的路径成本(端口开销)最小。
       链路带宽   成本值  4 M b / s 250 10 M b / s 100 16 M b / s 62 100 M b / s 19 1 G b / s 4 10 G b / s 2 \begin{array}{|c|c|} \hline {\text { 链路带宽 }} & \text { 成本值 } \\ \hline 4 Mb/s & 250 \\ \hline 10 Mb/s & 100 \\ \hline 16 Mb/s & 62 \\ \hline 100 Mb/s & 19 \\ \hline 1 Gb/s & 4 \\ \hline 10 Gb/s & 2 \\ \hline \end{array}  链路带宽 4Mb/s10Mb/s16Mb/s100Mb/s1Gb/s10Gb/s 成本值 250100621942
    • 对端的网桥ID(BID)最小。
    • 对端的端口ID(PID)最小。
      • 优先级范围(1 - 4bit)
        • 范围:0 - 240
        • 步长:16
        • 默认值:128
      • 端口号(5 - 16bit)

选举指定端口(Designated Port)并阻塞备用端口(预备端口):

  • 在每一个网段上选出一个指定端口DP ( Designated Port)并且只能是一个。
  • 指定端口DP用于转发根交换机发来的BPDU,也用来转发普通流量。
  • 指定端口DP的选举条件:
    • 根交换机的所有端都是指定端口DP。
    • 根端口的对端端口一定是指定端口DP。
    • BPDU转发端口到根交换机的路径成本最小。
    • 本端的网桥ID(BID)最小。
    • 本端的端口ID(PID)最小。
  • 剩余端口成为备用端口AP(Alternate Port),将它们阻塞。

在这里插入图片描述

端口状态描述:

端口状态 描 述
Disabled(端口没有启用) 此状态下端口不转发数据帧,不学习MAC地址表,不参与生成树计算。
Listening(侦听状态) 此状态下端口不转发数据帧,不学习MAC地址表,只参与生成树计算,接收并发送BPDU。
Blocking(阻塞状态) 此状态下端口不转发数据帧,不学习MAC地址表,此状态下端口接收并处理BPDU,但是不向外发送BPDU。
Learning(学习状态) 此状态下端口不转发数据帧,但是学习MAC地址表,参与计算生成树,接收并发送BPDU。
Forwarding(转发状态) 此状态下端口正常转发数据帧,学习MAC地址表,参与计算生成树,接收并发送BPDU。
  • 当端口正常启用之后,端口首先进入Listening状态,开始生成树的计算过程。
  • 如果经过计算,端口角色需要设置为预备端口(Alternate Port),则端口状态立即进入Blocking;
  • 如果经过计算,端口角色需要设置为根端口(Root Port)或指定端口(Designated Port),则端口状态在等待Forward Delay之后从Listening状态进入Learning状态,然后继续等待Forward Delay之后,从Learning状态进入Forwarding状态,正常转发数据帧。

2. BPDU报文

STP生成树的计算,根端口、指定端口的选举,都是借助BPDU(Configuration Bridge Protocol Data Unit)报文进行信息的传递和交换的。

BPDU报文有两类:配置BPDUTCN BPDU

2.1 配置BPDU

【网络协议详解】——STP技术(学习笔记)_第1张图片

  • 配置BPDU使用标准LLC格式封装在以太网数据帧中。
  • 配置BPDU只在指定端口(Designated Port)上发送。
  • DMAC:目的MAC地址。发送配置BPDU的数据帧使用保留的组MAC地址01-80-C2-00-00-00,此地址标识所有交换机,但是不能被交换机转发,也即只在本地链路有效。
  • LLC Header:目的服务访问点(Destination Service Access Point, DSAP)和源服务访问点(Source Service Access Point, SSAP)的值都设为二进制01000010。Ctrl字段的值设为3。

【网络协议详解】——STP技术(学习笔记)_第2张图片

  • 当STP初始计算选举根交换机时,各个交换机主动生成并发送配置BPDU。
  • 选举结束后,只有根交换机才能主动生成并发送配置BPDU
  • 非根交换机只有在自己的根端口收到配置BPDU报文才能根据收到的报文生成配置BPDU从指定端口发送。

配置内容:
【网络协议详解】——STP技术(学习笔记)_第3张图片

报文标识:

参数 比特数 描 述
Protocol Identifier (协议标识) 16比特 取值0x0000
Protocol Version Identifier (协议版本标识) 8比特 取值0x00
BPDU Type (BPDU类型) 8比特 配置BPDU报文取值0x00
拓扑改变通知BPDU报文取值0x80
Flags (标志) 8比特 配置BPDU报文取值0x00
拓扑改变配置BPDU报文取值0x01
拓扑改变确认配置BPDU报文取值0x80

STP计算:

参数 比特数 描 述
Root Identifier 64比特 当前根交换机的桥ID
Root Path Cost 32比特 发送该BPDU报文的交换机的根路径开销
Bridge Identifier 64比特 发送该BPDU报文的交换机的桥ID
Port Identifier 16比特 发送该BPDU报文的端口ID

时间参数:

参数 比特数 描 述
Message Age 16比特 该BPDU报文从根桥发送到当前交换机的总时间,随时间增长而变大,若达到Max Age,则此配置BPDU被认为已经过期
Max Age 16比特 BPDU报文的最大生命周期,默认取值20s
Hello Time 16比特 交换机发送配置BPDU的报文周期,默认取值2s
Forward Delay 16比特 端口Listening和Learning状态的持续时间,默认取值15s

2.2 TCN BPDU

如果网络拓扑发生了变化,会触发STP 的重新计算,新的生成树拓扑可能会跟原先的网络拓扑存在一定的差异。

在交换机上,指导报文转发的是MAC 地址表,默认的动态表项的生存时间是300 s,此时,数据转发如果仍然按照原有的MAC 地址表,会导致数据转发错误。

为防止拓扑变更情况下的数据发送错误,STP 中定义了拓扑改变消息泛洪机制。

当网络拓扑发生变化的时候,除了在整网泛洪拓扑改变信息外,同时修改MAC 地址表的生存期为一个较短的数值,等拓扑结构稳定之后,再恢复MAC 地址表的生存期。

【网络协议详解】——STP技术(学习笔记)_第4张图片

在向整网泛洪拓扑改变信息的过程中,共涉及三种BPDU:

  1. 拓扑改变通知BPDU:TCN(Topology Change Notification) BPDU。用于非根交换机在根端口上向上行交换机通告拓扑改变信息,并且每隔Hello Time(2秒)发送一次,直到收到上行交换机的拓扑改变确认配置BPDU或者拓扑改变配置BPDU。
  2. 拓扑改变确认配置BPDU:TCAN(Topology Change Acknowledgment Configuration) BPDU。配置BPDU的一种,和普通配置BPDU不同的是此配置BPDU设置了一个Flag位。用于非根交换机在接收到拓扑改变通知BPDU的指定接口上向下行交换机发送拓扑改变通知的确认信息。
  3. 拓扑改变配置BPDU:TCC(Topology Change Configuration) BPDU。此配置BPDU设置了另外一个Flag位。用于从根交换机向整网泛洪拓扑改变信息,所有交换机都在自己所有的指定端口上泛洪此BPDU。

SWA收到SWB发送的拓扑改变通知BPDU之后,每隔2秒向网络中发送拓扑改变配置BPDU(设置了一个Flag位的配置BPDU),使网络中所有的交换机都把MAC地址表的生存期修改为Forward Delay(15秒),经过一段时间(Max Age加上Forward Delay,默认为35秒)之后,SWA(根交换机)在自己发送的配置BPDU中,清除Flag位,表示网络拓扑已经稳定,网络中的交换机恢复MAC地址生存期。

拓扑改变通知BPDU格式:

参数 字节数 内容
2字节 Protocol Identifier 0x0000
1字节 Protocol Version Identifier 0x00
1字节 BPDU Type 0x80

【网络协议详解】——STP技术(学习笔记)_第5张图片
拓扑改变确认配置BPDU和拓扑改变配置BPDU都是配置BPDU的一种,和普通的配置BPDU不同的是:

  • 普通的配置BPDU中Flag字段全部设置为0;
  • 拓扑改变确认配置BPDU将Flag字段的第8位设置为1;
  • 拓扑改变配置BPDU将Flag字段的第1位设置为1。

3. 实验:了解STP生成过程

题目:作为公司的网络管理员,公司的网络使用了两层网络结构,核心层和接入层,在接入层采用了冗余网络,为避免存在的环路问题,决定使用STP 来进行环路控制。

在这里插入图片描述

设备 接口 接口类型 所属VLAN 允许通过VLAN
IOU1 Ethernet 0/0 Trunk ALL
Ethernet 0/1 Trunk ALL
IOU2 Ethernet 0/1 Trunk ALL
Ethernet 0/2 Trunk ALL
Ethernet 0/3 Access VLAN 10 ALL
IOU3 Ethernet 0/1 Trunk ALL
Ethernet 0/2 Trunk ALL
Ethernet 0/3 Access VLAN 10 ALL
设备 接口 IP地址
PC-1 Ethernet 0 192.168.1.1/24
PC-2 Ethernet 0 192.168.1.2/24

实验步骤:
1、交换机基本配置
(1)在IOU1、IOU2、IOU3上创建vlan 10
(2)在IOU1、IOU2、IOU3上配置access口和trunk口

2、PC配置IP地址

3、STP基本配置
(1)在思科二层交换机中,STP是默认开启的。
(2)查看生成树的情况。(根网桥ID、交换机ID、各端口角色)

 IOU1#show spanning-tree
 IOU2#show spanning-tree
 IOU3#show spanning-tree

【网络协议详解】——STP技术(学习笔记)_第6张图片

【网络协议详解】——STP技术(学习笔记)_第7张图片

【网络协议详解】——STP技术(学习笔记)_第8张图片
可以看到,对于IOU3,e0/1为根端口,e0/2为预备(alternative)端口。

(3)测试PC1到PC2的连通性
【网络协议详解】——STP技术(学习笔记)_第9张图片

(4)关闭IOU3的e0/1口,再次查看生成树的情况

IOU3(config)#int e0/1
IOU3(config)#shutdown

【网络协议详解】——STP技术(学习笔记)_第10张图片

【网络协议详解】——STP技术(学习笔记)_第11张图片

【网络协议详解】——STP技术(学习笔记)_第12张图片

(5)再次测试PC1到PC2的连通性
【网络协议详解】——STP技术(学习笔记)_第13张图片

(6)重新打开IOU3的e0/1口,更改IOU3的优先级,使其成为根网桥

IOU3(config)#spanning-tree vlan 1 priority 4096

(7)再次查看生成树的情况
【网络协议详解】——STP技术(学习笔记)_第14张图片
【网络协议详解】——STP技术(学习笔记)_第15张图片
【网络协议详解】——STP技术(学习笔记)_第16张图片


❗ 转载请注明出处
作者:HinsCoder
博客链接: 作者博客主页

你可能感兴趣的:(TCP/IP网络协议原理与分析,网络协议,学习,笔记,网络,经验分享)