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

目录

STP的由来

STP的术语

桥(Bridge)

桥的MAC地址(Bridge MAC Address)

桥ID(Bridge Identifier,BID)

端口ID(Port Identifier,PID)

​编辑BPDU报文

STP的端口角色和端口状态

根端口(Root Port)

指定桥(Designated Bridge)与指定端口(Designated Port)

端口状态

STP的定时器

Hello Time

Forward Delay

Forward Delay Timer

树的基本理论

生成树的生成过程

实验操作

组网需求

配置文件


STP的由来

 为了解决冗余链路引起的问题,IEEE通过了IEEE 802.1d协议,即生成树协议(Spanning Tree Protocol,STP)。IEEE 802.1d协议通过在交换机上运行一套复杂的算法,使冗余端口置于“阻塞状态”,使得网络中的计算机在通信时只有一条链路生效,而当这个链路出现故障时,IEEE 802.1d协议将会重新计算出网络的最优链路,将处于“阻塞状态”的端口重新打开,从而确保网络连接稳定可靠。

STP的术语

桥(Bridge)

因为性能方面的限制等因素,早期的交换机一般只有两个转发端口,所以那时的交换机常常被称为“网桥”,或简称“桥”。在IEEE的术语中,“桥”这个术语一直沿用至今,但并不只是指只有两个转发端口的交换机了,而是泛指具有任意多个端口的交换机。

桥的MAC地址(Bridge MAC Address)

一个桥有多个转发端口,每个端口有一个MAC地址。通常,交换机会把端口编号最小的那个端口的MAC地址作为整个桥的MAC地址。

桥ID(Bridge Identifier,BID)

一个桥(交换机)的桥ID由两部分组成,前面2字节是这个桥的桥优先级,后面6字节是这个桥的MAC地址。桥优先级的值可以手动设置,其默认值为0x8000(相当于十进制的32768)。

IEEE 802.1d标准中规定BID是由桥优先级(Bridge Priority)与桥MAC地址构成。BID桥优先级占据高16位,其余的低48位是MAC地址。

端口ID(Port Identifier,PID)

第一种:端口ID由两个字节组成,第一个字节是该端口的端口优先级,后一个字节是端口编号。

第二种:端口ID由16个比特组成,前4个比特是该端口的端口优先级,后12比特是该端口的端口编号。

BPDU报文

STP采用的协议报文是BPDU(Bridge Protocol Data Unit),也称为配置消息。STP通过在设备间传递BPDU报文来确定网络的拓扑结构,并完成生成树的计算。BPDU报文被封装在以太网数据帧中,目的MAC是组播MAC:01-80-C2-00-00-00。

STP的端口角色和端口状态

端口角色:根端口和指定端口

根端口(Root Port)

根端口就是去往根桥路径开销最小的端口,根端口负责向根桥方向转发数据,这个端口的选择标准是依据根路径开销判定。很显然,在一个运行STP协议的设备上根端口有且只有一个,根桥上没有根端口。

指定桥(Designated Bridge)与指定端口(Designated Port)

分类

指定桥

指定端口

对于一台设备而言

与本机直接相连并且负责向本机转发配置消息的设备

指定桥向本机转发配置消息的端口

对于一个局域网而言

负责向本网段转发配置消息的设备

指定桥向本网段转发配置消息的端口

端口状态

运行STP协议的设备的端口存在5种端口状态,如表1所示。

表1 STP端口状态

端口状态

说明

Disabled

端口状态为Down,不处理BPDU报文,也不转发用户流量。

Listening

过渡状态,开始生成树计算,端口可以接收和发送BPDU,但不转发用户流量。

Learning

过渡状态,建立无环的MAC地址转发表,不转发用户流量。

Forwarding

端口可以接收和发送BPDU,也转发用户流量。只有根端口或指定端口才能进入Forwarding状态。

Blocking

端口仅仅接收并处理BPDU,不转发用户流量。

  1. 端口Up或使能了STP,会从Disabled状态进入到Blocking状态。
  2. 端口被选举为根端口或指定端口,会进入Listening状态。
  3. 端口的Forward Delay定时器超时,会进入Learning/Forwarding状态。
  4. 端口不再是根端口或指定端口时,会进入Blocking状态。

STP的定时器

Hello Time

运行STP协议的设备发送配置BPDU的时间间隔。设备每隔Hello Time时间会向周围的设备发送BPDU报文,以确认链路是否存在故障。

Forward Delay

设备状态迁移的延迟时间。链路故障会引发网络重新进行生成树的计算,生成树的结构将发生相应的变化。不过重新计算得到的新配置消息无法立刻传遍整个网络,如果新选出的根端口和指定端口立刻就开始数据转发的话,可能会造成临时环路。为此,STP采用了一种状态迁移机制,新选出的根端口和指定端口要经过2倍的Forward Delay延时后才能进入转发状态,这个延时保证了新的配置消息传遍整个网络,从而防止了临时环路的产生。

Forward Delay Timer

默认是15秒

树的基本理论

 在一个具有物理环路的交换网络中,交换机通过运行STP,自动生成一个没有环路的逻辑拓扑。该无环逻辑拓扑也称为STP树(STP Tree),树节点为某些特定的交换机,树枝为某些特定的链路。一棵STP树包含了唯一的一个根节点,任何一个节点到根节点的工作路径不但是唯一的,而且是最优的。当网络拓扑发生变化时,STP树也会自动地发生相应的改变。

 简而言之,有环的物理拓扑提高了网络连接的可靠性,而无环的逻辑拓扑避免了广播风暴、MAC地址表翻摆、多帧复制,这就是STP的精髓。

