1. 程式人生 > >思路很重要!不同廠商Spanning-tree對接案例思考

思路很重要!不同廠商Spanning-tree對接案例思考

思路 cisco juniper 生成樹協議

朋友們是否經歷過客戶網絡設備替換割接,如果被替換的設備和新設備不是一個廠商,往往在割接準備過程中會暴露出很多棘手的問題。例如,設備廠商往往有大量的私有協議從而導致了在不同廠商設備之間無法正常互聯互通。如果碰到這種情況你會怎麽做?

我想無外乎以下兩種種可能性:

  1. 修改新設備網絡設計方案,針對目前舊設備做出妥協,從而避免私有協議帶來的網絡故障問題。

  2. 尋找一個共通的標準協議,並把老設備的協議逐步替換成業界標準協議。完成以後再準備替換工作。

但是兩個方案都不是最優方案

方案一雖然實施起來相對容易,縮短工期。但是由於否決最優化組網設計並替換成其他兼容性設計對客戶的網絡會造成深遠的影響。同時也大大增加了後期網絡故障排錯的困難。

方案二長期來說是最好的,但是實施起來費時費力,無形之間增加了項目的人力成本和時間成本。

那麽,在某些特定情況下能否找到第三個方案,通過仔細研究私有協議特性,從而讓兩個廠商的私有協議互聯互通,最終達到和諧相處呢?

答案是肯定的,下面我將以一個實際網絡替換案例,給大家演示如何從發現問題,研究分析問題,到最終解決問題的一套整體思路。希望朋友們能夠從中有所收獲並能舉一反三應用到日常工作中。

網絡割接場景:

某客戶有大量Cisco 二層交換機分布在各個部門樓層,同時也有2臺核心Cisco三層交換機用於路由各個部門樓層之間的三層流量數據。因為年代久遠,容量跟不上現代網絡的發展。因此客戶決定全網替換為Juniper 設備。

根據客戶的要求,我們需要平滑遷移所有業務,盡可能的降低斷網時間。並要求不要對網絡做巨大改動,完成硬件替換就行。這就意味著,新的Juniper設備需要繼承目前Cisco設備的二層三層設計模型。

困難與故障:

由於之前網絡設計原因,兩臺Cisco核心三層交換機是維護著全網的VLAN 信息,並通過VLAN interface路由三層流量。同時全網的管理網段全放在了 Native VLAN 1裏面。所有交換機之間運行Cisco默認的PVST+生成樹協議。

而新安裝的Juniper的EX和QFX系列交換機默認運行RSTP 協議,如果貿然接入Juniper交換機,兩個不同廠商的交換機使用不同的溝通語言,勢必會造成生成樹狀態不一致,從而導致對同一個VLAN而言Cisco交換機阻塞的的端口和Juniper 阻塞的端口不同。另外一個問題是

Cisco為每一個VLAN維護一個STP實例,而Juniper由於RSTP為所有VLAN統一維護一個STP實例,這種情況同樣會造成端口阻塞不一致,從而導致網絡遷移中出現故障。


如下圖所示:在某些情況下,因為運行不同的協議,導致Cisco的spanning-tree生成樹計算結果與Juniper的計算結果不一致,Cisco切斷了左邊端口,而Juniper切斷了右邊的端口。從而在平滑遷移過程中,Cisco和Juniper互聯的臨時線路被Spanning-tree完全阻斷。

技術分享

問題分析:

乍看之下,覺得兩個完全不同的廠商協議,肯定沒法互聯互通。但是如果光憑感覺考慮問題,事情往往最後都會走到死胡同裏。反之,我們應該通過認真的思考並理清思路來考慮如何處理此問題。

仔細考慮後,我個人分析思路如下:

技術分享

有了總體的思維流程圖,那我們就按部就班的來處理問題。

因為本場景客戶使用的為PVST+生成樹模式,所以我們暫不考慮Cisco的其他MSTP和R-PVST+,只有等到PVST+方案的確走不通的情況下,我們再考慮遷移生成樹協議的問題。

剖析PVST+

它是Cisco的私有協議,在原IEEE-802.1D標準的基礎上加上特定擴展屬性修改而來。它也是所有Cisco Catalyst交換機系列的默認生成樹協議。相比標準的RSTP或MSTP,其優勢是為每一個VLAN維護了一個獨立的拓撲結構,並作單獨計算。這樣的話,針對冗余鏈路我們可以通過調整不同VLAN的生成樹優先級從而實現二層幀上的負載均衡。

