기존 STP의 문제
앞서 STP는 루프를 막기 위해 특정 포트를 Blocking한다고 했다.
그런데 여기서 한 가지 문제가 생긴다.
기본 STP는 VLAN을 구분하지 않는다.
예를 들어 VLAN 10과 VLAN 20이 있어도, STP는 하나의 트리만 만든다.
즉, VLAN 10 트래픽이나 VLAN 20 트래픽이나 똑같은 경로를 사용한다.

우측 상단의 Fa0/1는 항상 Blocking이다. VLAN 10도, VLAN 20도 이 링크를 못 쓴다.
PVST란?
PVST(Per-VLAN Spanning Tree) 는 VLAN마다 별도의 STP 인스턴스를 운영하는 방식이다.
Cisco 전용 프로토콜이며, 기본 STP를 VLAN 단위로 확장한 것이다.
기본 STP: VLAN 전체에 STP 인스턴스 1개
PVST: VLAN 10 → STP 인스턴스 1개
VLAN 20 → STP 인스턴스 1개
VLAN 30 → STP 인스턴스 1개
...
PVST의 핵심 장점 — 로드밸런싱
VLAN마다 Root Bridge를 다르게 설정할 수 있다.
이를 통해 링크를 놀리지 않고 트래픽을 분산할 수 있다.

| VLAN 10 | VLAN 20 | |
| Root Bridge | SW2 | SW3 |
| SW1 → SW2 링크 | VLAN 10 트래픽 담당 | Blocking |
| SW1 → SW3 링크 | Blocking | VLAN 20 트래픽 담당 |
→ 두 링크 모두 활용 가능, 기본 STP 대비 대역폭 2배 활용
설정 방법 (Cisco)
Root Bridge Priority 설정
# VLAN 10의 Root Bridge를 SW2로 지정
SW2(config)# spanning-tree vlan 10 priority 4096
# VLAN 20의 Root Bridge를 SW3으로 지정
SW3(config)# spanning-tree vlan 20 priority 4096
Priority는 4096의 배수로만 설정 가능하다. (0, 4096, 8192, 12288 ...)
낮을수록 Root Bridge로 선출될 확률이 높다.
간편 설정 명령어
# 해당 스위치를 VLAN 10의 Root Bridge로 자동 설정
SW2(config)# spanning-tree vlan 10 root primary
# 해당 스위치를 VLAN 10의 Backup Root Bridge로 자동 설정
SW2(config)# spanning-tree vlan 10 root secondary
# VLAN별 STP 상태 확인
SW1# show spanning-tree vlan 10
SW1# show spanning-tree vlan 20
# 전체 VLAN STP 요약
SW1# show spanning-tree summary
출력 결과에서 Root ID와 Bridge ID가 같으면 해당 스위치가 Root Bridge다.
PVST의 한계
PVST는 강력하지만 단점도 있다.
| 한계 | 설명 |
| Cisco 전용 | 타사 장비와 혼용 환경에서 호환성 문제 |
| 수렴 시간 느림 | 기본 STP와 동일하게 30~50초 소요 |
| VLAN 많을수록 부하 증가 | VLAN 100개면 STP 인스턴스도 100개 |
특히 수렴 시간 문제가 가장 크다.
링크 장애가 발생하면 50초 가까이 통신이 끊기는 건 실무에서 치명적이다.
→ 이 문제를 해결하기 위해 나온 것이 RSTP(Rapid Spanning Tree Protocol) 다.
마치며
PVST의 핵심은 두 가지다.
- VLAN마다 독립적인 STP 인스턴스 → 세밀한 제어 가능
- VLAN별 Root Bridge 분리 → 로드밸런싱으로 링크 낭비 제거
실무에서 Cisco 장비만 쓰는 환경이라면 PVST는 기본 설정이다.
다음 편에서는 수렴 시간 문제를 해결한 RSTP를 다룬다.
'Network & Infra > STP' 카테고리의 다른 글
| RSTP(Rapid Spanning Tree Protocol) - 50초를 1초로 줄이다 (0) | 2026.05.19 |
|---|---|
| STP(Spanning Tree Protocol) 선출 원리 (0) | 2026.05.17 |

