STP生成樹協議筆記之(一) : 背景和原理
什么是STP協議
STP協議(Spanning Tree Protocol,生成樹協議)是根據IEEE 802.1D 標准建立的,用於在局域網中消除數據鏈路層物理環路的協議。運行該協議的設備通過彼此交互信息發現網絡中的環路,並有選擇的對某些端口進行阻塞,最終將環路網絡結構修剪成無環路的樹型網絡結構,從而防止報文在環路網絡中不斷增生和無限循環,避免設備由於重復接收相同的報文所造成的報文處理能力下降的問題發生。
產生的背景
隨着局域網規模的不斷擴大,越來越多的交換機被用來實現主機之間的互連。如果交換機之間僅使用一條鏈路互連,則可能會出現單點故障,導致業務中斷。為了解決此類問題,交換機在互連時一般都會使用冗余鏈路來實現備份。如下圖所示

冗余鏈路雖然增強了網絡的可靠性,但是也會產生環路,而環路會帶來一系列的問題,繼而導致通信質量下降和通信業務中斷等問題。
環路產生的問題主要有:廣播風暴和MAC地址震盪。
廣播風暴

主機A向外發送了一個單播幀。假設此單播幀的目的MAC地址在網絡中所有交換機的MAC地址表中都暫時不存在。SWB接收到此幀后,將其轉發到SWA和SWC。
根據交換機的轉發原則,如果交換機從一個端口上接收到的是一個廣播幀,或者是一個目的MAC地址未知的單播幀,則會將這個幀向除源端口之外的所有其他端口轉發(泛洪)。如果交換網絡中有環路,則這個幀會被無限轉發,此時便會形成廣播風暴,網絡中也會充斥着重復的數據幀。
SWB,SWA和SWC也會將此幀轉發到除了接收此幀的其他所有端口,結果此幀又會被再次轉發給SWB,這種循環會一直持續,於是便產生了廣播風暴。交換機性能會因此急速下降,並會導致業務中斷。
MAC地址表震盪

交換機是根據所接收到的數據幀的源地址和接收端口生成MAC地址表項的。
(1)主機A向外發送一個單播幀,假設此單播幀的目的MAC地址在網絡中所有交換機的MAC地址表中都暫時不存在。SWB收到此數據幀之后,在MAC地址表中生成一個MAC地址表項:
| SWB的MAC地址表 |
|
| MAC地址 |
端口 |
| 00-05-06-07-08-AA |
GE0/0/3 |
將其從G0/0/1和G0/0/2端口轉發。此例僅以SWB從G0/0/1端口轉發此幀為例進行說明。
(2)SWA接收到此幀后,由於MAC地址表中沒有對應此幀目的MAC地址的表項,所以SWA會將此幀從G0/0/2轉發出去。
(3)SWC接收到此幀后,由於MAC地址表中也沒有對應此幀目的MAC地址的表項,所以SWC會將此幀從G0/0/2端口發送回SWB,也會發給主機B。
(4)SWB從G0/0/2接口接收到此數據幀之后,會在MAC地址表中刪除原有的相關表項,生成一個新的表項:
| SWB的MAC地址表 |
|
| MAC地址 |
端口 |
| 00-05-06-07-08-AA |
GE0/0/3 |
| 00-05-06-07-08-AA |
GE0/0/2 |
此過程會不斷重復,從而導致MAC地址表震盪。
STP工作原理
在以太網中,正是因為在需要在局域網中通過冗余鏈路來進行備份,使得二層網絡的環路會帶來廣播風暴,MAC地址表震盪,重復數據幀等問題,為解決交換網絡中的環路問題,提出了STP。
STP通過阻塞端口來消除環路,並能夠實現鏈路備份的目的。

STP的主要作用:
消除環路:通過阻斷冗余鏈路來消除網絡中可能存在的環路。
鏈路備份:當活動路徑發生故障時,激活備份鏈路,及時恢復網絡連通性。
STP協議筆記匯總:
STP生成樹協議筆記之(一) : 背景和原理
https://www.cnblogs.com/zylSec/p/14615481.html
STP生成樹協議筆記之(二) : 端口角色選舉STP
https://www.cnblogs.com/zylSec/p/14618328.html
STP生成樹協議筆記之(三) : 協議報文的抓包解析
https://www.cnblogs.com/zylSec/p/14627690.html
STP生成樹協議筆記之(四) : 協議基礎配置