但是其優勢反過來講卻是弱勢,更多的計算量就意味著更多的CPU資源。同時如上述所說,它是Cisco的私有協議,不具有兼容性。

那麽,光了解上面的信息就夠了麽?肯定不夠。我們需要再深入,在開始下面內容之前,大家回想下,還記得PVST+的數據包格式嗎?它都用什麽機制互相溝通的?

我們知道,在運行PVST+的交換機之間,他們使用BPDU(全名Bridge Protocol Data Unit)數據包來互相溝通,把PVST+看做一個人的話,BPDU就類似他們之間發的email郵件。

那發郵件總得有個[email protected]的地址吧,同樣的BPDU之間溝通也需要一個地址。為了發掘這個地址,讓我們在實驗室來做一個簡單的抓包測試。

#知識學習-實驗室抓包測試環境#

技術分享

如上圖,我們現在有兩臺Cisco Catalyst 交換機,兩臺交換機配置如下:

VLAN 1 (Native)

VLAN 10 (TaggedVLAN)

VLAN20 (TaggedVLAN)

STP模式:PVST+

以下為設備詳細信息:

####接口配置###

SW13#show run inte0/0

interfaceEthernet0/0

switchport trunk encapsulation dot1q

switchport mode trunk

end

###VLAN 配置###

SW13#show vlan brief

VLAN Name Status Ports

------------------------------------ --------- -------------------------------

1 default active Et0/1, Et0/2, Et0/3

10 VLAN0010 active

20 VLAN0020 active

###TRUNK配置###

SW13#show in trunk

Port Mode Encapsulation Status Native vlan

Et0/0 on 802.1q trunking 1

Port Vlans allowed on trunk

Et0/0 1-4094

Port Vlans allowed and active in management domain

Et0/0 1,10,20

Port Vlans in spanning tree forwarding state and not pruned

Et0/0 1,10,20

SW13#

###接口NativeVLAN信息###

SW13#show int e0/0switchport | in Native

Trunking NativeMode VLAN: 1 (default)

AdministrativeNative VLAN tagging: enabled

Administrativeprivate-vlan trunk Native VLAN tagging: enabled

SW13#

###生成樹概況###

SW13#showspanning-tree summary

Switch is in pvst mode

Root bridge for: VLAN0001, VLAN0010, VLAN0020

Extended system ID is enabled

PortfastDefault is disabled

Portfast Edge BPDUGuard Default is disabled

Portfast Edge BPDUFilter Default is disabled

LoopguardDefault is disabled

PVST SimulationDefault is enabled but inactive in pvst mode

BridgeAssurance is enabled but inactive in pvst mode

EtherChannelmisconfig guard is enabled

ConfiguredPathcost method used is short

UplinkFast is disabled

BackboneFast is disabled

Name Blocking Listening LearningForwarding STP Active

------------------------------ --------- -------- ---------- ----------

VLAN0001 0 0 0 4 4

VLAN0010 0 0 0 1 1

VLAN0020 0 0 0 1 1

------------------------------ --------- -------- ---------- ----------

3 vlans 0 0 0 6 6

#知識學習-Wireshark抓包分析#

抓包總覽:

技術分享

單包分析:

####帶VLAN標簽的VLAN (1)BPDU數據包###

技術分享

####不帶VLAN標簽的VLAN1(1) BPDU數據包####

技術分享

VLAN10 以及VLAN20的數據包:

####VLAN 10 BPDU數據包####

技術分享

##VLAN 20 BPDU數據包###

技術分享

通過上面抓包截圖,讓我們先分析VLAN10,VLAN20的BPDU包

這兩個數據包為典型的Cisco PVST+ BPDU數據包。

首先兩個數據包都打上了802.1Q的VLAN標簽。標簽ID就是VLAN ID。

目標MAC地址是01:00:0c:cc:cc:cd,為PVST+ Cisco私有MAC地址。

STP包內容是標準的BPDUConfiguration包。

接著我們回過頭來看看VLAN1的BPDU包,VLAN1的包就有點意思了

