生成树协议(STP)

发布于:2024-08-14 ⋅ 阅读:(168) ⋅ 点赞:(0)

  生成树协议(STP,Spanning Tree Protocol)是一种网络协议,旨在防止以太网网络中的环路。网络环路可能导致广播风暴,从而使网络瘫痪。STP通过为网络创建一个无环的逻辑拓扑来解决这个问题。以下是STP的关键概念和工作原理:

STP的基本概念

  1. 根桥(Root Bridge):
      STP算法通过选择一个网络中的根桥(Root Bridge)作为拓扑结构的逻辑中心。根桥是具有最低桥ID的交换机。桥ID由桥优先级和交换机的MAC地址组合而成。
  2. 路径成本(Path Cost):
      路径成本用于确定从交换机到达根桥的最佳路径。STP选择路径成本最低的路径作为网络中的活动路径。
  3. 端口角色:
  • 根端口(Root Port): 每个非根桥都有一个指向根桥的端口,称为根端口。
  • 指定端口(Designated Port): 每个网络段都有一个负责传输流量的端口,称为指定端口。
  • 非指定端口(Non-designated Port): 关闭以防止环路的端口。
  1. 端口状态:
  • 阻塞(Blocking): 不转发数据帧,只接收BPDU(桥协议数据单元)信息。
  • 侦听(Listening): 准备好转发数据帧,并删除旧的MAC地址表项。
  • 学习(Learning): 学习MAC地址并更新MAC地址表。
  • 转发(Forwarding): 转发数据帧。
  • 禁用(Disabled): 端口未参与STP操作。
  1. BPDU结构:
      桥协议数据单元(BPDU,Bridge Protocol Data Unit)是生成树协议(STP)用于交换信息以防止网络环路的关键数据包。BPDU包含关于网络拓扑的信息,帮助交换机决定生成树的结构。
      BPDU数据包有两种类型:配置BPDU和TCN(Topology Change Notification)BPDU。配置BPDU用于交换生成树信息,而TCN BPDU用于通知网络拓扑的变化。
    配置BPDU字段如下:
  • 协议标识符(Protocol Identifier):
    • 长度:2字节
    • 描述:用于标识BPDU属于哪个协议。STP的协议标识符通常为0x0000。
  • 版本(Version):
    • 长度:1字节
    • 描述:指示BPDU的版本号。STP的版本号通常为0。
  • BPDU类型(BPDU Type):
    • 长度:1字节
    • 描述:指示BPDU的类型,配置BPDU的类型值为0x00。
  • 标志(Flags):
    • 长度:1字节
    • 描述:包含标志位,指示拓扑变化(TC,Topology Change)和拓扑变化确认(TCA,Topology Change Acknowledgment)等信息。
  • 根桥ID(Root Identifier):
    • 长度:8字节
    • 描述:包含根桥的优先级和MAC地址。用于标识网络中当前的根桥。
  • 根路径成本(Root Path Cost):
    • 长度:4字节
    • 描述:从当前交换机到根桥的路径成本。用于计算到根桥的最佳路径。
  • 发送桥ID(Bridge Identifier):
    • 长度:8字节
    • 描述:包含发送BPDU的桥的优先级和MAC地址。
  • 端口ID(Port Identifier):
    • 长度:2字节
    • 描述:发送BPDU的端口ID,用于标识交换机上的端口。
  • 消息年龄(Message Age):
    • 长度:2字节
    • 描述:BPDU在网络中存在的时间,用于防止旧的BPDU在网络中循环。
  • 最大老化时间(Max Age):
    • 长度:2字节
    • 描述:BPDU在网络中保留的最长时间。
  • 端口间隔时间(Hello Time):
    • 长度:2字节
    • 描述:交换机发送BPDU的时间间隔,默认值通常为2秒。
  • 转发延迟(Forward Delay):
    • 长度:2字节
    • 描述:端口从侦听状态到学习状态以及从学习状态到转发状态的等待时间。

TCN BPDU字段
  TCN BPDU非常简单,仅包含协议标识符、版本和BPDU类型三个字段,用于通知网络中的拓扑变化。
BPDU的作用

  • 选择根桥: 通过交换BPDU,各交换机决定网络中的根桥。
  • 防止环路: BPDU包含的信息帮助交换机选择适当的端口状态(阻塞、转发等),防止环路。
  • 拓扑变化通知: 当网络拓扑发生变化时,通过TCN BPDU通知其他交换机,促使网络重新计算生成树。

STP的工作原理

  1. 选择根桥:
      所有交换机通过交换BPDU来选举出网络中的根桥。根桥是具有最低桥ID的交换机。
  2. 确定根端口:
      每个非根桥通过计算到根桥的路径成本,选择路径成本最低的端口作为根端口。
  3. 确定指定端口:
      每个网络段选择一个具有最低路径成本的端口作为指定端口。
  4. 阻塞非指定端口:
      STP将其他可能导致环路的端口置于阻塞状态,以防止网络中产生环路。