이 문서에서는 STP(스패닝 트리 프로토콜)의 BPDU(PortFast and Bridge Protocol Data Unit) 가드 개선 기능에 대해 설명합니다.
이 문서에 대한 특정 요건이 없습니다.
이러한 소프트웨어 버전에는 STP PortFast BPDU 가드가 도입되었습니다.
Catalyst 6500/6000 플랫폼용 Cisco IOS® 소프트웨어 릴리스 12.0(7)XE
Catalyst 4500/4000 Supervisor Engine III용 Cisco IOS 소프트웨어 릴리스 12.1(8a)EW
Catalyst 4500/4000 Supervisor Engine IV용 Cisco IOS 소프트웨어 릴리스 12.1(12c)EW
Catalyst 2900XL 및 3500XL 시리즈용 Cisco IOS 소프트웨어 릴리스 12.0(5)WC5
Catalyst 3750 Series 스위치용 Cisco IOS 소프트웨어 릴리스 12.1(11)AX
Catalyst 3750 Metro 스위치용 Cisco IOS 소프트웨어 릴리스 12.1(14)AX
Catalyst 3560 Series 스위치용 Cisco IOS 소프트웨어 릴리스 12.1(19)EA1
Catalyst 3550 Series 스위치용 Cisco IOS 소프트웨어 릴리스 12.1(4)EA1
Catalyst 2970 Series 스위치용 Cisco IOS 소프트웨어 릴리스 12.1(11)AX
Catalyst 2955 Series 스위치용 Cisco IOS 소프트웨어 릴리스 12.1(12c)EA1
Catalyst 2950 Series 스위치용 Cisco IOS 소프트웨어 릴리스 12.1(6)EA2
Catalyst 2950 LRE(Long-Reach Ethernet) 스위치용 Cisco IOS Software 릴리스 12.1(11)EA1
Catalyst 2940 Series 스위치용 Cisco IOS Software 릴리스 12.1(13)AY
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참조하십시오.
올바르게 설계된 스위치드 네트워크에서 STP(Spanning Tree Protocol)는 중복 경로를 차단 상태로 전환하여 레이어 2 루프를 방지합니다. 정상적으로 가동되는 모든 포트는 사용자 트래픽을 전달하기 전에 STP 상태(수신, 학습 및 최종 전달)를 거칩니다. 기존 802.1D의 통합 지연은 스위치 간 링크에는 약 30초가 적당하지만 PC, 서버 또는 프린터와 같은 엔드 호스트에 연결된 포트에는 필요하지 않으며, 이는 자체적으로 스위칭 루프를 생성할 수 없습니다.
문제는 엔드 호스트에 연결하는 포트가 STP BPDU(Bridge Protocol Data Unit)를 전혀 수신하지 않아야 한다는 것입니다. BPDU가 이러한 포트에 도착하면 일반적으로 다음 두 가지 문제 중 하나를 알립니다. 누군가 무단 스위치를 연결했거나, 디바이스에서 브리지를 에뮬레이트하는 소프트웨어를 실행 중입니다. 어떤 경우든 토폴로지를 불안정하게 할 수 있습니다. 특히 비인가 디바이스가 상위 브리지 ID를 광고하고 루트 브리지 선택을 강요하는 경우, 해당 디바이스는 절대 참여하지 않아야 합니다.
실제 사례는 위험을 보여줍니다. Linux 기반 브리징 애플리케이션을 실행하는 사용자 PC가 액세스 포트에 연결되었습니다. 애플리케이션이 낮은 브리지 우선 순위를 요구하는 BPDU를 전송했기 때문에 네트워크에서 PC를 루트 브리지로 선택했습니다. 이로 인해 전체 스패닝 트리 토폴로지가 전력이 부족한 호스트로 전환되어 링크가 혼잡해지고 네트워크 중단이 발생했습니다. BPDU Guard는 이러한 유형의 실패를 방지하기 위해 정확하게 존재합니다.
PortFast는 액세스 또는 트렁크 포트를 차단 상태에서 전달 상태로 즉시 전환하여 수신 및 학습 단계를 건너뜁니다. 이렇게 하면 엔드 디바이스에 연결된 포트의 시작 지연이 사라지는데, 이는 즉각적인 네트워크 액세스가 필요한 호스트(예: 부팅 시 DHCP를 사용하는 워크스테이션)에 중요합니다.
PortFast는 단일 엔드 스테이션에 연결된 포트에만 사용됩니다. 다른 스위치에 연결된 포트에서 이 포트를 활성화하면 STP가 이중 경로를 탐지하기 전에 포트가 포워딩을 시작하기 때문에 루프 위험 STP가 다시 발생합니다.
BPDU Guard는 PortFast 지원 포트가 BPDU를 볼 수 없다는 가정을 적용하여 PortFast 기능을 보완합니다. BPDU Guard가 활성화되고 포트가 BPDU를 수신하면 스위치가 즉시 포트를 errdisable 상태로 설정하여 종료합니다. 이렇게 하면 두 가지 방법으로 토폴로지가 보호됩니다.
포트가 단순히 차단되는 것이 아니라 관리상 비활성화되기 때문에 네트워크 운영자의 주의가 이벤트에 집중되고 문제가 해결될 때까지 해당 디바이스가 깨끗하게 격리됩니다.
errdisable 복구를 구성하지 않으면 errdisable에 있는 포트는 자체적으로 복구되지 않습니다. 인터페이스를 수동으로 다시 활성화하거나(종료 후 종료 안 함) BPDU Guard 원인에 대한 자동 복구를 구성할 수 있습니다.
이 메시지는 다음과 같은 예입니다.
2000 May 12 15:13:32 %SPANTREE-2-RX_PORTFAST:Received BPDU on PortFast enable port. Disabling 2/1 2000 May 12 15:13:32 %PAGP-5-PORTFROMSTP:Port 2/1 left bridge port 2/1
다음 예를 고려하십시오.
브리지 연결
토폴로지는 코어 및 액세스 레이어를 형성하는 3개의 스위치와 엔드 디바이스로 구성됩니다.
다른 모든 STP 매개변수가 기본값으로 남아 있으면 STP는 예상대로 통합됩니다. 스위치 A가 루트로 선택되고 이중 경로가 차단되어 루프가 끊어집니다. 특히, 스위치 B와 마주보는 스위치 C 포트는 차단 상태에 놓입니다(해당 링크의 빨간색 "X"로 표시됨). 점선 화살표는 토폴로지를 통과하는 STP BPDU의 정상적인 흐름을 추적합니다. 이는 PortFast가 디바이스 D에 즉각적인 연결을 제공하는 한편 STP가 이중화 코어 링크를 조용히 관리하는 안정적인 네트워크라고 볼 수 있습니다.
Linux 기반 브리지 애플리케이션이 PC에서 실행됨
이 예에서는 BPDU Guard를 중지하도록 설계한 시나리오와 같이 디바이스 D가 단순 엔드 호스트처럼 동작을 중지하고 STP에 참여하기 시작할 때 어떤 일이 발생하는지 보여줍니다. Linux 기반 브리지 애플리케이션이 PC(Device D)에서 실행됩니다. 애플리케이션에서 브리지 우선 순위 0(또는 현재 루트 우선 순위보다 낮은 값)을 광고합니다. STP는 항상 가장 낮은 브리지 ID를 선호하므로 Linux 기반 브리지가 루트 선택을 획득하고 스위치 A에서 루트 브리지 역할을 이어받습니다.
이렇게 다시 선택하면 전체 토폴로지가 재형성됩니다. 두 코어 스위치(A 및 B) 간 고속 기가비트 이더넷 링크가 차단으로 전환됩니다(코어 링크로 이동하는 빨간색 "X"로 표시됨). 따라서 이전에 기가비트 코어를 사용한 모든 VLAN 트래픽은 더 느린 100Mbps 경로로 이동됩니다. 트래픽 수요가 해당 링크에서 제공할 수 있는 범위를 초과하면 스위치에서 프레임 삭제를 시작하며, 그 결과 연결 중단이 발생합니다.
BPDU Guard가 어떻게 이 문제를 방지합니까? 스위치 C가 디바이스 D에 대한 포트에서 PortFast를 활성화했으므로 해당 포트는 BPDU를 수신하지 않아야 합니다. 디바이스 D가 STP BPDU를 전송하는 순간 BPDU 가드는 포트를 errdisable 상태로 전환하여 종료합니다. 디바이스 D는 루트 선택에 영향을 미치기 전에 격리되며, 핵심 토폴로지는 그대로 유지됩니다.
권장 방법은 호스트측 액세스 포트에서 PortFast 및 BPDU Guard를 함께 활성화하는 것입니다. 전역 또는 인터페이스별로 STP PortFast BPDU Guard를 활성화하거나 비활성화할 수 있습니다. 기본적으로 STP BPDU 가드는 비활성화되어 있습니다.
CatSwitch-IOS(config-if)#spanning-tree portfast CatSwitch-IOS(config-if)#spanning-tree bpduguard enable
CatSwitch-IOS(config)#spanning-tree portfast bpduguard default
global 명령을 사용하면 PortFast로 구성된 모든 포트가 자동으로 BPDU Guard를 상속하므로 각 인터페이스에서 개별적으로 설정할 필요가 없습니다.
STP BPDU 가드가 포트를 비활성화하면 포트가 수동으로 활성화되지 않는 한 포트는 비활성 상태로 유지됩니다. errdisable 상태에서 자동으로 자신을 다시 활성화하도록 포트를 구성할 수 있습니다. 다음 명령을 실행하여 errdisable-timeout 간격을 설정하고 시간 제한 기능을 활성화합니다.
CatSwitch-IOS(config)#errdisable recovery cause bpduguard CatSwitch-IOS(config)#errdisable recovery interval 400
이 기능이 활성화되었는지 또는 비활성화되었는지 확인하려면 다음 해당 명령을 실행합니다.
CatSwitch-IOS#show spanning-tree summary totals Root bridge for: none. PortFast BPDU Guard is enabled UplinkFast is disabled BackboneFast is disabled Spanning tree default pathcost method used is short Name Blocking Listening Learning Forwarding STP Active -------------------- -------- --------- -------- ---------- ---------- 1 VLAN 0 0 0 1 1 CatSwitch-IOS#
| 개정 | 게시 날짜 | 의견 |
|---|---|---|
4.0 |
05-Jun-2026
|
맞춤법, 문법, 간격 및 소개를 업데이트했습니다. |
3.0 |
12-May-2025
|
Cisco 지침을 준수하기 위해 포맷이 업데이트되었습니다. |
2.0 |
22-Mar-2024
|
서식이 업데이트되었습니다. 수정된 CCW 알림. 재인증. |
1.0 |
29-Nov-2001
|
최초 릴리스 |