大家有沒有註意到,VLAN 1按道理是Native VLAN,那就意味著VLAN 1是肯定不打VLAN 標簽的。但是為什麽發送的BPDU包卻帶了一個VLAN 1的標簽。更神奇的是,VLAN1還同時發送了一個不帶VLAN標簽的BPDU包。

讓我們繼續分析VLAN1這兩BPDU的區別:

帶VLAN標簽的BPDU目標MAC為01:00:0c:cc:cc:cd

而不帶VLAN標簽的BPDU目標MAC卻是01:80:c2:00:00:00。這個MAC地址可是標準的IEEE802.1d 的MAC地址。

說到這裏,我們是否可以發散下思維,做個猜想:既然是標準的IEEE格式MAC地址,那是否VLAN1 可以和其他非Cisco廠商通訊呢? 先把疑問放這裏,我們繼續往下走。


#知識學習-實驗室抓包測試結束#

通過上面的簡單測試,總結如下:

對於Cisco交換機而言。在802.1Q Trunk接口下,STP生成樹的BPDU 目標MAC分為兩種情況:

  1. 對於VLAN ID不等於1的情況下,其目標MAC地址為Cisco 私有的PVST+ MAC 01:00:0c:cc:cc:cd

  2. 如果VLAN ID為VLAN 1,則會發送兩個版本的BPDU:

  3. 1.一個為帶上802.1Q的VLAN ID=1的BPDU包,其目標MAC地址為PVST+ MAC 01:00:0c:cc:cc:cd

  4. 2.另外一個為不帶VLAN標簽的數據包目標MAC是01:80:c2:00:00:00,其為標準的IEEE 802.1D格式。

Juniper設備STP協議分析

完成Cisco的剖析以後,讓我們來看看Juniper都支持什麽STP生成樹協議,看看有什麽協議工具能夠供我們使用的。

MSTP多生成樹:

無論Cisco或者Juniper,兩者都是基於IEEE 802.1s協議開發。MSTP通過在不同區域維護不同的生成樹實例,並映射相應的VLAN到對應的實例。其目標MAC地址為:01:80:c2:00:00:00。

RSTP快速生成樹:

增強版的STP生成樹,RSTP大大加速了網絡收斂時間,從原來的STP 50秒到6秒左右。RSTP裏面定義了大量新的端口角色。其目標MAC地址為:01:80:c2:00:00:00。

VSTP VLAN生成樹:

Juniper私有的生成樹協議。顧名思義,VSTP的能為每一個VLAN單獨維護一個STP網絡拓撲,並單獨計算。 通過查詢文檔,發現其更重要的一個特性:其目標MAC地址為:01:00:0c:cc:cc:cd

通過以上的理論分析,大家是否已經看出一些端倪。

沒錯,這裏很容易聯想到:Juniper的VSTP也許能夠和Cisco的PVST+和諧共處。

糾結的Native VLAN 1

在擼起袖子幹之前,還有一個疑問:VLAN 1怎麽處理?

對Cisco而言,PVST+在Native VLAN 1上發送兩個版本的BPDU,一個是不帶VLAN標簽的IEEE802.1d MAC 01:80:c2:00:00:00的BPDU,而Cisco 私有的01:00:0c:cc:cc:cd MAC地址格式的BPDU卻是帶上了VLAN ID= 1的802.1Q的標簽。

同時為了讓Cisco 上Native VLAN 1的用戶正常數據流量能夠暢通無阻的進入Juniper網絡,Juniper對接接口上也得配置Native VLAN 1。

但是帶來的副作用就是,如果我們啟用Juniper的VSTP來對接Cisco的PVST+,VSTP在VLAN 1上會發送不帶標簽的BPDU數據包,而此BPDU數據包MAC地址為01:00:0c:cc:cc:cd。這就與Cisco的PVST+在NativeVLAN的行為不吻合了。

為了解決以上問題,讓我們回到Juniper的RSTP協議。通過之前的介紹,RSTP全局維護了一個STP生成樹實例,而且使用IEEE802.1d 的BPDU MAC 01:80:c2:00:00:00地址格式。那我們是否可以利用RSTP這個特性,讓其與Cisco的PVST+ NativeVLAN 1 對接?

理論分析總結:

完成理論分析以後,我們得出如下實施方案:

針對Cisco的PVST+ Native VLAN 1,我們用Juniper的RSTP與其對接。