生成树的生成过程

①选举根桥(Root Bridge),作为整个网络的根。

②确定根端口(Root port,RP),确定非根交换机与根交换机链接最优的端口。

③确定指定端口(Designated Port,DP),确定每条链路与根桥连接最优的端口。

④阻塞备用端口(Alternate Port,AP),形成一个无环网络。

实验操作

组网需求

在一个复杂的网络中,网络规划者由于冗余备份的需要,一般都倾向于在设备之间部署多条物理链路,其中一条作主用链路,其他链路作备份。这样就难免会形成环形网络,若网络中存在环路,可能会引起广播风暴和MAC表项被破坏。

当前网络中存在环路,SwitchA、SwitchB、SwitchC和SwitchD都运行STP,通过彼此交互信息发现网络中的环路,并有选择的对某个端口进行阻塞,最终将环形网络结构修剪成无环路的树形网络结构,从而防止报文在环形网络中不断循环,避免设备由于重复接收相同的报文造成处理能力下降。

配置文件

SwitchA的配置文件

#
sysname SwitchA
stp mode stp
stp instance 0 root primary 
stp pathcost-standard legacy
#
return

SwitchB的配置文件

sysname SwitchB   
# 
stp mode stp   
stp bpdu-protection
stp pathcost-standard legacy
#  
interface GigabitEthernet0/0/2   
 stp edged-port enable 

return

SwitchC的配置文件

sysname SwitchC  
#  
stp mode stp 
stp pathcost-standard legacy
stp bpdu-protection
#  
interface GigabitEthernet0/0/1          
 stp instance 0 cost 20000 
#  
interface GigabitEthernet0/0/2     
 stp edged-port enable 
#  
return  

SwitchD的配置文件

sysname SwitchD 
# 
stp mode stp  
stp instance 0 root secondary      
stp pathcost-standard legacy
#   
return 

### 中级网络工程师学习笔记概述 中级网络工程师的学习内容涵盖了广泛的领域,主要包括路由协议、交换技术网络安全以及网络管理等方面的知识。以下是关于中级网络工程师学习的一些核心要点: #### 1. **路由基础知识** 路由命令 `route` 是用于配置 IP 路由表的重要工具之一。例如,在 Linux 或 Unix 系统中,可以通过以下方式添加一条指向某个网络的静态路由: ```bash route add -net 202.112.58.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0 ``` 其中 `-net` 参数表示目标是一个网络而非单一主机[^1]。 #### 2. **透明网桥的工作原理** 透明网桥是一种二层设备,其主要功能是连接多个局域网段并实现数据帧的转发。透明网桥的核心机制在于维护一张 MAC 地址映射表(Address Mapping Table),该表格记录了每个端口所连接的网段及其对应的 MAC 地址。当收到一帧数据时,网桥会查询这张表决定如何转发数据包;如果无法匹配到具体的目的地址,则执行泛洪操作(Flood),即将数据发送至除了接收端口外的所有其他端口[^2]。 为了避免可能产生的环路问题,通常会在大型复杂环境中部署生成树协议(Spanning Tree Protocol, STP)来消除潜在路径循环。 #### 3. **TCP/IP 协议栈详解** 深入理解 TCP/IP 协议族对于成为一名合格的中级网络工程师至关重要。这不仅涉及基础概念如 IPv4/IPv6 的编址方案、子网划分方法论,还包括传输层的服务质量保障措施——比如可靠性的三次握手过程与错误恢复策略等高级话题。 #### 4. **常见动态路由协议比较分析** 掌握 OSPF (Open Shortest Path First), EIGRP (Enhanced Interior Gateway Routing Protocol) 和 BGP(Border Gateway Protocol) 这些主流内部及外部网关协议的特点差异也是考试重点所在。每种协议都有各自适用场景和技术优势,需能够根据不同需求选择合适的解决方案。 #### 5. **防火墙与入侵检测系统的基础架构设计原则** 随着信息安全威胁日益严峻,构建坚固的安全防线成为现代企业不可或缺的一部分。因此了解基于状态监测理论的状态型防火墙工作模式,熟悉 Snort 等开源 IDS(Intrusion Detection System)/IPS(Intrusion Prevention System) 工具的功能特性显得尤为重要。 #### 6. **广域网(WAN) 技术选型指南** 最后还应关注 WAN 领域内的最新进展趋势,像 MPLS(Multiprotocol Label Switching),SD-WAN(Software Defined Wide Area Network) 解决方案的优势对比等内容均属于考察范围之内。 以上只是部分精选主题概览,实际备考过程中建议参照官方教材进行全面复习,并辅以大量实践演练巩固记忆效果。 ```python # Python 示例:模拟简单的 ARP 表更新逻辑 class Bridge: def __init__(self): self.mac_table = {} def learn(self, mac_address, port_number): """Learn and update the MAC address table.""" self.mac_table[mac_address] = port_number def forward_frame(self, destination_mac, incoming_port): """Determine which port to send frame out of based on learned addresses.""" if destination_mac in self.mac_table: outgoing_port = self.mac_table[destination_mac] return f"Forwarding frame to port {outgoing_port}" else: return "Flooding frame to all ports except receiving one" bridge_instance = Bridge() bridge_instance.learn('AA:BB:CC:DD:EE:FF', 1) print(bridge_instance.forward_frame('AA:BB:CC:DD:EE:FF', 2)) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值