生成樹協議及應用

生成樹協議(Spanning Tree Protocol,STP),是一種工作在OSI網絡模型中的第二層的通信協議,基本應用是防止交換機冗餘鏈路產生的環路.用於確保以太網中無環路的邏輯拓撲結構.從而避免了廣播風暴,同時具備鏈路的備份功能。

摘要:
1.生成樹背景
2.STP
3.RSTP
4.PVST
5.MSTP

生成樹協議主要是爲了解決因爲環路而形成的網絡風暴和網絡中的冗餘鏈路

STP
工作原理:
STP協議會阻塞冗餘端口,使網絡中的節點在通信時,只有一條鏈路生效(沒有冗餘)
當通信鏈路出現故障時,將處於“阻塞狀態”的端口重新打開,從而保證網絡正常通信
網絡拓撲圖發生變化時 網絡將會重新生成收斂
工作過程
在一個擴展的局域網中參與STP的所有交換機之間通過交換橋協議數據單元BPDU(bridge protocol data unit)來實現;
爲穩定的生成樹拓撲結構選擇一個根橋;
爲每個交換網段選擇一臺指定交換機;將冗餘路徑上的交換機置爲blocking,來消除網絡中的環路。
BPDU的生成和配置
每臺交換機在生成樹最開始都會已自己爲根橋向外發送配置
交換機會保存收到的高優先級的BPDU消息並泛洪,丟棄低優先級的BPDU消息
網絡收斂後 根交換機向外發送BPDU報文 其他交換機對該報文進行配置
BPDU報文

協議ID:該值總爲0。
版本號:STP的版本(爲IEEE 802.1d時值爲0)。
報文類型:BPDU類型(配置BPDU=0,TCN BPDU=80)。
標記域:LSB(最低有效位)=TCN標誌;MSB(最高有效位)=TCA標誌。
根網橋ID:根信息由2字節優先級和6字節ID組成。這個信息組合標明已經被選定爲根網橋的設備標識。
根路徑成本:路徑成本爲到達根網橋交換機的STP開銷。表明這個BPDU從根網橋傳輸了多遠,成本是多少。這個字段的值用來決定哪些端口將進行轉發,哪些端口將被阻斷。
發送網絡橋ID:發送該BPDU的網橋信息。由網橋的優先級和網橋ID組成。
端口ID:發送該BPDU的網橋端口ID。
計時器:計時器用於說明生成樹用多長時間完成它的每項功能。這些功能包括報文老化時間、最大老化時間、訪問時間和轉發延遲。
最大老化時間:網橋將將根橋看做不可用前保留根ID的最大時間。
訪問時間:根網橋連續發送BPDU的時間間隔。
轉發延遲:網橋在監聽學習狀態所停留的時間。
STP使用原則
在一個STP域內選舉一臺唯一的Root Bridge;
比較所有交換機的BID,誰小誰就是Root,選完Root之後只有Root才能週期性的發送BPDU。
在所有非Root之上選舉一個唯一的根端口(RP);
第一步,比較該交換機所有能接收到BPDU的接口的入站方向的Cost of path, 小的獲勝;
第二步,比較第一步取勝的所有接口接收到BPDU的發送者BID,小的獲勝;
第三步,比較第二步取勝的所有接口的發送者Port-ID,小的獲勝。
選完RP之後在所有交換機鏈路兩端選舉一個唯一的指定端口(DP)。
第一步,比較鏈路兩端的接口的發送方向的Cost of path,小的獲勝;
第二步,比較鏈路兩端接口的發送者BID,小的獲勝;
第三步,比較鏈路兩端接口的發送者Port-ID,不過除非在一臺交換機上打環 然後在這兩個端口中選擇DP,否則不會使用此步驟。
STP端口狀態
只能接收BPDU,不能接收或者傳輸數據,不能把MAC地址加入地址表
監聽狀態(Listening)
可以接收和發送BPDU,不能接收或者傳輸數據,不能把MAC地址加入地址表
學習狀態(Learning)
可以發送和接收BPDU,可以學習MAC地址,不能傳輸數據
轉發狀態(Forwarding)
可以發送和接收數據,可以學習MAC地址、發送和接收BPDU
STP拓撲結構變化
由出現鏈路故障的交換機首先發送 拓撲變更報文(TC),沿最短路徑 傳遞,接收到的交換機迴應,直到根交換機爲止。
根交換機向下發送TCN給非根交換機,網絡重新計算STP,從而使網絡重新收斂
重新收斂的時間可能長達50s

RSTP
由於STP太慢了 因此快速生成樹協議RSTP(Rapid Spanning Tree Protocol)在STP基礎上實現了快速收斂,並增加了邊緣端口的概念及保護功能。
RSTP在STP基礎上新增加了2種端口角色:
Backup端口和邊緣端口。通過端口角色的增補,簡化了生成樹協議的理解及部署。Backup端口:由於學習到自己發送的配置BPDU報文而阻塞的端口,指定端口的備份,提供了另外一條從根節點到葉節點的備份通路。邊緣端口:如果端口位於整個交換區域邊緣,不與任何交換設備連接,這種端口叫做邊緣端口。邊緣端口一般與用戶終端設備直接連接。
邊緣端口特點:
邊緣端口會節省30S的延時,端口UP後會立即進入轉發狀態。
邊緣端口的UP/DOWN不會觸發拓撲改變。
邊緣端口收的TC置爲的配置BPDU報文不會將MAC地址的老化時間設置爲15s。
邊緣端口如果收到配置的BPDU報文會馬上變爲一個普通端口,進行STP的收斂邊緣端口也會發送配置BPDU報文。
PA協商不會阻塞邊緣端口。