而其余Cisco的PVST+ VLAN, 我們則用Juniper的VSTP與其對接。

實踐出真知

為了證明我們的理論推理的正確性,正如馬克思主義認識論的那句話- 實踐不僅是檢驗真理的標準,而且是唯一的標準。讓我們來搭建一個實驗環境測試並驗證此推論。

測試環境如下:

技術分享

配置介紹:

Juniper:

兩個QFX-RE20 &QFX-RE21 xe-0/0/2接口均為Trunk,Native VLAN 1。

VLAN 列表為:VLAN 1, VLAN10,VLAN20。

VLAN 1 開啟了RSTP,VLAN10-20 開啟了VSTP。

Cisco:

兩個Cisco CoreSW16 &CoreSW17 e0/2 接口為Trunk,Native VLAN1。

VLAN 列表為:VLAN 1, VLAN10,VLAN20。

所有VLAN默認開啟PVST+。

具體配置:

###QFX-RE20###

[email protected]>show configuration interfaces xe-0/0/2 | display set

set interfaces xe-0/0/2 native-vlan-id 1

set interfacesxe-0/0/2 unit 0 family ethernet-switching interface-mode trunk

set interfacesxe-0/0/2 unit 0 family ethernet-switching vlan members all

[email protected]>show configuration protocols | display set

set protocols rstp interface all

set protocols vstp interface all

set protocols vstp vlan10

set protocols vstp vlan20

[email protected]>show configuration vlans | display set

set vlans VLAN10 vlan-id10

set vlans VLAN10l3-interface irb.10

set vlans VLAN20 vlan-id20

set vlans VLAN20l3-interface irb.20

set vlans defaultvlan-id 1

set vlans defaultl3-interface irb.1

[email protected]>show configuration interfaces irb | display set

set interfaces irb unit 1 family inet address 10.0.0.20/24

set interfaces irb unit 10 family inet address 10.1.1.20/24

set interfaces irb unit 20 family inet address 10.2.2.20/24

###QFX-RE21###

[email protected]>show configuration interfaces xe-0/0/2 | display set

set interfaces xe-0/0/2 native-vlan-id 1

set interfaces xe-0/0/2 unit 0 family ethernet-switching interface-mode trunk

set interfaces xe-0/0/2 unit 0 family ethernet-switching vlan members all

[email protected]>show configuration protocols | display set

set protocols rstp interface all

set protocols vstp interface all

set protocols vstp vlan 10

set protocols vstp vlan 20

[email protected]>show configuration vlans | display set

set vlans VLAN10vlan-id 10

set vlans VLAN10l3-interface irb.10

set vlans VLAN20vlan-id 20

set vlans VLAN20l3-interface irb.20

set vlans defaultvlan-id 1

set vlans defaultl3-interface irb.1

[email protected]>show configuration interfaces irb | display set

set interfaces irb unit 1 family inet address 10.0.0.21/24

set interfaces irb unit 10 family inet address 10.1.1.21/24

set interfaces irb unit 20 family inet address 10.2.2.21/24

###CISCOCoreSW16###

CISCO_SWC16#show run int e0/2

interfaceEthernet0/2

switchport trunk encapsulation dot1q

switchport mode trunk

CISCO_SWC16#show run | in spann

spanning-tree mode pvst

spanning-tree extend system-id

CISCO_SWC16#show vlan brief

VLAN Name Status Ports

------------------------------------ --------- -------------------------------

1 default active Et0/3

10 VLAN0010 active

20 VLAN0020 active

CISCO_SWC16#show int trunk

Port Mode Encapsulation Status Native vlan

Et0/0 on 802.1q trunking 1

Et0/1 on 802.1q trunking 1

Et0/2 on 802.1q trunking 1

Port Vlans allowed on trunk

Et0/0 1-4094

Et0/1 1-4094

Et0/2 1-4094

Port Vlans allowed and active in management domain

Et0/0 1,10,20

Et0/1 1,10,20

Et0/2 1,10,20

Port Vlans in spanning tree forwarding state and not pruned

Et0/0 1,10,20

Et0/1 1,10,20

Et0/2 1,10,20

###CISCOCoreSW17###

Cisco_SW17#show run int e0/2

interfaceEthernet0/2

