このドキュメントでは、Cisco IOS® スイッチの現在のレイヤ 2(L2)スパニング ツリー ネットワークと、Cisco IOS XR が稼働する Cisco アグリゲーション サービス ルータ(ASR)9000 シリーズを統合する場合に発生するよくある問題について説明します。
Per VLAN Spanning Tree Plus(PVST+)が稼働する Cisco IOS スイッチでは、PVID が一致しないブリッジ プロトコル データ ユニット(BPDU)を受信すると、スイッチ ポートがブロックされます。この問題は、PVST+ BPDU 上でスイッチ間のデバイスが IEEE 802.1Q タグを変更または変換すると発生します。
ASR 9000 が、PVST+ が稼働するスイッチ間に L2VPN ポイントツーポイントまたはマルチポイント サービスを提供し、VLAN タグを書き換えると、Cisco IOS ベースのスイッチに次の syslog メッセージが表示される場合があります。
%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 フィルタリングを有効にすると、インターフェイスでスパニング ツリーを無効にした場合と同じになるため、スパニング ツリー ループが発生する可能性があります。
スイッチ 1 およびスイッチ 2 で、次のコマンドを使用して BPDU フィルタを有効にします。
interface TenGigabitEthernet1/2
spanning-tree bpdufilter enable
この問題は、ASR 9000 で PVST+ BPDU がドロップされるように設定すると回避できます。これは、L2 イーサネットサービス アクセスリストが、PVST+ BPDU MAC アドレスが宛先であるパケットを拒否するためです。
非 VLAN 1(非ネイティブ)VLAN の PVST+ BPDU は、PVST+ MAC アドレス(別名は共有スパニング ツリー プロトコル(SSTP)MAC アドレス。0100.0ccc.cccd)に送信され、対応する IEEE 802.1Q VLAN タグがタグ付けされます。
このアクセス コントロール リスト(ACL)は、PVST+ BPDU をブロックするために使用できます。
ethernet-services access-list l2acl
10 deny any host 0100.0ccc.cccd
20 permit any any
l2transport として設定されているインターフェイスに ACL を適用します。
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 は、ほとんどの Cisco IOS スイッチと異なり、デフォルトではスパニング ツリーを実行しません。Ethernet Virtual Circuit(EVC)モデルでは、BPDU は単なるひとつの L2 マルチキャスト パケットです。よくある問題として、ASR 9000 のブリッジ ドメインで稼働する STP のタイプが複数あるため、スパニング ツリーが一致しないことがあります。これはさまざまな形で現れます。
次の単純なトポロジを考えてみます。
スイッチ 1 がマルチ スパニング ツリー(MST)を実行し、スイッチ 2 が PVST+ を実行すると仮定します。a9k1 がいかなる形のスパニング ツリーも実行しない場合、スイッチ 1 はこれを境界ポートと見なします。スイッチ 1 は、Common Spanning Tree Instance 0(CST0)にない VLAN については PVST モードにフォールバックします。これが意図した設計である場合は、「マルチ スパニングツリー プロトコル(802.1s)について」ホワイト ペーパーで説明されている MST と PVST の相互対話について精通している必要があります。
ここで、スイッチ 1 とスイッチ 1 に向かう a9k1 インターフェイス上で MST を実行していると仮定します。ただし、スイッチ 2 上の PVST+ も実行中です。PVST+ BPDU はブリッジ ドメインをパススルーしてスイッチ 1 に到達します。スイッチ 1 は、a9k1 からの MST BPDU とスイッチ 2 からの PVST+ BPDU の両方を受け取ることになります。これにより、スイッチ 1 ポートのスパニング ツリーは常にブロックされなくなり、結果的にトラフィック損失が発生します。
スイッチ 1 は次の syslog をレポートします。
%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 コマンドの出力は、スイッチ 1 の 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
この問題を回避するには、3 つの方法が考えられます。
スイッチが、同じインターフェイス上で送信したスパニング ツリー BPDU を受信すると、セルフループのために VLAN がブロックされます。これは、トランク ポートを持つスイッチが L2 マルチポイント サービスを提供する ASR 9000 ルータに接続され、ASR 9000 が同じブリッジ ドメインの l2transport インターフェイスの VLAN タグを書き換えない場合に発生する、よくある問題です。
前述の同じシンプルなトポロジで考えてみます。ただし今回は、a9k1 の設計上の理由により、同じスイッチのトランク インターフェイスからの複数の VLAN が 1 つのブリッジ ドメインにマージされます。
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
これは、a9k1 の 1 つのブリッジ ドメインで VLAN 2 ~ 4 を一緒にブリッジします。
ASR 9000 EVC モデルは、デフォルトではタグや POP を書き換えません。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 の l2transport インターフェイス上で ethernet egress-filter strict コマンドを使用することで解消できます。
これは、推奨される設計ではありません。ただし、それが実際に意図した設計の場合は、このソリューションを使用して、同じインターフェイスに返信される BPDU をスイッチが受信することを防ぐことができます。
ethernet egress-filter strict コマンドは、a9k1 l2transport インターフェイス上か、またはグローバルに使用できます。インターフェイスの下のそのコマンドの例を次に示します。
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 ラベルと一致しない場合は送信されないことを意味します。
改定 | 発行日 | コメント |
---|---|---|
1.0 |
19-Sep-2013 |
初版 |