生成树协议原理及配置
Root
A
Port1
B
Port2
(RP) Port1 0+19=19
Port2 19+19=38 19<38
C
STP算法的过程
– 第三步,选择指定端口(Designated Port),所有物理网段 都会选出到根交换机最近的端口为指定端口。 三个网段将会 选出三个DP。
Root
DP
网段1
A
B
DP
网段2 网段3
Root 100M 10M 100M
•Leabharlann •100M100M
STP算法的过程——选择根端口(一)
根交换机A发送Root path cost=0的BPDU,B从port1收到后将port1端口的路 径耗费值与收到的BPDU的Root path cost相加,得到的值作为B发给其它端口 BPDU的Root path cost值
15秒
Max Age
BPDU经过的最大跳数
20
2×(FORWARD TIME – 1s)>= MAX AGE >=2×(HELLO TIME+1s)
STP算法的过程——拓扑改变
TCN(Topology Change Notification)报文传播
Root
Topology Change Notification Topology Change Acknowledge Topology Change
12bit全0=步进值4096
STP算法的过程
– 第一步,需要选举出一个根交换机,达 到全网公认某台交换机是根交换机。
Root
STP算法的过程——选举根交换机(一)
启动时,所有交换机假定自己就是根交换机,发出的BPDU中Root ID=Bridge ID。
Bridge ID=32768.0000-0000-0001 Root ID=32768.0000-0000-0001 Bridge ID=32768.0000-0000-0003 Root ID=32768.0000-0000-0003 BPDU
Disabled
Blocking Listening
Learning
Forwarding
STP算法的过程——定时器
在根交换机中配置的下列三个参数将决定所有非根交换机的对应参数。
定时器 Hello Time 主要目的 根交换机发送配置BPDU之间的时间间隔 默认值 2秒
Forward Delay
侦听和学习状态的持续时间
Port ID:指定端口的ID,由指定端口的优先级和端口 编号组成;
BPDU帧主要字段含义
MessageAge: BPDU的生存期; MaxAge :BPDU的最大生存期; HelloTime :BPDU发送的周期; ForwardDelay :端口状态迁移的延时。
BPDU帧主要字段含义
交换机优先级的参数由来
STP算法的过程
– 第二步,每一台非根的交换机必须选择出根端口— —到根交换机路径耗费最低的端口。
Root Root port(RP)
A
B
Root port(RP)
C
STP算法的过程——交换机根路径费用
交换机根路径费用
• 路径费用:和每一个端口相关,它是 MAC帧通过该端口传送到LAN的费 用。两个标准802.1D(1998)和 802.1T(2001) 根路径费用:对任何一个网桥,一定 存在一条总费用最低的到达根网桥的 路径,该路径总的费用为该网桥的根 路径费用。 根端口:网桥所有端口中,通过某个 端口到达根网桥的路径总费用最低, 那么该端口就是该网桥的根端口。如 果这样的端口不止一个,就选择端口 标识符最小的那个端口作为该网桥的 根端口。
port2 port1:0000.0000.0001 port2:0000.0000.0002 MAC address table
PC1
PC2
0000.0000.0001
0000.0000.0002
环路的产生和影响
连接存在环路时发送以下数据帧产生循环 目的MAC为广播地址 目的MAC为组播地址 目的MAC不匹配地址表
RSTP的改进
• RSTP(快速生成树)是从STP演化而来的, 基本思想一样 • 当交换网络拓扑结构发生变化时, RSTP可以 更快地恢复网络的连通性
• RSTP只有3种端口状态,具备STP的所有功能
RSTP的改进
加快收敛速度RSTP所作的3点重要改进 •为根端口和指定端口设置了快速切换用的替换端口 (Alternate Port) 和备份端口(Backup Port)两种角色, 当根端口/指定端口失效的情况下,替换端口/备份端口就会 无时延地进入转发状态。
0<19
网段1
Bridge ID=32768.0000-0000-0003 Cost=19 BPDU
B
DP
网段3
0<19 DP C
19=19,但C的BridgeID小 Bridge ID=32768.0000-0000-0002
STP算法的过程——端口状态
所有RP端口和DP端口状态全都置为forwarding,具有交换机 端口所有功能;既不是RP也不是DP的端口被称为Nondesignated Port(NDP),状态置为blocking,只能收发BPDU。
BPDU帧payload包含内容
字节数 2 1 1 1 8 4 字段内容 Protocol ID Version=0 Message type=0 Flags Root ID Root path cost
8
2 2 2 2 2
Bridge ID
Port ID Message age Max age Hellotime Forward delay
DP C
STP算法的过程——选择指定端口
若从某端口收到的所有BPDU里cost值都比自己从这个端口发出的BPDU cost 值大,即本端口是这个网段BPDU里cost最小的,那么本端口就是该网段的 DP;若最小值有两个以上,则比较Bridge ID,较小者成为该网段的DP。
Root
A DP
网段2
Cost=0 BPDU
课程内容
生成树产生的背景
交换机二层转发基本原理 环路的产生和影响 解决方案——生成树协议STP
STP、RSTP协议原理 MSTP协议原理 生成树配置和排错
交换机二层转发基本原理
接收——从收到的数据帧自动学习源MAC,加入地址表 转发——根据目的MAC查地址表,从对应端口发出
To PC1
port1
•点对点链路中,指定端口只需与下游网桥进行一次握手就 可以无时延地进入转发状态
•可人工设置直接与终端相连的端口为边缘端口,直接进入 转发状态
RSTP-点对点链路握手
• 当一个端口被选为指定端口之后,如果是点对 点链路,即该指定端口的对端只有一个端口, 这个指定端口先发出proposal请求,对端的网 桥在条件满足的时候会发出agreement应答, 指定端口接收到这个agreement应答之后就可 以Forwarding了。
A
BPDU
B
C
Bridge ID=32768.0000-0000-0002 Root ID=32768.0000-0000-0002
STP算法的过程——选举根交换机(二)
B和C收到A的BPDU后,将其中Root ID与本机Root ID比较,由于A的值最小,所以B 和C将Root ID修改为A,ABC的BPDU的RootID达成一致,A成为唯一根交换机
收到TC报文的交换机将在除收到TC报文的所有其他端口清MAC表
STP存在的问题
STP存在的问题
! !
端口从阻塞状态进入转发状态必须经历 两倍的Forward Delay时间,所以网络 拓扑结构改变之后需要至少两倍的 Forward Delay时间,才能恢复连通性
如果网络中的拓扑结构变化频繁,网络 会频繁地失去连通性,这样用户就会无 法忍受
Root
A
forwarding
forwarding
forwarding blocking
B NDP
forwarding
forwarding
C 到此,生成树就稳定下来了
STP算法的过程——端口状态
状态 功能 该端口不能运行,因为设备故障或者网络管理员的操作而 导致。 所有没有插线的端口,均为Disabled,选为禁用的端口, 其状态也为Disabled。 端口只能发送和接收BPDU。 设置了一个定时器而且端口正在静静地等待一段时间 Forward Delay,以使其它交换机能够发现新的拓扑结构, 端口继续接收和发送BPDU。 Listening 时间过后,定时器被重新设置为Forward Delay, 端口开始学习MAC地址信息,并将其添加到过滤数据库中, 端口继续发送和接收BPDU。 端口已准备好接收和转发帧,端口继续学习添加到过滤数 据库中的MAC地址信息,并且能够发送和接收BPDU。
Root Cost=0 BPDU Port1
0+19=19
A
B
Port2
Port1
C
Port2
STP算法的过程——选择根端口(二)
C交换机两个端口port1和port2都收到了BPDU,各自端口耗费+各自收到 BPDU的cost,哪个端口算出来的值小哪个就是RP;若相同则比较端口优先 级,小的是RP;还相同则比较端口号,小的是RP。
RSTP与STP端口状态对比
STP端口状态 Disabled Blocking Listening Learning Forwarding Learning Forwarding Discarding RSTP端口状态 该端口是否包含在 活动拓扑中? 该端口是否学习 MAC地址?