switchport trunk encapsulation dot1q

switchport mode trunk

Cisco_SW17#show run | in spann

spanning-tree mode pvst

spanning-tree extend system-id

Cisco_SW17#show vlan brief

VLAN Name Status Ports

------------------------------------ --------- -------------------------------

1 default active Et0/3

10 VLAN0010 active

20 VLAN0020 active

Cisco_SW17#show int trunk

Port Mode Encapsulation Status Native vlan

Et0/0 auto n-802.1q trunking 1

Et0/1 auto n-802.1q trunking 1

Et0/2 on 802.1q trunking 1

Port Vlans allowed on trunk

Et0/0 1-4094

Et0/1 1-4094

Et0/2 1-4094

Port Vlans allowed and active in management domain

Et0/0 1,10,20

Et0/1 1,10,20

Et0/2 1,10,20

Port Vlans in spanning tree forwarding state and not pruned

Et0/0 1,10,20

Et0/1 1,10,20

Et0/2 1,10,20

驗證效果

讓我們先查看Cisco的STP生成樹狀態:

###CISCO_SW16###

CISCO_SWC16#show spanning-tree

VLAN0001

Spanning tree enabled protocol ieee

Root ID Priority 32768

Address 0205.8671.a802

Cost 100

Port 3 (Ethernet0/2)

Hello Time 2 sec Max Age 20 sec Forward Delay 15sec

Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)

Address aabb.cc00.9000

Hello Time 2 sec Max Age 20 sec Forward Delay 15sec

Aging Time 15 sec

Interface Role Sts Cost Prio.Nbr Type

----------------------- --- --------- -------- --------------------------------

Et0/0 Desg FWD 100 128.1 Shr

Et0/1 Desg FWD 100 128.2 Shr

Et0/2 Root FWD 100 128.3 Shr

Et0/3 Desg FWD 100 128.4 Shr

VLAN0010

Spanning tree enabled protocol ieee

Root ID Priority 32778

Address 0205.8671.a802

Cost 100

Port 3 (Ethernet0/2)

Hello Time 2 sec Max Age 20 sec Forward Delay 15sec

Bridge ID Priority 32778 (priority 32768 sys-id-ext 10)

Address aabb.cc00.9000

Hello Time 2 sec Max Age 20 sec Forward Delay 15sec

Aging Time 15 sec

Interface Role Sts Cost Prio.Nbr Type

----------------------- --- --------- -------- --------------------------------

Et0/0 Desg FWD 100 128.1 Shr

Et0/1 Desg FWD 100 128.2 Shr

Et0/2 Root FWD 100 128.3 Shr

VLAN0020

Spanning tree enabled protocol ieee

Root ID Priority 32788

Address 0205.8671.a802

Cost 100

Port 3 (Ethernet0/2)

Hello Time 2 sec Max Age 20 sec Forward Delay 15sec

Bridge ID Priority 32788 (priority 32768 sys-id-ext 20)

Address aabb.cc00.9000

Hello Time 2 sec Max Age 20 sec Forward Delay 15sec

Aging Time 15 sec

Interface Role Sts Cost Prio.Nbr Type

----------------------- --- --------- -------- --------------------------------

Et0/0 Desg FWD 100 128.1 Shr

Et0/1 Desg FWD 100 128.2 Shr

Et0/2 Root FWD 100 128.3 Shr

###CISCO_SW17###

Cisco_SW17#show spanning-tree

VLAN0001

Spanning tree enabled protocol ieee

Root ID Priority 32768

Address 0205.8671.a802

Cost 200

Port 2 (Ethernet0/1)

Hello Time 2 sec Max Age 20 sec Forward Delay 15sec

Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)

Address aabb.cc00.a000

Hello Time 2 sec Max Age 20 sec Forward Delay 15sec

Aging Time 300 sec

Interface Role Sts Cost Prio.Nbr Type

----------------------- --- --------- -------- --------------------------------

Et0/0 Desg FWD 100 128.1 Shr

Et0/1 Root FWD 100 128.2 Shr

Et0/2 Desg FWD 100 128.3 Shr

Et0/3 Desg FWD 100 128.4 Shr

VLAN0010

Spanning tree enabled protocol ieee

Root ID Priority 32778

Address 0205.8671.a802

Cost 200

Port 2 (Ethernet0/1)

