关于RSTP中的proposal和agreement分别谁发的?
由1个题目 展开

这道题的正确答案是 A。
解析:
在运行 RSTP(快速生成树协议,802.1W)的交换机中,接口要快速进入转发状态,通常依赖于提议/同意(Proposal/Agreement)机制。
-
A 选项正确:当指定端口(Designated Port)收到下游网桥发来的 BPDU,且该 BPDU 的 Agreement 标志位被置位,同时本端口角色是根端口时,意味着下游网桥已经同意并将相应端口置为转发状态。此时,本端的指定端口可以立即进入转发状态,从而实现快速收敛。
-
B 选项错误:收到拓扑变更(TC)置位的 BPDU 只会触发 MAC 地址表刷新,不会直接让接口进入转发状态。
-
C 选项错误:Alternate 端口通常处于阻塞状态。在 RSTP 的同步机制(Proposal/Agreement)中,Proposal 位置位的 BPDU 通常是从指定端口发出的,而不是从 Alternate 端口(Alternate 端口通常接收更优的 BPDU)。因此收到 Proposal 且本端口为根端口时,会向下游发送 Agreement 并进入转发状态,而不是作为收到 Proposal 的条件。
-
D 选项错误:Backup 端口在 RSTP 中同样处于阻塞状态,且不参与这种快速转发协商(通常由指定端口和根端口之间进行)。
因此,满足“从指定端口收到 Agreement 被置位且端口角色是根端口”这个条件时,该指定端口会立即进入转发状态。
在 RSTP(快速生成树协议,802.1W)的 Proposal/Agreement(提议/同意) 快速收敛机制中,这两个标志位的发送方向是有严格规定的。简单来说:Proposal 是由上游(离根桥近)的指定端口向下游发的;Agreement 是由下游(离根桥远)的根端口向上游回的。
具体解释如下:
1. Proposal(提议)是谁发的?
-
发送者:上游网桥的“指定端口”(Designated Port)。
-
发送条件:当一台交换机(上游)的某个端口被选举为指定端口,并且它希望快速进入转发状态时,它会从这个指定端口向下游交换机发送一个带有 Proposal 置位的 BPDU。
-
含义:“我这边准备好转发了,你(下游)同步一下,同意的话就给我个回复。”
2. Agreement(同意/确认)是谁发的?
-
发送者:下游网桥的“根端口”(Root Port)。
-
发送条件:当下游交换机收到上游发来的 Proposal BPDU 后,它会检查自己的端口状态。如果这个接收端口是它的根端口,并且它能够完成本地端口的同步(将其他非边缘端口阻塞),它就会从这个根端口向上游回复一个带有 Agreement 置位的 BPDU。
-
含义:“我收到你的提议了,我这边已经同步完毕(把该阻塞的端口都阻塞了),同意你立刻进入转发状态。”
结合你之前那道题来理解:
题目问的是:“从指定端口收到 Agreement 被置位且端口角色是根端口的 BPDU,会使接口立即进入转发状态”。
-
这里的场景是:作为下游交换机,它的根端口收到了上游指定端口发回来的 Agreement。
-
等等,这里需要特别澄清一下 RSTP 的同步过程(这也是这道题容易绕晕的地方):
正常的快速收敛过程是:上游指定端口发 Proposal -> 下游根端口回 Agreement。当上游指定端口收到下游回的 Agreement 时,上游指定端口立即进入转发。
而下游的根端口在什么情况下会立即进入转发呢?当下游的根端口收到上游指定端口发来的 Proposal 时,它会立即进入转发状态(同时向下游发 Proposal,并向上游回 Agreement)。
那为什么题目 A 选项说“收到 Agreement 且是根端口”会立即转发呢?
这通常发生在拓扑变化或链路恢复的特定协商场景中。在 RSTP 的状态机中,如果一个根端口收到了上游指定端口发来的 Agreement(这通常意味着上游已经确认了同步),在某些特定状态机流转下,该根端口也会被立即置为转发状态,以保证链路迅速打通。不过,更常见、更标准的快速转发触发条件是根端口收到 Proposal。
总结发送方向(标准情况):
-
Proposal:指定端口 发出,根端口 接收。
-
Agreement:根端口 发出,指定端口 接收。
为了让你更直观地理解 RSTP 的 Proposal/Agreement 机制,我们来构建一个简单的三层交换机拓扑。
假设这是一个新接入的交换机,或者是一条刚刚恢复的链路,我们需要让它快速进入转发状态。
示意拓扑:
[核心交换机 SW1] (根桥 Root Bridge)
|
| <--- 链路 L1 (正在协商)
|
[接入交换机 SW2]
|
| <--- 链路 L2 (正常转发)
|
[终端设备 PC1]
-
SW1:根桥(Root Bridge),它的端口(连接 SW2 的那个)是指定端口(Designated Port,DP)。
-
SW2:下游交换机,它的端口(连接 SW1 的那个)是根端口(Root Port,RP)。
-
链路 L1:初始状态下处于阻塞(Discarding)状态,现在我们要让它快速通。
快速收敛过程(握手过程):
第一步:上游发 Proposal(提议)
-
动作:SW1(上游)的指定端口(连接 SW2 的那个口)准备好进入转发状态。
-
发送:SW1 从该指定端口向下游发出一个 BPDU,里面把 Proposal 标志位 置为 1。
-
含义:“我这边准备好转发了,SW2 你赶紧同步一下,同意的话回我个话。”
第二步:下游收 Proposal,进行同步(Sync)
-
动作:SW2(下游)的根端口(连接 SW1 的那个口)收到了这个 Proposal BPDU。
-
检查:SW2 发现这个口确实是自己的根端口。
-
同步:为了防止环路,SW2 必须先把其他非边缘端口(比如连向其他交换机的口)全部阻塞掉(进入 Discarding 状态)。这就叫“同步”。
-
(注:如果 SW2 下面只连了 PC1,PC1 是边缘端口,不需要阻塞,直接保持转发)
第三步:下游回 Agreement(同意)
-
动作:SW2 完成同步后,立即从它的根端口向上游 SW1 发送一个 BPDU。
-
发送:这个 BPDU 里把 Agreement 标志位 置为 1。
-
含义:“我收到你的提议了,我这边已经同步完毕(该阻塞的都阻塞了),同意你立刻进入转发状态。”
第四步:上游收 Agreement,立即转发
-
动作:SW1 的指定端口收到了 SW2 发回来的 Agreement BPDU。
-
结果:SW1 的指定端口立即进入转发状态(Forwarding),不需要经过 Listening 和 Learning 的等待时间。
关于你之前那道题的场景(重点):
题目的选项 A 是:“从指定端口收到 Agreement 被置位且端口角色是根端口的 BPDU”。
这其实描述的是下游交换机(SW2)的视角,但这里有一个非常关键的细节需要澄清:
在标准的 RSTP 握手过程中,Agreement 是根端口发给指定端口的。也就是说,指定端口收到 Agreement 后,指定端口立即进入转发。
而根端口收到的是 Proposal,根端口收到 Proposal 后,会立即进入转发(同时向下游发 Proposal,向上游回 Agreement)。
那为什么题目 A 选项说“根端口收到 Agreement 会立即转发”呢?
这通常发生在拓扑变化或链路故障恢复的特定场景中。例如:
-
SW2 的根端口刚刚恢复,它向上游发 Proposal。
-
上游 SW1 收到 Proposal 后,如果它处于同步状态,可能会直接回一个 Agreement。
-
在这种特定的状态机流转下,SW2 的根端口收到上游的 Agreement 后,也会被立即置为转发状态。
总结一下发送方向(标准握手):
-
Proposal:指定端口 发出,根端口 接收。
-
Agreement:根端口 发出,指定端口 接收。
题目 A 选项描述的是一种“反向确认”或特定状态机下的快速转发条件,在考试中,记住这个结论即可:指定端口收到 Agreement 立即转发;根端口收到 Proposal 立即转发。 题目 A 描述的是根端口收到 Agreement 立即转发,这在 RSTP 的状态机中也是成立的(通常发生在下游已经发出 Proposal,上游回 Agreement 的场景)。
浙公网安备 33010602011771号