switch3 STP、RSTP
- 2020 年 1 月 13 日
- 筆記
1、冗餘網路的問題
1)廣播風暴
2)MAC表震蕩
3)多幀複製
2、STP 802.1d
通過BPDU協議幀發現物理上有環路的拓撲,能夠生成一個邏輯上沒有環路的拓撲
(1)介面選好埠類型(DP、RP)
(2)只有發生變化的鏈路和block口,狀態才變化
(3)F口變化的交換髮出TCN
3、STP 操作流程—->破環
1)STP破環順序
(1)選舉根網橋
(2)選舉RP
(3)選舉DP
(4)其它的就blcok
2)STP破環依據
(1)lowest BID=Priority*mac
(2)lowest root path cost(當前SW到root的cost累加,cost是在接收到BPDU幀時累加) root——–sw:f0/0 (f0/0處累加)
(3)lowest sender bid
(4)lowest sender portid(port priority*port 編號)
(5)lowest portid(自己)
3)STP破環結果
(1)每個交換網路有一個ROOT
(2)每個非ROOT選舉一個RP(離根最近)
(3)每個網段(segment)選舉一個DP(這個網段離根最近port)
(4)根網橋上的所有埠為dp
4)實驗
sw8#sh cdp nei
sw8(config)#spanning-tree vlan 1 啟用STP
sw8(config)#spanning-tree vlan 1 priority 0 設置根網橋
sw8(config)#spanning-tree vlan 1 root primary 設置根網橋 -8k
SW14(config)#spanning-tree vlan 1 root secondary 設置根網橋 -4k
SW14(config-if)#spanning-tree vlan 1 cost 39 在入口方向修改
SW14(config-if)#spanning-tree vlan 1 port-priority ?
<0-240> port priority in increments of 16表示必須是16的倍數
4、BPDU
1)有二種:配置BPDU、TCN
2)結構
Protocol Identifier: Spanning Tree Protocol (0x0000)
Protocol Version Identifier: Spanning Tree (0)
BPDU Type: Configuration (0x00) 還有一種TCN
BPDU flags: 0x00 有二種:TC和TCA (第一位和最後一位)
Root Identifier: 32768 / 00:04:c1:6c:e4:80 根
Root Path Cost: 19
Bridge Identifier: 32769 / 00:0f:24:b5:a1:00 發送者
Port identifier: 0x800b
Message Age: 1 每經過一個交換機age+1
Max Age: 20 接收BPDU幀的老化時間
Hello Time: 2
Forward Delay: 15 有二個 listen learning
3)收斂時間
(1) link up———>blcok—->listening–15sec->learning–15–>forwarding
收發BPDU 收/不發 能 能 能
學習MAC 不 不能 能 能
收發數據 不 不能 不能 能
listening:構建一個沒有環路的拓撲
learning :學習MAC
(2)穩定後變化收斂
發送TCN(F->變化)—>上游回TCA—>root發TC置位配置BPDU—-> 通告其它SW儘快刷新MAC(300->15)
5)注意
Forwarding介面有變化的鏈路才開始發TCN包給root
5、Cisco一些快速收斂機制
1)portfast
作用:連接終端PC可以從up馬上跳到forwarding
節省:30sec
配置:連接終端PC的交換機上
sw8#debug spanning-tree events
00:55:23: STP: VLAN0001 Fa0/24 -> listening
00:55:38: STP: VLAN0001 Fa0/24 -> learning
00:55:53: STP: VLAN0001 Fa0/24 -> forwarding
sw8(config-if)#int f0/24
sw8(config-if)#spanning-tree portfast
00:57:31: STP: VLAN0001 Fa0/24 ->jump to forwarding from blocking
sw8(config)#spanning-tree portfast default
sw8(config-if-range)#spanning-tree portfast disable
2)uplinkfast
作用:直接鏈路失效,馬上會切到備份鏈路上
優先順序 +16k cost+3000
節省:30sec
配置:接入層交換機
sw15(config)#spanning-tree uplinkfast
01:03:21: setting bridge id (which=1) prio 49153 prio cfg 49152 sysid 1 (on) id
C001.0012.5552.9b40
sw15#sh spanning-tree uplinkfast
sw15(config)#spanning-tree uplinkfast max-update-rate
刷新新鏈路對面交換機的MAC表
ping 測試
…
沒有配置uplinkfast
……………
3)backbonefast
作用:間接鏈路失效檢測從block口收到root bpdu,往rp發rlq—>root響應—>收到響應就把
blcok轉到listen
節省:20sec
配置:(所有都需要)
sw8(config)#spanning-tree backbonefast
sw15(config)#spanning-tree backbonefast
sw15(config)#spanning-tree backbonefast
…………….
6、RSTP 802.1W
1)埠狀態及角色
discarding(block+listening)—->learning—->forwarding
RP、DP、alternative port、backup port、edge port=portfast
2)數據結構變化
flag位全用上
proposal agreement 收斂快的原因
狀態: learning forwarding
角色:4種
3)RSTP收斂快的原因
(1)主動P/A協商:先發proposal—->同步其它port—>agreemnet 逐層同步
(2)網路發生變化,TCN會往RP/DP發
(3)CAM刷新收到TCN刷新MAC表
(4)每個SW都可以發送BPDU keepalive
4)配置RSTP
sw8(config)#spanning-tree mode rapid-pvst
7、mstp 多實例生成樹
pvst:每個vlan一個生成樹實例可以做load-balance 但是協議數據太多
cst:所有vlan一個生成樹實例 不可以做load-balance
mst:x個vlan一個生成樹實例後台收斂是採用rstp 可以load-balance,又儘可能減少協議數據
stp:傳統的收斂
RSTP:快速收斂
2)MST實現
名字
修訂號
vlan綁定表
———>三個參數完全相同才是同一個區域
SW4(config)#spanning-tree mst configuration
SW4(config-mst)#name chuyue100
SW4(config-mst)#revision 1
SW4(config-mst)#instance 1 vlan 1-2
SW4(config-mst)#instance 2 vlan 3-4
SW4(config)#spanning-tree mode mst //啟用MST
SW4(config-if)#spanning-tree mst 2 ?
cost 修改開銷(入口)
port-priority 發送方修改
SW4(config)#spanning-tree mst 1 root primary
3)MST和其它STP的兼容性
mst0=IST
MST域與PVST交互時是使用MST0,可以把整個MST域看作一台交換機
8、以太通道
1)優點
load-balance
redundency
2)形成channel的方法
手工設置:
動態協商
SW3(config-if-range)#channel-group 1 mode ?
active LACP主動發包
auto PAgP 被動響應//cisco私有
desirable PAgP主動發包
on 手工設置
passive lacp被動響應
SW4#sh etherchannel summary
SW3(config-if-range)#channel-group 1 mode active
SW4(config-if-range)#channel-group 3 mode passive
3)etherchanmel類型
二層channel
三層channel
SW3(config)#int range f0/46 ,f0/48(華為的需要連續介面)
SW3(config-if-range)#no sw (要先先變成三層口,捆綁口變的話會無效)
SW4(config-if-range)#channel-group 1 mode auto
SW3(config)#int port-channel 1
SW3(config-if)#ip add 1.1.1.3 255.255.255.0
4)注意點
(1)雙工速率
(2)不可以是span目標埠
5)load-balance方法
SW3#sh etherchannel load-balance
Source MAC address
SW3(config)#port-channel load-balance ?3550
dst-mac Dst Mac Addr
src-mac Src Mac Addr
SW4(config)#port-channel load-balance ? 3560
dst-ip Dst IP Addr
dst-mac Dst Mac Addr
src-dst-ip Src XOR Dst IP Addr
src-dst-mac Src XOR Dst Mac Addr
src-ip Src IP Addr
src-mac Src Mac Addr
9、STP安全相關
1)bpduguard
作用:防止接收到BPDU,如果收到馬上將埠置於err-disable=down,應用於連接PC的埠
配置:SW4(config-if)#spanning-tree bpduguard enable
sw4#sh int f0/22
FastEthernet0/22 is down, line protocol is down (err-disabled)
恢復: shut-no sh
sw4(config)#errdisable recovery cause bpduguard
sw4(config)#errdisable recovery interval 30
sw4#sh errdisable
sw4(config)#spanning-tree portfast bpduguard default 全局啟用
2)bpdufilter(優先於bpduguard)
作用:防止接收到BPDU,如果收到就drop
配置:sw4(config-if)#spanning-tree bpdufilter enable
3)rootguard
作用:防止別的SW成為根,如果收到更優的BPDU,就會將埠置為broken
但是如果又沒收到更優的BPDU,又會恢復
配置:sw4(config-if)#spanning-tree guard root
4)loopguard
作用:防止單向通
配置:所有鏈路配置,RP和AP埠
sw4(config-if)#spanning-tree guard loop
5)udld //光纖
作用:防止單向通
配置:SW3(config)#udld enable udld enable
應用:loopguard針對的是軟體問題,udld一般針對的是硬體問題