Hello Time 2 sec Max Age 20 sec Forward Delay 15sec

Bridge ID Priority 32778 (priority 32768 sys-id-ext 10)

Address aabb.cc00.a000

Hello Time 2 sec Max Age 20 sec Forward Delay 15sec

Aging Time 300 sec

Interface Role Sts Cost Prio.Nbr Type

----------------------- --- --------- -------- --------------------------------

Et0/0 Desg FWD 100 128.1 Shr

Et0/1 Root FWD 100 128.2 Shr

Et0/2 Desg FWD 100 128.3 Shr

VLAN0020

Spanning tree enabled protocol ieee

Root ID Priority 32788

Address 0205.8671.a802

Cost 200

Port 2 (Ethernet0/1)

Hello Time 2 sec Max Age 20 sec Forward Delay 15sec

Bridge ID Priority 32788 (priority 32768 sys-id-ext 20)

Address aabb.cc00.a000

Hello Time 2 sec Max Age 20 sec Forward Delay 15sec

Aging Time 300 sec

Interface Role Sts Cost Prio.Nbr Type

----------------------- --- --------- -------- --------------------------------

Et0/0 Desg FWD 100 128.1 Shr

Et0/1 Root FWD 100 128.2 Shr

Et0/2 Desg FWD 100 128.3 Shr

大家是否已經發現,Cisco 的核心交換機已經把STP生成樹的根橋改為0205.8671.a802,而非Cisco設備自身,同時在Cisco_SW16上根端口為e0/2,指向Juniper核心交換機設備。那這0205.8671.a802是誰呢,讓我們繼續往下看Juniper的STP生成樹信息。

###JunipervQFX_RE20###

[email protected]> show spanning-tree bridge

STP bridgeparameters

Routing instancename : GLOBAL

Context ID : 0

Enabledprotocol : RSTP

Root ID : 32768.02:05:86:71:a8:02

Hello time : 2 seconds

Maximum age : 20 seconds

Forward delay : 15 seconds

Message age : 0

Number of topology changes : 7

Time since last topology change : 339 seconds

Local parameters

Bridge ID : 32768.02:05:86:71:a8:02

Extended system ID : 0

STP bridge parameters for VLAN 10

Root ID : 32778.02:05:86:71:a8:02

Hello time : 2 seconds

Maximum age : 20 seconds

Forward delay : 15 seconds

Message age : 0

Number of topology changes : 6

Time since last topology change : 339 seconds

Local parameters

Bridge ID :32778.02:05:86:71:a8:02

Extended system ID : 10

STP bridge parameters for VLAN 20

Root ID : 32788.02:05:86:71:a8:02

Hello time : 2 seconds

Maximum age : 20 seconds

Forward delay : 15 seconds

Message age : 0

Number of topology changes : 3

Time since last topology change : 339 seconds

Local parameters

Bridge ID :32788.02:05:86:71:a8:02

Extended system ID : 20

[email protected]> show spanning-tree interface <<根交換機,所有接口都是指定端口角色。

Spanning tree interface parameters for instance0

Interface Port ID Designated Designated Port State Role

port ID bridge ID Cost

xe-0/0/0 128:490 128:490 32768.02058671a802 2000 FWD DESG

xe-0/0/1 128:491 128:491 32768.02058671a802 2000 FWD DESG

xe-0/0/2 128:492 128:492 32768.02058671a802 2000 FWD DESG

Spanning tree interface parameters for VLAN 10

Interface Port ID Designated Designated Port State Role

port ID bridge ID Cost

xe-0/0/0 128:490 128:490 32778.02058671a802 2000 FWD DESG

xe-0/0/1 128:491 128:491 32778.02058671a802 2000 FWD DESG

xe-0/0/2 128:492 128:492 32778.02058671a802 2000 FWD DESG

Spanning tree interface parameters for VLAN 20

Interface Port ID Designated Designated Port State Role

port ID bridge ID Cost

xe-0/0/0 128:490 128:490 32788.02058671a802 2000 FWD DESG

xe-0/0/1 128:491 128:491 32788.02058671a802 2000 FWD DESG

xe-0/0/2 128:492 128:492 32788.02058671a802 2000 FWD DESG

###JunipervQFX_RE21###

[email protected]> show spanning-tree bridge

STP bridge parameters

