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一般針對的是硬體問題