目錄

簡介

問題 — 埠VLAN ID(PVID)不一致

解決方案

交換器上的BPDU過濾器

在ASR 9000上阻止PVST+ BPDU

問題 — 當您通過ASR 9000使用多種型別的生成樹協定(STP)時，交換機埠在阻塞和轉發之間擺動

解決方案

問題 — 由於檢測到自環路，生成樹埠被阻塞

解決方案

相關資訊

簡介

本文描述將目前的Cisco IOS®交換器上的第2層(L2)跨距樹狀目錄網路與執行Cisco IOS XR的Cisco Aggregation Services Router(ASR)9000系列整合到一起時所遇到的常見問題。

問題 — 埠VLAN ID(PVID)不一致

當執行「每個VLAN生成樹Plus(PVST+)」的Cisco IOS交換器收到具有不一致PVID的橋接器通訊協定資料單元(BPDU)時，會封鎖交換器連線埠。當交換機之間的裝置更改或轉換PVST+ BPDU上的IEEE 802.1Q標籤時，會發生此問題。

當ASR 9000在運行PVST+的交換機之間提供L2VPN點對點或多點服務並重寫VLAN標籤時，基於Cisco IOS的交換機上可能會顯示以下系統日誌消息：

%SPANTREE-2-RECV_PVID_ERR: Received BPDU with inconsistent

peer vlan id 10 on GigabitEthernet0/10 VLAN20.

%SPANTREE-2-BLOCK_PVID_LOCAL: Blocking GigabitEthernet0/10

on VLAN20. Inconsistent local vlan.

此問題是由於PVST+ BPDU中包含的PVID標籤引起的。此標籤旨在檢測配置錯誤並避免意外環路。但是，在此案例中，這會導致兩端被阻止且不允許流量通過。

以下是範例：

以下是ASR 9000系列(a9k1)配置的配置：

2vpn

bridge group bg1

bridge-domain bd1

interface TenGigE0/0/0/0.10

!

interface TenGigE0/0/0/1.20

interface TenGigE0/0/0/0.10 l2transport

encapsulation dot1q 10

rewrite ingress tag pop 1 symmetric

interface TenGigE0/0/0/1.20 l2transport

encapsulation dot1q 20

rewrite ingress tag pop 1 symmetric

解決方案

為防止出現此問題，您可以阻止PVST+ BPDU。此操作會禁用生成樹，並且如果交換機之間存在冗餘連線，則可能導致環路。

注意：阻止BPDU並有效禁用生成樹時，請務必小心。

交換器上的BPDU過濾器

交換機上的BPDU過濾器功能會阻止BPDU。BPDU過濾器會在兩個方向上阻止BPDU，從而有效禁用埠上的生成樹。BPDU過濾器可阻止入站和出站BPDU。如果在介面上啟用BPDU過濾，則與在其上禁用生成樹是相同的，這可能會導致生成樹環路。

在switch1和switch2上，使用以下命令啟用BPDU過濾器：

interface TenGigabitEthernet1/2

spanning-tree bpdufilter enable

在ASR 9000上阻止PVST+ BPDU

如果配置ASR9000以丟棄PVST+ BPDU，就可以避免此問題。這通過L2乙太網服務訪問清單完成，以拒絕發往PVST+ BPDU MAC地址的資料包。

非VLAN 1（非本徵）VLAN的PVST+ BPDU被傳送到PVST+ MAC地址（也稱為共用生成樹協定[SSTP] MAC地址0100.0ccc.ccd），並使用相應的IEEE 802.1Q VLAN標籤進行標籤。

此訪問控制清單(ACL)可用於阻止PVST+ BPDU:

ethernet-services access-list l2acl

10 deny any host 0100.0ccc.cccd

20 permit any any

將ACL套用到設定為l2transport的介面：

interface TenGigE0/0/0/0.10 l2transport

encapsulation dot1q 10

rewrite ingress tag pop 1 symmetric

ethernet-services access-group l2acl ingress

interface TenGigE0/0/0/1.20 l2transport

encapsulation dot1q 20

rewrite ingress tag pop 1 symmetric

ethernet-services access-group l2acl ingress

問題 — 當您通過ASR 9000使用多種型別的生成樹協定(STP)時，交換機埠在阻塞和轉發之間擺動

與大多數Cisco IOS交換機一樣，ASR9000在預設情況下不執行生成樹。在乙太網路虛擬電路(EVC)模型中，BPDU只是另一個第2層多點傳送封包。遇到的常見問題是跨越ASR 9000橋接域運行的多種STP型別導致生成樹不一致。這可以通過幾種不同的方式出現。

請考慮以下簡單拓撲：

假定switch1運行多生成樹(MST),switch2運行PVST+。如果a9k1未運行任何形式的生成樹，則switch1會將其視為邊界埠。對於不在通用生成樹例項0(CST0)中的VLAN，Switch1回到PVST模式。如果這是所需的設計，您應該熟悉MST和PVST互動，如瞭解多生成樹協定(802.1s)白皮書中所述。

現在假設您在switch1和通往switch1的a9k1介面上運行MST，但是您仍然在switch2上運行PVST+。PVST+ BPDU通過網橋域並到達交換機1。然後Switch1會看到來自a9k1的MST BPDU和來自switch2的PVST+ BPDU，這會導致switch1埠上的生成樹不斷從阻塞變為不阻塞，並導致流量丟失。

Switch1報告以下系統日誌：

%SPANTREE-SP-2-PVSTSIM_FAIL: Superior PVST BPDU received on VLAN 2 port Gi2/13,