Routing instance name : GLOBAL

Context ID : 0

Enabled protocol : RSTP

RootID : 32768.02:05:86:71:a8:02

Rootcost : 2000

Rootport : xe-0/0/1

Hellotime : 2 seconds

Maximumage : 20 seconds

Forwarddelay : 15 seconds

Messageage : 1

Number of topology changes : 7

Time since last topology change : 420 seconds

Local parameters

BridgeID : 32768.02:05:86:71:ca:02

Extendedsystem ID : 0

STP bridge parameters for VLAN 10

RootID :32778.02:05:86:71:a8:02

Rootcost : 2000

Rootport : xe-0/0/1

Hellotime : 2 seconds

Maximumage : 20 seconds

Forwarddelay : 15 seconds

Messageage : 1

Number of topology changes : 1

Time since last topology change : 4178 seconds

Local parameters

BridgeID :32778.02:05:86:71:ca:02

Extendedsystem ID : 10

STP bridge parameters for VLAN 20

RootID :32788.02:05:86:71:a8:02

Rootcost : 2000

Rootport : xe-0/0/1

Hellotime : 2 seconds

Maximumage : 20 seconds

Forwarddelay : 15 seconds

Messageage : 1

Number of topology changes : 1

Time since last topology change : 2104 seconds

Local parameters

BridgeID :32788.02:05:86:71:ca:02

Extended system ID : 20

[email protected]> show spanning-tree interface

Spanning tree interface parameters for instance 0

Interface Port ID Designated Designated Port State Role

portID bridge ID Cost

xe-0/0/0 128:490 128:490 32768.02058671ca02 2000 FWD DESG

xe-0/0/1 128:491 128:491 32768.02058671a802 2000 FWD ROOT

xe-0/0/2 128:492 128:3 32769.aabbcc00a000 2000 BLK ALT

Spanning tree interface parameters for VLAN 10

Interface Port ID Designated Designated Port State Role

portID bridge ID Cost

xe-0/0/0 128:490 128:490 32778.02058671ca02 2000 FWD DESG

xe-0/0/1 128:491 128:491 32778.02058671a802 2000 FWD ROOT

xe-0/0/2 128:492 128:3 32778.aabbcc00a000 2000 BLK ALT

Spanning tree interface parameters for VLAN 20

Interface Port ID Designated Designated Port State Role

portID bridge ID Cost

xe-0/0/0 128:490 128:490 32788.02058671ca02 2000 FWD DESG

xe-0/0/1 128:491 128:491 32788.02058671a802 2000 FWD ROOT

xe-0/0/2 128:492 128:3 32788.aabbcc00a000 2000 BLK ALT

通過以上STP生成樹命令行輸出,可以看出目前設備的根橋是在Juniper的vQFX_RE20。

同時需要註意的是,在Juniper上,沒有VLAN 1的VSTP實例,而是RSTP實例。而在VLAN 10 以及VLAN 20上,運行的為VSTP。

通過實驗室驗證,我們現在確定上文的理論推理是正確的,通過和客戶溝通協商後,就可以在生產環境實施了。

大功告成!

文章總結:

這篇文章,我們認真分析了不同廠商私有STP生成樹協議對接的問題,以及各種可能的解決方法,並最終通過實驗驗證了其可行性並付諸於實踐。

實踐過程中,我們需要在Juniper的EX或QFX系列交換機上開啟RSTP與VSTP。並做如下對接:

Cisco PVST+ NativeVLAN 1 <-> Juniper RSTP

Cisco PVST+ VLAN X <-> Juniper VSTP

同時需要在Juniper與Cisco對接的接口上開啟native-vlan-id 1 的功能。

當然日常工作中大家可能還會遇到其他私有協議之間的兼容性問題。但是萬變不離其宗,只要掌握了正確的思維方法,總會找到解決方案。

最後,給大家留一個問題:猜猜在交換機的Access接口下,Native VLAN和其他VLAN的BPDU MAC目標地址會是什麽?

選項:(1)標準的IEEE 802.1d MAC (2)Cisco 私有的PVST+ MAC。


本文出自 “新西蘭資深網工的日常” 博客,請務必保留此出處http://gingerbeer.blog.51cto.com/625855/1967718

思路很重要!不同廠商Spanning-tree對接案例思考