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

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

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

  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完全阻斷。

wKiom1nEewTjTsaDAAHIH9_kbdY245.jpg-wh_50

 

問題分析:

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

 

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

wKiom1nEfCGxmgR9AAFmXBP9cso533.jpg-wh_50

 

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

因爲本場景客戶使用的爲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之間溝通也需要一個地址。爲了發掘這個地址,讓我們在實驗室來做一個簡單的抓包測試。

 

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

wKiom1nEfE-A0fStAACkLB7em10477.png-wh_50

如上圖,我們現在有兩臺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       Nativevlan
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/0 switchport | in Native
Trunking Native Mode VLAN: 1 (default)
Administrative Native VLAN tagging: enabled
Administrative private-vlan trunk Native VLAN tagging: enabled
SW13#

 

 

###生成樹概況###

SW13# show spanning-tree summary  
Switch is inpvstmode
Root bridgefor: VLAN0001, VLAN0010, VLAN0020
Extended system ID                      is enabled
PortfastDefault                        is disabled
Portfast Edge BPDU Guard Default        is disabled
Portfast Edge BPDU Filter Default       is disabled
Loopguard Default                       is disabled
PVST Simulation Default                 is enabled but inactive inpvstmode
Bridge Assurance                        is enabled but inactive inpvstmode
Ether Channel misconfig guard            is enabled
Configured Pathcost method used is short
Uplink Fast                              is disabled
Backbone Fast                            is disabled
 
Name                   Blocking Listening Learning Forwarding 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抓包分析#

 

抓包總覽:

wKioL1nEfGSCnMMKAACJ5dsKegI055.jpg

 

單包分析:

 

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

wKioL1nEfKrgPbZIAAD3Hyqcpb0838.jpg

 

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

wKiom1nEfT-yX92YAADFQbKlcts059.jpg

 

VLAN10 以及VLAN20的數據包:

 

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

wKiom1nEfWzz8egWAADhVIS1OTM797.jpg

 

##VLAN 20 BPDU數據包###

wKiom1nEfW2xJrFYAADjRgeTCr0015.jpg

 

通過上面抓包截圖,讓我們先分析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與其對接。

 

實踐出真知

 

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

 

測試環境如下:

 wKiom1nEfenhqqzTAADArijwN00272.jpg

 

配置介紹:

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###

root@vQFX-RE20>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
 
root@vQFX-RE20>show configuration protocols | display set
set protocols rstp interface all
set protocols vstp interface all
set protocols vstp vlan10
set protocols vstp vlan20
 
root@vQFX-RE20>show configuration vlans | display set
set vlans VLAN10 vlan-id10
set vlans VLAN10 l3-interface irb.10
set vlans VLAN20 vlan-id20
set vlans VLAN20 l3-interface irb.20
set vlans default vlan-id 1
set vlans defaul tl3-interface irb.1
 
root@vQFX-RE20>show configuration interfacesirb| 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###


root@vQFX-RE21>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-switchingvlanmembers all
 
root@vQFX-RE21>show configuration protocols | display set
set protocols rstp interface all
set protocols vstp interface all
set protocols vstp vlan10
set protocols vstp vlan20
 
root@vQFX-RE21>show configuration vlans | display set
set vlans VLAN10 vlan-id 10
set vlans VLAN10 l3-interface irb.10
set vlans VLAN20 vlan-id 20
set vlans VLAN20 l3-interface irb.20
set vlans default vlan-id 1
set vlans default l3-interface irb.1
 
root@vQFX-RE21>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

 

###CISCO Core SW16###

 

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       Nativevlan
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

 

###CISCO Core SW17###

 

Cisco_SW17#show run int e0/2

interfaceEthernet0/2
 switchporttrunk encapsulation dot1q
 switchportmode trunk

 

Cisco_SW17#show run  | in spann

spanning-tree modepvst
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       Nativevlan
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 protocolieee
  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 protocolieee
  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 protocolieee
  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 protocolieee
  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 protocolieee
  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 protocolieee
  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###

root@vQFX-RE20> 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

 

 

root@vQFX-RE20> 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###

 

root@vQFX-RE21> show spanning-tree bridge

STP bridge parameters
Routing instancename               :GLOBAL
Context ID                          : 0
Enabledprotocol                    :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

 

 

root@vQFX-RE21> 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

 

STP bridge parameters for VLAN 10

 

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。


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