claiming root 2:000b.45b7.1100. Invoking root guard to block the port

%SPANTREE-SP-2-ROOTGUARD_BLOCK: Root guard blocking port GigabitEthernet2/13

on MST1.

%SPANTREE-SP-2-ROOTGUARD_UNBLOCK: Root guard unblocking port GigabitEthernet2/13

on MST0.

%SPANTREE-SP-2-PVSTSIM_FAIL: Superior PVST BPDU received on VLAN 2 port Gi2/13,

claiming root 2:000b.45b7.1100. Invoking root guard to block the port

%SPANTREE-SP-2-ROOTGUARD_BLOCK: Root guard blocking port GigabitEthernet2/13

on MST1.

show spanning-tree interface命令輸出顯示switch1 Cisco IOS裝置上的輸出不斷變化：

show spanning-tree interface gig 2/13

Mst Instance Role Sts Cost Prio.Nbr Type

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

MST0 Desg BKN*20000 128.269 P2p Bound(PVST) *ROOT_Inc

MST1 Desg BKN*20000 128.269 P2p Bound(PVST) *ROOT_Inc

MST2 Desg BKN*20000 128.269 P2p Bound(PVST) *ROOT_Inc

show spanning-tree interface gig 2/13

Mst Instance Role Sts Cost Prio.Nbr Type

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

MST0 Desg FWD 20000 128.269 P2p

MST1 Desg FWD 20000 128.269 P2p

MST2 Desg FWD 20000 128.269 P2p

解決方案

為了防止此問題，需要考慮三個選項。

- 在switch2上配置MST，並在a9k1介面上啟用switch1和switch2的MST。

- 在a9k1上使用Ethernet-services access-list，以在從switch2入口或到switch1出口時丟棄PVST+ BPDU。

- 在a9k1介面上針對switch2運行每個VLAN生成樹訪問網關(PVSTAG)。這會導致a9k1使用來自交換機2的PVST+ BPDU。

問題 — 由於檢測到自環路，生成樹埠被阻塞

當交換機在同一介面上收到其傳送的生成樹BPDU時，它會由於自環路而阻塞該VLAN。當具有中繼埠的交換機連線到提供L2多點服務的ASR 9000路由器，並且ASR 9000不會在同一橋接域的l2傳輸介面上重寫VLAN標籤時，會發生這種常見問題。

考慮前面所示的簡單拓撲。但是現在，由於a9k1的設計原因，來自同一交換機中繼介面的多個VLAN合併到一個網橋域中。

以下是a9k1配置：

l2vpn

bridge group bg1

bridge-domain bd1

interface GigabitEthernet0/1/0/31.2

!

interface GigabitEthernet0/1/0/31.3

!

interface GigabitEthernet0/1/0/31.4

!

interface GigabitEthernet0/1/0/32.2

!

interface GigabitEthernet0/1/0/32.3

!

interface GigabitEthernet0/1/0/32.4

interface GigabitEthernet0/1/0/31.2 l2transport

encapsulation dot1q 2

!

interface GigabitEthernet0/1/0/31.3 l2transport

encapsulation dot1q 3

!

interface GigabitEthernet0/1/0/31.4 l2transport

encapsulation dot1q 4

這會將VLAN 2至4橋接到a9k1上的一個網橋域中。

預設情況下，ASR 9000 EVC型號不重寫任何標籤或彈出標籤。用於VLAN2的PVST+ BPDU傳入介面gig 0/1/0/31.2，並在gig 0/1/0/31.3和gig 0/1/0/31.4上轉回出去。由於該配置不是輸入pop操作的重寫，因此BPDU返回不變。交換器看到此情況是因為它取回自己的BPDU，並由於自回圈而阻塞該VLAN。

show spanning-tree interface命令會顯示遭封鎖的VLAN:

6504-A#show spanning-tree interface gig 2/13

Vlan Role Sts Cost Prio.Nbr Type

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

VLAN0002 Desg BLK 4 128.269 self-looped P2p

VLAN0003 Desg BLK 4 128.269 self-looped P2p

VLAN0004 Desg BLK 4 128.269 self-looped P2p

解決方案

通過在ASR 9000 l2傳輸介面上使用ethernet egress-filter strict命令可消除此問題。

這不是推薦的設計。但是，如果這確實是所需的設計，則可以使用此解決方案來防止交換機收到它在同一介面傳送回的BPDU。

您可以在a9k1 l2transport介面上或全域性使用ethernet egress-filter strict命令。以下是介面下的範例：

interface GigabitEthernet0/1/0/31.2 l2transport

encapsulation dot1q 2

ethernet egress-filter strict

!

interface GigabitEthernet0/1/0/31.3 l2transport

encapsulation dot1q 3

ethernet egress-filter strict

!

interface GigabitEthernet0/1/0/31.4 l2transport

encapsulation dot1q 4

ethernet egress-filter strict

ethernet egress-filter strict命令可在介面上啟用嚴格出口乙太網流點(EFP)過濾。只有透過介面上的輸入EFP過濾器的封包會從這個介面轉發出去。其他封包會在輸出過濾器處捨棄。這表示如果流出的封包與介面上設定的encapsulation dot1q標籤不相符，則不會將其傳送出去。

相關資訊

- 實施多生成樹協定

- 疑難排解跨距樹狀目錄 PVID 不一致和類型不一致

- 瞭解多重生成樹通訊協定(802.1s)

- 技術支援與文件 - Cisco Systems