PVST
PVST(Per-VLAN Spanning Tree)已在每個VLAN上面生成一個樹實例,網絡中的二層環路能夠被識別並消除,保證VLAN不會產生環路。隨之而來的也有缺點
1.由於每個VLAN都需要生成一棵樹,PVST BPDU的通信量將正比於 Trunk的VLAN個數。
2.VLAN越多,維護生成樹的計算量就越大
由於PVST沒有形成標準,各個廠商的並不能直接互通

MSTP
由於傳統生成樹只是解決了單點故障問題,但是缺陷是沒有解決負載分擔,因此多生成樹協議就是爲了解決負載均衡的
在以太網中部署MSTP協議後可實現如下功能:
形成多棵無環路的樹,解決廣播風暴並實現冗餘備份。
多棵生成樹在VLAN間實現負載均衡,不同VLAN的流量按照不同的 路徑轉發。
配置生成樹
PVST 配置步驟:
啓用生成樹 Switch(config)#spanning-tree vlan vlan-list
配置根網橋 Switch(config)#spanning-tree vlanvlan-list root primary |secondary
修改網橋優先級 Switch(config)#spanning-tree vlan vlan-list prioritybridge-priority
修改端口成本 Switch(config)#spanning-tree vlan vlan-list cost cost
修改端口優先級 Switch(config)#spanning-tree vlan vlan-list port-priority priority
配置上行速鏈路 Switch(config)#spanning-tree uplinkfast
配置速端口 Switch(config-if)#spanning-tree portfast
查看生成樹配置 show spanning-tree
查看VLAN 生成樹詳細信息 show spanning-tree vlan vlan-id detail
Eg:
SwitchA#showrunning-config
hostname SwitchA
spanning-tree modepvst
spanning-tree vlan10,30,50 priority 24576
spanning-tree vlan20,40,60 priority 28672
interfaceFastEthernet0/1
switchport trunkallowed vlan 10,30,50
switchport trunkencapsulation dot1q
switchport mode trunk
interfaceFastEthernet0/2
switchport trunkallowed vlan 20,40,60
switchport trunkencapsulation dot1q
switchport mode trunk
!
interface GigabitEthernet0/1
switchport trunk allowed vlan 10,20,30,40,50,60
switchport trunk encapsulation dot1q
switchport mode trunk
!
interface GigabitEthernet0/2
switchport trunk allowed vlan 10,20,30,40,50,60
switchport trunk encapsulation dot1q
switchport mode trunk
SwitchB#show running-config
hostname SwitchB
spanning-tree mode pvst
spanning-tree vlan 20,40,60 priority 24576
spanning-tree vlan 10,30,50 priority 28672
interface FastEthernet0/1
switchport trunk allowed vlan 10,30,50
switchport trunk encapsulation dot1q
switchport mode trunk
!
interface FastEthernet0/2
switchport trunk allowed vlan 20,40,60
switchport trunk encapsulation dot1q
switchport mode trunk
interface GigabitEthernet0/1
switchport trunk allowed vlan10,20,30,40,50,60
switchport trunk encapsulation dot1q
switchport mode trunk
!
interface GigabitEthernet0/2
switchport trunk allowed vlan10,20,30,40,50,60
switchport trunk encapsulation dot1q
switchport mode trunk
Mst 基本配置:
Switch(config)#spanning-tree mode mst #進入mst配置模式
Switch(config)#spanning-tree mst configu
Switch(config-mst)#instance 1 vlan 10,20 #將vlan10、20 放入實例1 中每個實例都會生成一個獨立的生成樹
Switch(config-mst)#revision 1 #配置多生成樹的版本號
Switch(config-mst)#instance 2 vlan 30,40
Switch(config-mst)#revision 1
Switch(config-mst)#exi
Switch(config)#spanning-tree mst 1 root primary #指定交換機爲STP實例1的主備模式
Switch(config)#spanning-tree mst 2 root secondary
Switch(config)#end
SwitchA#showrunning-config
SwitchA(config)# spanningtree mst configuration
SwitchA(configmst)# name region1
SwitchA(configmst)# revision 10
SwitchA(configmst)# instance 1 vlan 10, 30, 100
SwitchA(configmst)# Ainstance 2 vlan 20, 40, 200
SwitchA(configmst)# exit
SwitchA(config)#spanningtree mst 01 root primary
SwitchA(config)#spanningtree mst 2 rootsecondary
SwitchB#showrunning-config
SwitchB(config)# spanningtree mst configuration
SwitchB(configmst)# name region1
SwitchB(configmst)#revision 10
SwitchB(configmst)#instance 1 vlan 10, 30, 100
SwitchB(configmst)#instance 2 vlan 20, 40, 200
SwitchB(configmst)#exit、
SwitchB(config)# spanningtree mst 2 root primary
SwitchB(config)#spanningtreemst 01 root secondary

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章