Cisco의 BPDU Guard는 Spanning Tree Protocol(STP) 환경에서 가장 중요한 보안 기능 중 하나입니다. 주로 Access Port에 스위치가 연결되는 것을 방지하여 네트워크 장애를 예방하는 역할을 합니다.
1. BPDU란?
BPDU (Bridge Protocol Data Unit)는 STP에서 스위치끼리 주고받는 제어 패킷입니다.
BPDU를 통해 다음과 같은 정보를 교환합니다.
- Root Bridge 정보
- Bridge Priority
- Path Cost
- Port 역할(Role)
- Port 상태(State)
예를 들어
Switch A <--------BPDU--------> Switch B
이 BPDU를 이용하여 STP가 루프를 방지합니다.
2. BPDU Guard가 필요한 이유
기업에서는 보통
PC
|
Access Port
|
Switch
처럼 Access Port에는 PC만 연결됩니다.
그런데 사용자가 몰래 스위치를 하나 가져와 연결하면
회사 Switch
|
Access Port
|
개인 Switch
개인 스위치는 STP BPDU를 보내기 시작합니다.
이때
- Root Bridge가 변경될 수도 있고
- STP Topology가 변경되고
- 일부 포트가 Block 되면서
- 대규모 네트워크 장애가 발생할 수 있습니다.
이를 막는 기능이 BPDU Guard입니다.
3. BPDU Guard 동작 원리
Access Port에서
BPDU를 하나라도 수신하면
즉시
Err-disable
상태로 변경합니다.
즉
PC Port
↓
BPDU 수신
↓
Port Shutdown (Err-disable)
입니다.
동작 예시
정상 상황
Switch
|
Access Port
|
PC
BPDU 없음
↓
정상 통신
비정상 상황
Switch
|
Access Port
|
개인 Switch
개인 스위치가
BPDU
전송
↓
BPDU Guard 감지
↓
Interface Gi0/10
↓
Err-disable
↓
통신 차단
로그 예시
Cisco에서 흔히 보는 메시지
%SPANTREE-2-BLOCK_BPDUGUARD
Received BPDU on PortFast-enabled port.
Disabling interface Gi1/0/10.
또는
%PM-4-ERR_DISABLE:
bpduguard error detected on Gi1/0/10,
putting Gi1/0/10 in err-disable state
4. 왜 Err-disable을 사용하는가?
Cisco는
“누군가 스위치를 연결했다.”
라고 판단하기 때문에
관리자가 확인하기 전까지
포트를 강제로 막습니다.
PortFast와의 관계
BPDU Guard는 대부분
PortFast와 같이 사용합니다.
interface Gi0/1
spanning-tree portfast
spanning-tree bpduguard enable
PortFast는
“이 포트는 PC가 연결되는 포트”
라는 의미입니다.
PC는 BPDU를 보내지 않습니다.
따라서
BPDU가 들어오면
“스위치가 연결되었구나.”
라고 판단하는 것입니다.
설정 방법
① 인터페이스별 설정
interface GigabitEthernet1/0/10
spanning-tree portfast
spanning-tree bpduguard enable
② 모든 PortFast 포트에 적용(권장)
conf t
spanning-tree portfast default
spanning-tree portfast bpduguard default
그러면
모든 PortFast 인터페이스가
자동으로 BPDU Guard를 사용합니다.
Cisco에서는 이 방식을 권장합니다.
Err-disable 복구 방법
방법 1 (수동)
interface Gi1/0/10
shutdown
no shutdown
방법 2 (자동)
errdisable recovery cause bpduguard
errdisable recovery interval 300
300초 후 자동 복구됩니다.
하지만 BPDU가 계속 들어오면
다시 Err-disable됩니다.
5. BPDU Filter와의 차이
많이 헷갈리는 부분입니다.
| 기능 | BPDU Guard | BPDU Filter |
|---|---|---|
| BPDU 수신 | 감지 | 무시하거나 송신 중단(설정 방식에 따라 동작 다름) |
| BPDU 발견 시 | 포트를 Err-disable | BPDU 처리 억제 |
| 목적 | 보안 | STP 제어/특수 환경 |
| 권장 여부 | 매우 권장 | 신중하게 사용 |
BPDU Guard는 보안을 위한 기능이고, BPDU Filter는 STP 동작 자체를 변경하므로 일반적인 액세스 포트에서는 신중하게 사용해야 합니다.
Root Guard와의 차이
| 기능 | BPDU Guard | Root Guard |
|---|---|---|
| 목적 | Access 포트 보호 | Root Bridge 보호 |
| BPDU 수신 | Err-disable | Root가 되려는 BPDU만 차단 |
| 포트 상태 | Err-disable | Root Inconsistent |
| 사용 위치 | Access Port | Uplink/Distribution 연결 |
예를 들어,
Core
|
Distribution
|
Access
|
PC
- BPDU Guard: Access → PC 연결 포트에 사용
- Root Guard: Distribution → Access 스위치 연결 포트 등에서, 하위 스위치가 Root Bridge가 되는 것을 방지할 때 사용
실제 운영 환경에서의 권장 사항
일반적으로 기업 네트워크에서는 다음과 같이 구성하는 것이 가장 많이 권장됩니다.
- 사용자 PC가 연결되는 모든 Access Port에 PortFast 적용
- 모든 PortFast 포트에 BPDU Guard 적용
- 스위치 간 연결(Uplink, Trunk)에는 BPDU Guard를 적용하지 않음
- Root Bridge를 보호해야 하는 포트에는 Root Guard 사용
- 필요 시 Loop Guard, UDLD 등과 함께 사용하여 추가적인 STP 보호 기능을 구성
6. 핵심 요약
- BPDU Guard는 Access Port에서 BPDU를 받으면 즉시 해당 포트를 Err-disable 상태로 만들어 STP 관련 장애를 예방하는 기능입니다.
- 일반적으로 PortFast와 함께 사용하며, 사용자 단말이 연결되는 포트의 표준 보안 설정으로 널리 사용됩니다.
- 스위치 간 연결 포트에는 적용하지 않는 것이 원칙입니다. 잘못 적용하면 정상적인 BPDU까지 차단되어 연결이 끊길 수 있습니다.
답글 남기기