Cisco의 Spanning Tree Protocol(STP) 는 Layer 2(Ethernet) 네트워크에서 루프(Loop)를 방지하기 위한 프로토콜입니다. STP가 없다면 스위치 간 이중 연결(Redundant Link)이 있을 때 네트워크 전체가 마비될 수 있습니다.
1. 왜 STP가 필요한가?
이중 연결(Redundancy)
기업 네트워크에서는 장애를 대비하기 위해 스위치를 여러 개의 링크로 연결합니다.
SW1
/ \
/ \
SW2-----SW3
이 구조는 장애에는 강하지만 Ethernet은 TTL(Time To Live)이 없습니다.
즉, 브로드캐스트 프레임이 영원히 돌아다닐 수 있습니다.
그 결과
- Broadcast Storm
- MAC Address Table Instability
- Multiple Frame Copies
가 발생합니다.
이를 Layer2 Loop라고 합니다.
2. STP의 역할
STP는
물리적으로는 여러 경로를 유지하지만 논리적으로는 하나의 경로만 사용
하도록 만들어 줍니다.
예를 들어
SW1
/ \
/ \
SW2-----SW3
STP가 실행되면
SW1
/ \
/ X (Blocked)
SW2-----SW3
한 링크를 Block 상태로 만들어 루프를 제거합니다.
만약 활성 링크가 끊어지면
Blocked Link
↓
Forwarding
자동으로 활성화됩니다.
3. STP 동작 순서
Cisco STP는 크게 4단계로 동작합니다.
1. Root Bridge 선출
↓
2. Root Port 선정
↓
3. Designated Port 선정
↓
4. 나머지 포트 Block
4. Root Bridge
네트워크에는 Root Bridge가 반드시 하나 존재합니다.
모든 스위치는
“누가 Root가 될 것인가?”
를 먼저 결정합니다.
선정 기준은
가장 작은 Bridge ID
입니다.
Bridge ID는
Priority + MAC Address
로 구성됩니다.
예)
Priority : 32768
MAC : 00:11:22:33:44:55
↓
Bridge ID
Priority가 가장 낮은 스위치가 Root가 됩니다.
Priority가 같으면
MAC Address가 가장 작은 장비가 Root가 됩니다.
Bridge Priority
기본값
32768
Cisco에서는
0
4096
8192
12288
...
61440
처럼 4096 단위만 사용 가능합니다.
예)
SW1 Priority 4096
SW2 Priority 32768
↓
SW1 Root Bridge
5. BPDU (Bridge Protocol Data Unit)
STP는 스위치끼리
BPDU라는 패킷을 주고받습니다.
BPDU에는
- Root Bridge ID
- Sender Bridge ID
- Root Path Cost
- Port ID
등이 들어 있습니다.
BPDU를 통해
누가 Root인지
어느 경로가 가장 좋은지
계속 계산합니다.
기본 전송 주기
2초
6. Root Port
Root가 아닌 스위치는
Root로 가는 가장 좋은 포트를 하나 선택합니다.
이 포트를
Root Port
라고 합니다.
Root Port 선정 기준
가장 작은 Root Path Cost
예)
Root
|
Cost 4
|
SW2
SW2의 위쪽 포트가 Root Port입니다.
Root Port는
스위치마다 딱 하나입니다.
Root Bridge에는 Root Port가 없습니다.
7. Root Path Cost
링크 속도에 따라 Cost가 다릅니다.
오래된 Cost
| 속도 | Cost |
|---|---|
| 10Mbps | 100 |
| 100Mbps | 19 |
| 1Gbps | 4 |
| 10Gbps | 2 |
Cisco에서는 Long Path Cost도 지원합니다.
예)
| 속도 | Long Cost |
|---|---|
| 10M | 2,000,000 |
| 100M | 200,000 |
| 1G | 20,000 |
| 10G | 2,000 |
8. Designated Port
각 Segment마다
하나의 Designated Port가 존재합니다.
역할은
그 Segment 대표
입니다.
Designated Port는
Forwarding 상태입니다.
예)
SW1 ----- SW2
둘 중 하나가
Designated Port가 됩니다.
9. Blocking Port
Root Port도 아니고
Designated Port도 아닌 포트는
Blocking
상태가 됩니다.
즉
루프 방지를 위해
사용되지 않는 링크입니다.
10. Port State
기본 STP(802.1D)는
5개의 상태가 있습니다.
Blocking
↓
Listening
↓
Learning
↓
Forwarding
그리고
Disabled
도 있습니다.
Blocking
MAC 학습 안 함
데이터 전달 안 함
BPDU만 수신
Listening
Root 계산
BPDU 송수신
MAC 학습 안 함
Learning
MAC Address 학습
데이터 전달 안 함
Forwarding
정상 통신
MAC 학습
데이터 전달
Disabled
관리자가 Shutdown
11. Timer
기본 Timer
Hello Time
2초
Max Age
20초
Forward Delay
15초
따라서 장애 발생 시
20 + 15 +15
≈ 50초
정도 걸릴 수 있습니다.
이것이 기본 STP가 느리다고 하는 이유입니다.
12. RSTP (Rapid STP)
IEEE
802.1w
RSTP는 STP 개선판입니다.
복구 시간이
1~6초
정도로 매우 빠릅니다.
Port State도 단순해졌습니다.
Discarding
Learning
Forwarding
Cisco에서는 현재 대부분 RSTP를 사용합니다.
13. PVST+
Cisco만의 방식입니다.
Per VLAN Spanning Tree
즉
VLAN마다 각각 STP를 실행합니다.
예)
VLAN10
Root = SW1
-----------------
VLAN20
Root = SW2
로드밸런싱이 가능합니다.
14. Rapid PVST+
Cisco에서 가장 많이 사용하는 방식입니다.
RSTP
+
PVST
즉
VLAN별 Rapid STP입니다.
15. MST (Multiple Spanning Tree)
VLAN이 수백 개면
PVST는 CPU를 많이 사용합니다.
MST는
여러 VLAN
↓
하나의 STP Instance
로 묶습니다.
예)
Instance1
VLAN 1~100
Instance2
VLAN101~200
대규모 네트워크에서 많이 사용됩니다.
16. Cisco에서 사용하는 주요 명령어
STP 상태 확인
show spanning-tree
특정 VLAN 확인
show spanning-tree vlan 10
Root Bridge 확인
show spanning-tree root
인터페이스 상태
show spanning-tree interface g0/1
Root Bridge 설정
spanning-tree vlan 10 priority 4096
또는
spanning-tree vlan 10 root primary
Backup Root
spanning-tree vlan 10 root secondary
RSTP 사용
spanning-tree mode rapid-pvst
PortFast
PC가 연결된 Access Port에서는
interface g0/1
spanning-tree portfast
를 사용합니다.
장점
- 바로 Forwarding
- 부팅 시간 단축
주의: 스위치 간 연결(트렁크)에는 일반적으로 사용하지 않습니다. 잘못 적용하면 루프 위험이 커질 수 있습니다.
BPDU Guard
PortFast와 함께 자주 사용합니다.
interface g0/1
spanning-tree bpduguard enable
만약 BPDU를 받으면
Err-disable
상태로 만들어
루프를 예방합니다.
17. STP에서 자주 나오는 면접 질문
Q1. 왜 STP가 필요한가?
Layer 2 Loop를 방지하고 네트워크 안정성을 유지하기 위해 필요합니다.
Q2. Root Bridge는 어떻게 선출되는가?
Bridge ID(Bridge Priority + MAC Address)가 가장 작은 스위치가 Root Bridge가 됩니다.
Q3. Root Port는 몇 개인가?
Root Bridge를 제외한 각 스위치마다 하나입니다.
Q4. Designated Port는 몇 개인가?
각 네트워크 세그먼트마다 하나입니다.
Q5. Block Port는 언제 발생하는가?
루프를 방지하기 위해 Root Port와 Designated Port를 제외한 포트가 Blocking(또는 RSTP에서는 Discarding) 상태가 됩니다.
18. STP 선출 예제
SW1
Priority 4096
(Root)
/ \
4/ \4
/ \
SW2---4----SW3
- Root Bridge: SW1 (가장 낮은 Priority)
- SW2: SW1으로 향하는 포트가 Root Port
- SW3: SW1으로 향하는 포트가 Root Port
- SW2–SW3 링크: 한쪽은 Designated Port, 다른 한쪽은 Blocking(또는 RSTP에서는 Discarding)
핵심 요약
| 개념 | 핵심 내용 |
|---|---|
| 목적 | Layer 2 루프 방지 |
| Root Bridge | 가장 낮은 Bridge ID(Priority → MAC 순으로 비교) |
| Root Port | 각 비루트 스위치에서 Root까지의 최적 경로 포트 1개 |
| Designated Port | 각 세그먼트에서 프레임을 전달하는 대표 포트 1개 |
| Blocking/Discarding | 루프 방지를 위해 트래픽을 차단하는 포트 |
| BPDU | 스위치 간 STP 정보를 교환하는 메시지 |
| 기본 STP(802.1D) | 수렴 시간 약 30~50초 |
| RSTP(802.1w) | 일반적으로 1~6초 내 빠른 수렴 |
| Cisco 권장 | Rapid PVST+(VLAN별 RSTP) 또는 대규모 환경에서는 MST |
Cisco 환경에서는 STP → RSTP → PVST+ → Rapid PVST+ → MST의 차이와, Root Bridge 선출 과정, Root Port/Designated Port 결정 과정, BPDU 동작, PortFast 및 BPDU Guard의 활용을 이해하는 것이 가장 중요합니다.

답글 남기기