이 문서에서는 Cisco IOS® 스위치의 현재 L2(Layer 2) 스패닝 트리 네트워크를 Cisco IOS XR를 실행하는 Cisco ASR(Aggregation Services Router) 9000 Series와 통합할 때 발생하는 일반적인 문제에 대해 설명합니다.
PVST+(Per VLAN Spanning Tree Plus)에서 실행되는 Cisco IOS 스위치는 일관성 없는 PVID가 있는 BPDU(Bridge Protocol Data Unit)를 수신할 때 스위치 포트를 차단합니다.이 문제는 스위치 간 디바이스가 PVST+ BPDU에서 IEEE 802.1Q 태그를 변경하거나 변환할 때 발생합니다.
ASR 9000이 PVST+를 실행하고 VLAN 태그를 재작성하는 스위치 간에 L2VPN 포인트-투-포인트 또는 멀티포인트 서비스를 제공할 경우, 이러한 syslog 메시지는 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 Series(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 필터링을 활성화하는 경우 스패닝 트리를 비활성화하는 것과 동일하며, 이로 인해 스패닝 트리 루프가 발생할 수 있습니다.
switch1 및 switch2에서 다음 명령을 사용하여 BPDU 필터를 활성화합니다.
interface TenGigabitEthernet1/2
spanning-tree bpdufilter enable
PVST+ BPDU를 삭제하도록 ASR9000을 구성하는 경우 이 문제가 발생하지 않습니다.이 작업은 PVST+ BPDU MAC 주소로 전송되는 패킷을 거부하기 위해 L2 이더넷 서비스 액세스 목록으로 수행됩니다.
비 VLAN 1(비원시) VLAN용 PVST+ BPDU는 PVST+ MAC 주소(SSTP[Shared Spanning Tree Protocol] MAC 주소, 0100.0ccc.cccd라고도 함)로 전송되며 해당 IEEE 802.1Q VLAN 태그로 태그됩니다.
이 ACL(Access Control List)을 사용하여 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
ASR9000은 대부분의 Cisco IOS 스위치와 마찬가지로 기본적으로 스패닝 트리를 수행하지 않습니다.EVC(Ethernet Virtual Circuit) 모델에서 BPDU는 단순히 다른 L2 멀티캐스트 패킷입니다.일반적인 문제는 ASR 9000 브리지 도메인을 통해 실행되는 여러 유형의 STP로 인해 스패닝 트리 불일치입니다.이는 몇 가지 다른 방식으로 나타납니다.
다음의 간단한 토폴로지를 고려해 보십시오.
switch1은 MST(Multiple Spanning Tree)를 실행하고 switch2는 PVST+를 실행한다고 가정합니다.9k1이 스패닝 트리의 어떤 형태도 실행하지 않을 경우 switch1은 이를 경계 포트로 간주합니다.Switch1은 CST0(Common Spanning Tree Instance 0)에 없는 VLAN의 PVST 모드로 돌아갑니다. 원하는 설계인 경우 Understanding Multiple Spanning Tree Protocol (802.1s) 백서에 설명된 대로 MST 및 PVST 상호 작용에 익숙해야 합니다.
이제 switch1 및 switch1로 이동하는 9k1 인터페이스에서 MST를 실행하지만 switch2에서 PVST+를 계속 실행한다고 가정합니다. PVST+ BPDU는 브리지 도메인을 통과하여 switch1에 도착합니다. 그러면 Switch1은 스위치2에서 MST BPDU를 모두 확인합니다. 그러면 스위치1의 스패닝 트리의 스위치1에서 PVST+ BPDU가 차단되어 지속적으로 차단되지 않도록 차단됩니다. 트래픽 손실.
Switch1은 다음 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 명령 출력은 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
이 문제를 방지하기 위해 세 가지 옵션을 고려해야 합니다.
스위치는 동일한 인터페이스에서 보낸 스패닝 트리 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
이렇게 하면 a9k1의 한 브리지 도메인에서 VLAN 2~4를 연결합니다.
ASR 9000 EVC 모델은 기본적으로 태그나 팝업을 재작성하지 않습니다.VLAN2용 PVST+ BPDU는 인터페이스 Gig 0/1/0/31.2에서 제공되며 Gig 0/1/0/31.3 및 Gig 0/1/0/31.4에서 다시 전달됩니다. 컨피그레이션이 인그레스 팝의 재작성이 아니므로 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 전송 인터페이스에서 이더넷 이그레스 필터 strict 명령을 사용하여 제거됩니다.
이는 권장 설계가 아닙니다.그러나 이것이 진정 원하는 설계인 경우, 이 솔루션을 사용하여 스위치가 동일한 인터페이스에서 다시 보낸 BPDU를 수신하지 못하도록 할 수 있습니다.
9k1 l2transport 인터페이스 또는 전역적으로 이더넷 이그레스 필터 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(Egress Ethernet Flow Point) 필터링을 활성화합니다.인터페이스에서 인그레스 EFP 필터를 전달하는 패킷만 이 인터페이스에서 전송됩니다.다른 패킷은 이그레스 필터에서 삭제됩니다.즉, 이그레스 패킷이 인터페이스에 구성된 캡슐화 dot1q 레이블과 일치하지 않으면 전송되지 않습니다.