핵심 인사이트 (3줄 요약)
- 본질: 스패닝 트리 프로토콜(STP, Spanning Tree Protocol)은 스위치들이 선이 끊어져 죽는 것을 막기 위해 예비용으로 연결해 둔 둥근 우회로(Loop)에서, 소프트웨어적으로 1개의 선로를 억지로 막아(Block) 루핑(Broadcast Storm)을 예방하는 2계층 구원 투수다.
- 동작 원리 (수학적 트리): 수학의 그래프 이론에서 "루프가 없는 구조"를 뜻하는 '트리(Tree)'에서 유래했다. 스위치끼리 서로 BPDU 메시지를 교환하여 대장(Root Bridge)을 뽑고, 대장에게 가는 가장 빠른 길(포트)만 열어둔 채, 나머지 잉여 포트들은 "통행 금지(Blocking)" 시켜버린다.
- 자동 복구 (이중화의 핵심): 사용하던 선로(열려 있던 포트)가 물리적으로 끊어지면, 스위치들이 이를 감지하고 **차단해 두었던 예비 포트의 통행 금지를 50초 만에 스르륵 풀어서 통신을 복구(Self-healing)**한다. 안정성을 위해 필수 불가결한 기술이다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
-
개념: STP (Spanning Tree Protocol)는 IEEE 802.1D로 표준화된 데이터 링크 계층(2계층) 프로토콜로, 물리적으로 루프가 존재하는 네트워크 위에서 논리적으로 루프를 끊어낸 안전한 '트리' 구조의 경로를 실시간으로 자동 연산해 내는 알고리즘이다. 라디아 펄만(Radia Perlman)이 발명했다.
-
필요성: 기업 네트워크에서 메인 선로 하나가 끊어졌다고 직원 1000명이 인터넷을 못 쓰면 난리가 난다. 그래서 네트워크 설계자들은 스위치 간에 백업용 선(Redundancy)을 주렁주렁 달아 놓는다. 하지만 이렇게 다중 연결을 하면 100% 확률로 브로드캐스트 스톰(L2 루핑)이 발생해 1초 만에 망이 박살 난다. "선은 연결하되, 데이터가 무한히 돌지 못하게 한쪽 길을 임시로 잠가줄 똑똑한 신호등"이 절실했다.
-
💡 비유: 한강 다리가 끊어질까 봐 다리를 2개(메인 다리, 예비 다리) 지어 놨습니다. 그런데 차들이 두 다리를 통해 뺑글뺑글 꼬리물기(루핑)를 하며 교통 체증(브로드캐스트 스톰)을 유발합니다. STP는 예비 다리 입구에 "바리케이드(Block)"를 쳐서 평소엔 못 지나가게 막아두다가, 메인 다리가 무너지면 바리케이드를 치우고 예비 다리를 쓰게 해주는 톨게이트 관리자입니다.
📢 섹션 요약 비유: STP는 거미줄처럼 엉킨 실타래(루프 네트워크)를 가위로 싹둑싹둑 잘라서, 물이 역류하지 않고 폭포수처럼 위에서 아래로만 흐르는 **"완벽한 나무뿌리 모양(Spanning Tree)의 물길"**로 정돈해 주는 조경사입니다.
Ⅱ. STP의 3단계 동작 메커니즘 (Deep Dive)
STP는 스위치 전원을 켜자마자 자기들끼리 "BPDU"라는 엽서를 주고받으며 다음의 3단계 선거와 계산을 수행한다.
1단계: 전체 대장 스위치 선출 (Root Bridge)
- 스위치 마을에 단 한 명의 대장(Root)을 뽑는다. 기준은 **브리지 ID(Bridge ID)**가 가장 낮은(작은) 놈이다.
- 브리지 ID =
우선순위 번호(Priority) + 스위치의 MAC 주소. - 모든 스위치의 기본 우선순위는 32,768이다. 우선순위가 같으면 MAC 주소가 가장 낮은(공장에서 제일 옛날에 생산된) 고물 스위치가 대장이 되는 참사가 벌어질 수 있으므로, 관리자는 메인 코어 스위치의 우선순위를
4096등 낮게 강제 설정하여 대장으로 만들어야 한다.
2단계: 대장에게 가는 가장 빠른 길 찾기 (Root Port 선출)
- 대장(루트 브리지)이 아닌 나머지 스위치(Non-Root Bridge)들은 "내 포트들 중에 대장님한테 가는 가장 빠른 길이 어디지?"를 계산한다. 이 가장 빠르고 짧은 포트를 **루트 포트(RP)**라 부르며, 한 스위치당 무조건 딱 1개만 열린다.
- 기준(Cost)은 100Mbps 선은 Cost 19, 1Gbps 광랜은 Cost 4로, 값이 적을수록 빠른 길이다.
3단계: 도로의 통행권 배분 (Designated Port / Block Port)
- 이제 스위치와 스위치를 연결하는 '각각의 랜선(Segment)'마다 "이 선을 주도적으로 쓸 포트는 둘 중 누구지?"를 가린다. 이 뚫려 있는 포트가 **지정 포트(DP)**다.
- 대장(Root) 스위치의 모든 포트는 항상 DP다.
- 남은 포트 중에서, RP도 아니고 DP도 못 된 불쌍한 패배자 포트는 차단(Block, Non-Designated) 모드로 들어가 입을 다문다. 루프가 완벽히 끊어지는 순간이다.
┌─────────────────────────────────────────────────────────────┐
│ STP 동작 결과 도식 (루프 차단 과정) │
├─────────────────────────────────────────────────────────────┤
│ │
│ [ 루트 브리지 (대장!) ] │
│ (우선순위: 4096) │
│ DP ↙ ↘ DP │
│ (Cost 4) / \ (Cost 4) │
│ ↙ ↘ │
│ RP ↙ ↘ RP │
│ [ 스위치 B ] ──── (예비선) ──── [ 스위치 C ] │
│ DP BLOCK │
│ │
│ * 설명: │
│ 1) 대장은 우선순위가 낮은 위쪽 스위치. │
│ 2) B와 C는 대장으로 가는 RP(Root Port)를 하나씩 개통. │
│ 3) 밑의 예비선(B와 C 연결선)은 루프를 만드므로 닫아야 함. │
│ 4) C의 포트가 가위바위보(계산)에서 져서 BLOCK 처리됨. │
│ 5) 이로써 물리적으론 삼각형이지만, 논리적으론 'ㅅ' 모양(트리)이 됨! │
└─────────────────────────────────────────────────────────────┘
3. STP의 50초 지연 시간 문제
초창기 802.1D 표준 STP는 선로가 끊어졌을 때(장애 발생), 막아두었던 Block 포트를 열어 통신을 복구하는 데 무려 **50초(Max Age 20 + Listening 15 + Learning 15)**라는 끔찍하게 긴 시간이 걸렸다. 현대의 고속 네트워크에서 50초 단절은 치명적이므로, 이를 개선하여 1초 만에 복구하는 **RSTP (Rapid STP, 802.1w)**가 현재 업계의 기본 표준으로 자리 잡았다.
📢 섹션 요약 비유: STP는 각 스위치들이 서로 명함(BPDU)을 교환하여 서열(대장, 중간, 쫄따구)을 딱 정리한 다음, 쓸데없는 곁가지 도로에 바리케이드를 치는 완벽한 계급 기반의 교통정리 프로토콜입니다.