ルータ : Cisco ASR 9000 シリーズ アグリゲーション サービス ルータ

スパニング ツリー プロトコルによる ASR 9000 シリーズの一般的な問題

2016 年 10 月 27 日 - 機械翻訳について
その他のバージョン: PDFpdf | 英語版 (2015 年 8 月 22 日) | フィードバック

概要

このドキュメントでは、Cisco IOS® スイッチの現在のレイヤ 2(L2)スパニング ツリー ネットワークと、Cisco IOS XR が稼働する Cisco アグリゲーション サービス ルータ(ASR)9000 シリーズを統合する場合に発生するよくある問題について説明します。

著者:Cisco TAC エンジニア、Bryan Garland および David Powers

問題:ポート VLAN ID(PVID)の不一致

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 フィルタはインバウンド/アウトバウンド BPDU をブロックします。 インターフェイスで BPDU フィルタを有効にするのは、スパニング ツリーを無効にするのと同じことになるので、スパニング ツリー ループが発生する可能性があります。

このコマンドで、スイッチ 1 およびスイッチ 2 の BPDU フィルタを有効にします。

interface TenGigabitEthernet1/2
spanning-tree bpdufilter enable

ASR 9000 での PVST+ BPDU のブロック

この問題は、ASR 9000 で PVST+ BPDU がドロップされるように設定すると回避できます。 これは、L2 イーサネットサービス アクセスリストが、PVST+ BPDU MAC アドレスが宛先であるパケットを拒否するためです。

非 VLAN 1(非ネイティブ)VLAN の PVST+ BPDU は、PVST+ MAC アドレス(別名 Shared Spanning Tree Protocol(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 で複数のタイプのスパニング ツリー プロトコル(STP)を使用する場合の、ブロックと転送の間のスイッチ ポートのフラップ

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 通りの方法が考えられます。

  • スイッチ 2 に MST を設定し、スイッチ 1 とスイッチ 2 の両方で a9k1 インターフェイスの MST を有効にします。
  • a9k1 のイーサネットサービス アクセスリストを使用して、スイッチ 2 の入力またはスイッチ 1 の出力のいずれかで PVST+ BPDU がドロップされるようにします。
  • スイッチ 2 に向かう a9k1 インターフェイス上で Per VLAN Spanning Tree Access Gateway(PVSTAG)を実行します。 これにより a9k1 はスイッチ 2 からの PVST+ BPDU を消費します。

問題:セルフループが検出されることによりスパニング ツリー ポートがブロックされる

スイッチが、同じインターフェイス上で送信したスパニング ツリー 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 コマンドは、インターフェイスでの出力 Ethernet Flow Point(EFP)の厳密なフィルタリングを可能にします。 このインターフェイスから送信されるのは、インターフェイスの入力 EFP フィルタを通過するパケットだけです。 その他のパケットは、出力フィルタでドロップされます。 これは、出力されたパケットがインターフェイスに設定された encapsulation dot1q ラベルと一致せず、送信されないことを意味します。

関連情報



Document ID: 116514