레이어 2(L2) 네트워크에서는 두 디바이스 간에 하나의 경로만 존재할 수 있습니다.이중화 경로를 탐지 및 차단하여 포워딩 루프를 방지하는 STP(Spanning-Tree Protocol)를 통해 이중화가 지원됩니다.특정 컨피그레이션이 잘못되면 STP 오류가 발생하고 네트워크 중단이 발생할 수 있습니다.다운타임을 방지하기 위해 STP가 컨피그레이션 오류를 감지하고 관련 포트가 "일관성 없음" 상태가 되도록 일부 개선 사항이 구현되었습니다.
STP 불일치에는 여러 유형이 있을 수 있습니다.
루프 불일치 - 루프 가드 피쳐에서 탐지됩니다.자세한 내용은 Loop Guard 및 BPDU Skew Detection 기능을 사용한 Spanning-Tree Protocol Enhancements를 참조하십시오.
루트 불일치 - 루트 가드 기능에 의해 탐지됩니다.자세한 내용은 스패닝 트리 프로토콜 루트 가드 개선 사항을 참조하십시오.
EtherChannel 불일치 — EtherChannel 일관성 탐지 기능에서 이를 탐지합니다.자세한 내용은 EtherChannel 불일치 탐지 이해를 참조하십시오.
PVID(Port VLAN ID) 불일치—PVST+(per-VLAN spanning tree) BPDU(Bridge Protocol Data Unit)가 원래 VLAN과 다른 VLAN에서 수신됩니다.(포트 VLAN ID 불일치 또는 *PVID_Inc).
유형 불일치—802.1Q가 아닌 트렁크에서 PVST+ BPDU를 수신합니다.
이 문서에서는 PVID와 유형의 마지막 두 불일치의 원인을 해결하는 방법에 대해 설명합니다.앞서 언급한 문서를 참조하여 다른 불일치를 해결하십시오.
이 문서의 독자는 STP 개념을 알고 있어야 합니다.
이 문서는 특정 소프트웨어 또는 하드웨어 버전으로 제한되지 않습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참조하십시오.
Cisco Catalyst 스위치는 ISL(Inter-Switch Link) 트렁크를 사용하여 PVST를 구현합니다.IEEE 802.1Q 및 ISL 트렁킹을 지원하므로, 모든 VLAN을 위한 단일 스패닝 트리의 PVST와 IEEE 802.1Q 개념 간의 상호 운용이 필요했습니다.이 요구 사항을 해결하기 위해 PVST+ 기능이 도입되었습니다.
참고: STP 관점에서 IEEE 802.1D는 VLAN을 인식하지 않으며 IEEE 802.1Q는 VLAN을 인식하지만 모든 VLAN에 대해 단일 STP 인스턴스를 사용합니다.즉, 포트가 차단되면 해당 포트의 모든 VLAN에 대해 차단됩니다.포워딩에도 마찬가지입니다.
이 목록은 IEEE 802.1Q 트렁크의 네이티브 VLAN이 VLAN 1인 경우 PVST+가 IEEE 802.1Q 또는 IEEE 802.1D와 상호 작용하는 방법을 보여줍니다.
VLAN 1 STP BPDU는 태그가 지정되지 않은 IEEE STP MAC 주소(0180.c200.0000)로 전송됩니다.
VLAN 1 STP BPDU는 태그가 지정되지 않은 PVST+ MAC 주소로도 전송됩니다.
비 VLAN 1 STP BPDU는 PVST+ MAC 주소(SSTP[Shared Spanning Tree Protocol] MAC 주소, 0100.0ccc.cccd라고도 함)로 전송되며 해당 IEEE 802.1Q VLAN 태그가 지정됩니다.
IEEE 802.1Q 트렁크의 네이티브 VLAN이 VLAN 1이 아닌 경우:
VLAN 1 STP BPDU는 해당 IEEE 802.1Q VLAN 태그가 지정된 PVST+ MAC 주소로 전송됩니다.
VLAN 1 STP BPDU는 태그되지 않은 IEEE 802.1Q 트렁크의 네이티브 VLAN에 있는 IEEE STP MAC 주소로도 전송됩니다.
비 VLAN 1 STP BPDU는 해당 IEEE 802.1Q VLAN 태그가 지정된 PVST+ MAC 주소로 전송됩니다.
참고: 네이티브 VLAN STP BPDU는 태그가 지정되지 않은 상태로 전송됩니다.
이렇게 하면 PVST+의 VLAN 1 STP가 IEEE 802.1D 또는 802.1Q의 STP와 병합되는 반면, 다른 VLAN은 IEEE 802.1D 또는 802.1Q 브리지의 클라우드를 통해 터널링됩니다.예를 들어, IEEE 802.1D 또는 802.1Q 클라우드는 1이 아닌 PVST+ VLAN에 대한 "와이어"와 유사합니다.
STP가 올바르게 작동하려면 PVST+ 브리지를 IEEE 802.1D 또는 802.1Q 브리지에 연결할 때 특정 규칙을 준수하십시오.주요 규칙은 PVST+ 브리지가 IEEE 802.1Q 또는 802.1D 브리지의 클라우드에 연결되는 모든 브리지에서 일관된 네이티브 VLAN이 있는 IEEE 802.1Q 트렁크를 통해 IEEE 802.1D 또는 802.1Q 브리지에 연결해야 한다는 것입니다.
PVST+ BPDU에는 PVST+ 브리지가 이전 규칙이 적용되지 않는지 여부를 탐지할 수 있는 VLAN 번호가 포함되어 있습니다.Catalyst 스위치가 잘못된 컨피그레이션을 탐지하면 해당 포트는 "PVID-inconsistent" 또는 "type-inconsistent" 상태로 전환되며, 이는 해당 포트의 해당 VLAN의 트래픽을 효과적으로 차단합니다.이러한 상태는 컨피그레이션 오류 또는 배선 오류 원인이 되는 전달 루프를 방지합니다.
불일치 탐지의 필요성을 설명하기 위해 스위치 A와 C가 PVST+ STP를 실행하고 스위치 B가 802.1Q STP를 실행하는 이 토폴로지를 고려하십시오.
VLAN 1에 있는 루트의 BPDU가 VLAN 2에 있는 루트의 BPDU보다 나은 경우 VLAN 2 토폴로지에는 차단 포트가 없습니다.VLAN 2의 BPDU는 토폴로지를 "완전한 원"으로 만들지 않습니다.B는 PVST+의 VLAN 1 STP와 병합된 하나의 STP만 실행하므로 B-C 링크의 VLAN 1 BPDU로 교체됩니다.따라서 포워딩 루프가 있습니다.다행히 스위치 A는 VLAN 2의 PVST+ BPDU(스위치 B에 의해 플러딩되는 SSTP 주소로)를 스위치 C로 전송합니다. 스위치 C는 포트 C-B를 유형 불일치 상태로 전환하여 루프를 방지합니다.
참고: 일부 명령 출력에서는 *-consistent STP 상태를 "끊김"이라고 합니다.
STP 불일치가 탐지되면 스위치는 다음 syslog 메시지를 전송합니다.
%SPANTREE-2-RECV_1Q_NON_TRUNK: Received IEEE 802.1Q BPDU on non trunk FastEthernet0/1 on vlan 1. %SPANTREE-2-BLOCK_PORT_TYPE: Blocking FastEthernet0/1 on vlan 1. Inconsistent port type. %SPANTREE-2-RX_1QPVIDERR: Rcved pvid_inc BPDU on 1Q port 3/25 vlan 1 %SPANTREE-2-RX_BLKPORTPVID: Block 3/25 on rcving vlan 1 for inc peer vlan 10 %SPANTREE-2-TX_BLKPORTPVID: Block 3/25 on xmtting vlan 10 for inc peer vlan
이 예에서 VLAN 1은 BPDU가 수신된 곳이고 VLAN 10은 BPDU가 시작된 곳입니다.불일치가 탐지되면 이 BPDU가 수신되는 포트에서 두 VLAN이 모두 차단됩니다
참고: 메시지는 사용 중인 Cisco IOS® Software Release 또는 Catalyst OS(CatOS) 운영 체제의 유형과 버전에 따라 달라질 수 있습니다.
참고: 포트가 일관성 없는 BPDU의 수신을 중지하면 *-일관성 없는 상태가 지워지고 STP가 정상 STP 작업에 따라 포트 상태가 변경됩니다.변경 사항을 나타내는 syslog 메시지가 전송됩니다.
%SPANTREE-SP-2-UNBLOCK_CONSIST_PORT: Unblocking FastEthernet0/1 on vlan 1. Port consistency restored.
PVST+ 작업에 대한 자세한 내용은 IEEE 802.1Q VLAN 간 브리징 을 참조하십시오.
일관성 없는 포트 목록을 확인하기 위해 최근 Cisco IOS 기반 STP 구현에서는 show spanning-tree unconsistent ports 명령을 지원합니다.
대부분의 경우 포트에서 STP 불일치를 탐지하는 이유는 분명합니다.
액세스 포트는 IEEE 802.1Q 태그 있는 SSTP BPDU를 수신합니다.
이 시나리오에서 브리지 A의 액세스 포트는 브리지 B에서 1이 아닌 VLAN의 STP에서 태그가 지정된 PVST+ BPDU를 수신합니다. A의 포트는 유형 불일치 상태로 전환됩니다.
참고: 스위치를 직접 연결할 필요는 없습니다.하나 이상의 IEEE 802.1D 또는 IEEE 802.1Q 스위치 또는 심지어 허브를 통해 연결되어 있는 경우 그 효과는 동일합니다.
IEEE 802.1Q 트렁킹 포트는 BPDU가 수신된 VLAN과 일치하지 않는 VLAN 유형, 길이, 값(TLV)을 가진 태그 없는 SSTP BPDU를 수신합니다.
이 시나리오에서 A의 트렁크 포트는 VLAN 2의 STP에서 VLAN 2의 태그를 사용하여 PVST+ BPDU를 수신합니다. 이렇게 하면 A의 포트가 VLAN 1과 VLAN 2에서 모두 차단됩니다.
Point-to-Point 링크의 양쪽 끝에 있는 디바이스가 Cisco Catalyst 스위치인 경우 로컬 및 원격 포트 컨피그레이션을 검사하면 컨피그레이션 불일치가 일반적으로 나타납니다.
포트는 한 쪽에서 IEEE 802.1Q 트렁킹을 위해 구성되지만 다른 쪽은 액세스 포트입니다.
IEEE 802.1Q 트렁크는 양쪽에 있지만 네이티브 VLAN은 다릅니다.
이러한 경우 컨피그레이션 불일치를 수정하여 STP 불일치를 해결합니다.
경우에 따라 이유를 파악하는 것이 쉽지 않을 수도 있습니다.
BPDU는 여러 디바이스가 있는 공유 미디어에서 수신됩니다.
PVST+ 스위치가 클라우드에 연결되는 동안 IEEE 802.1D 또는 802.1Q STP 모델을 구현하는 스위치 클라우드에서 BPDU를 수신합니다.
BPDU는 일부 터널 뒤에서 제공됩니다(예: Data Link Switch Plus [DLSw+] 클라우드, L2 프로토콜 터널링, EoMPLS, VPL[Virtual Path Links], LAN Emulation [LANE] 등).
이 예에서는 스위치 B가 잘못 구성되어 SSTP BPDU를 클라우드에 삽입합니다.따라서 스위치 A, C 및 D의 포트가 유형 일관성이 없게 됩니다.문제는 "문제가 되는" BPDU를 시작하는 디바이스가 영향을 받는 스위치에 직접 연결되지 않았다는 것입니다.따라서 트렁크에 많은 디바이스가 있는 경우 모든 디바이스를 트러블슈팅하는 데 시간이 걸릴 수 있습니다.
다행히 이 문제를 해결하기 위한 체계적인 접근 방식이 있습니다.
BPDU의 소스 MAC 주소와 브리지 ID를 전송합니다.이 작업은 문제가 발생하는 동안 수행해야 합니다.
"잘못된" BPDU를 시작하는 브리지를 찾습니다.이 작업은 문제가 발생할 경우 나중에 수행할 수 없습니다.
1단계의 경우 일반적으로 두 가지 옵션이 있습니다.패킷 분석기를 사용하거나 debug를 활성화하여 수신된 BPDU의 덤프를 확인합니다.
STP BPDU를 덤프하기 위해 디버그를 사용하는 방법에 대한 자세한 내용은 Cisco Integrated IOS(Native Mode)를 실행하는 Catalyst 스위치에서 STP 문제 해결의 STP Debugging Commands 섹션을 참조하십시오.
다음은 수신된 BPDU를 보여 주는 디버그 출력의 예입니다.
*Mar 14 19:33:27: STP SW: PROC RX: 0100.0ccc.cccd<-0030.9617.4f08 type/len 0032 *Mar 14 19:33:27: encap SNAP linktype sstp vlan 10 len 64 on v10 Fa0/14 *Mar 14 19:33:27: AA AA 03 00000C 010B SSTP *Mar 14 19:33:27: CFG P:0000 V:00 T:00 F:00 R:8000 0050.0f2d.4000 00000000 *Mar 14 19:33:27: B:8000 0050.0f2d.4000 80.99 A:0000 M:1400 H:0200 F:0F00 *Mar 14 19:33:27: T:0000 L:0002 D:0001
소스 MAC 주소를 알고 브리지 ID를 보내면 이 MAC 주소가 속한 디바이스를 찾아야 합니다.이 문제는 스위치가 일반적으로 BPDU 프레임에서 소스의 MAC 주소를 인식하지 못하기 때문에 복잡할 수 있습니다.show mac-address-table address BPDU_mac_address 명령(Cisco IOS 기반 스위치의 경우) 또는 show cam mac_address 명령(CatOS 기반 스위치의 경우)을 실행하면 일반적으로 항목이 없습니다.
"잘못된" MAC 주소를 찾는 한 가지 방법은 클라우드에 연결된 모든 스위치에서 show spanning-tree(Cisco IOS용) 또는 show spantree(CatOS용) 명령의 출력을 수집하는 것입니다.이러한 명령 출력에는 각 브리지의 브리지 ID에 대한 정보가 포함됩니다.
Boris# show spanning-tree !--- Use with Cisco IOS. VLAN0001 Spanning tree enabled protocol rstp Root ID Priority 0 Address 0007.4f1c.e847 Cost 131 Port 136 (GigabitEthernet3/8) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address 00d0.003f.8800 !--- Output suppressed. Doris (enable) show spantree !--- Use with CatOS. VLAN 1 Spanning tree mode RAPID-PVST+ Spanning tree type ieee Spanning tree enabled Designated Root 00-07-4f-1c-e8-47 Designated Root Priority 0 Designated Root Cost 123 Designated Root Port 9/7 Root Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec Bridge ID MAC ADDR 00-d0-03-ef-4c-00 !--- Output suppressed.
참고: 모델, 소프트웨어 버전 및 컨피그레이션에 따라 스위치에는 여러 브리지 ID MAC 주소가 있을 수 있습니다.다행히 모든 주소는 일반적으로 특정 범위(예: 0001.1234.5600~0001.1234.5640)에 있습니다. 하나의 브리지 ID MAC 주소를 알고 있는 경우 전송 브리지 ID MAC 주소(1단계에서 찾음)가 지정된 브리지 ID MAC 주소 범위에 속하는지 확인할 수 있습니다.
네트워크 관리 툴을 사용하여 모든 브리지의 브리지 ID를 수집할 수도 있습니다.
"잘못된" BPDU를 전송하는 브리지를 찾은 후에는 클라우드에 연결되는 포트의 구성을 확인해야 합니다.동일한 클라우드에 연결하는 다른 스위치와의 일관성(비트렁킹 및 네이티브 VLAN과 달리 트렁킹)이 있는지 확인합니다.
브리지가 적절한 BPDU를 전송하지만 터널링 클라우드 내에서 잘못 수정되는 경우가 발생할 수 있습니다.이 경우 클라우드로 들어오는 "잘못된" BPDU는 다른 브리지의 구성과 일치하지만, 클라우드를 종료할 때 동일한 BPDU가 일관되지 않음을 확인할 수 있습니다(예: BPDU가 다른 VLAN에서 클라우드를 종료하거나 태그가 지정되거나 태그가 지정되지 않음). 이러한 경우 "위반" BPDU의 소스 MAC 주소가 전송 브리지 ID와 동일한 브리지에 속하는지 확인하는 데 도움이 될 수 있습니다.그렇지 않으면 BPDU의 소스 MAC 주소를 소유하는 브리지를 찾아 해당 컨피그레이션을 확인할 수 있습니다.
BPDU의 소스 MAC 주소를 소유하는 스위치를 찾으려면 브리지 ID를 찾는 데 사용되는 것과 동일한 접근 방식을 따를 수 있습니다. 단, show module 명령 출력이 검사됩니다(Catalyst 4000, 5000 및 6000). Catalyst 2900 XL, 3500 XL, 2950 및 3550의 경우 show interface 명령의 출력을 검사하여 포트에 속하는 MAC 주소를 확인해야 합니다.
Cat4000-IOS# show module !--- Use for Catalyst 4000,5000,6000 Mod Ports Card Type Model Serial No. ----+-----+--------------------------------------+-----------------+----------- 1 2 1000BaseX (GBIC) Supervisor(active) WS-X4515 ZZZ00000001 5 14 1000BaseT (RJ45), 1000BaseX (GBIC) WS-X4412-2GB-T ZZZ00000002 M MAC addresses Hw Fw Sw Status --+--------------------------------+---+------------+----------------+--------- 1 000a.4172.ea40 to 000a.4172.ea41 1.2 12.1(12r)EW 12.1(14)E1, EARL Ok 5 0001.4230.d800 to 0001.4230.d80d 1.0 Ok !--- Output suppressed. cat3550# show interface | i bia Hardware is Gigabit Ethernet, address is 0002.4b28.da80 (bia 0002.4b28.da80) Hardware is Gigabit Ethernet, address is 0002.4b28.da83 (bia 0002.4b28.da83) Hardware is Gigabit Ethernet, address is 0002.4b28.da86 (bia 0002.4b28.da86) Hardware is Gigabit Ethernet, address is 0002.4b28.da88 (bia 0002.4b28.da88) Hardware is Gigabit Ethernet, address is 0002.4b28.da89 (bia 0002.4b28.da89) !--- Output suppressed.
참고: 클라우드가 DLSw+인 경우 DLSw 및 802.1Q 이해 및 구성을 참조하십시오.