핵심 인사이트 (3줄 요약)

  1. 본질: BPDU (Bridge Protocol Data Unit)는 스위치들이 스패닝 트리(STP)를 구축하고 유지하기 위해 2초마다 서로 주고받는 스위치들만의 은밀한 자기소개서이자 상태 보고서다.
  2. 핵심 내용물: BPDU 패킷 안에는 스위치의 랭킹을 매기는 기준점인 **브리지 ID(우선순위+MAC)**와 대장까지의 거리 비용(Root Path Cost) 등 STP 선거에 필요한 모든 파라미터가 담겨 있다.
  3. 안전장치 (BPDU Guard): BPDU는 스위치끼리만 주고받아야 하는데, 해커가 PC에서 가짜 BPDU를 쏘아 자기가 "대장(Root Bridge)" 스위치인 척 네트워크를 장악하려 할 수 있다. 이를 막기 위해 PC가 꽂힌 포트에는 BPDU가 들어오면 즉각 차단하는 BPDU 가드(Guard) 보안 설정이 필수다.

Ⅰ. 개요 및 필요성 (Context & Necessity)

  • 개념: 이더넷 스위치들이 Spanning Tree Protocol (STP) 정보를 교환하기 위해 사용하는 멀티캐스트 전용 프레임. (목적지 MAC이 01:80:C2:00:00:00인 특수 프레임)

  • 필요성: 스위치 A, B, C가 원형으로 연결되어 있을 때, 서로 말 한마디 섞지 않고 누가 대장(Root Bridge)을 할지, 어느 포트를 막을지(Block) 눈치 게임으로 정할 수는 없다. 누군가는 "내 아이디가 1등이야!"라고 소리쳐야 하고, 나머지는 "알겠습니다 대장!"이라고 응답해야 한다. 이 통신수단이 BPDU다.

  • 💡 비유: BPDU는 마피아 조직(스위치 네트워크)의 두목을 뽑기 위한 **"명함 교환식"**과 같습니다. 2초마다 조직원들끼리 명함을 돌리며 서로의 '전투력(우선순위 값)'을 확인하고 서열을 유지합니다. 만약 두목이 20초(Max Age) 동안 명함을 돌리지 않으면 "두목이 경찰에 잡혀갔다(선로 끊어짐)!"라고 판단하고 새로운 두목 선거를 엽니다.

📢 섹션 요약 비유: BPDU는 스위치들끼리만 사용하는 **"암호가 걸린 무전기 채널"**입니다. 이 무전으로 선거 유세를 하고 대열(Tree)을 유지하며, 일반 PC(사용자 데이터)는 이 무전 채널을 전혀 듣지 못합니다.


Ⅱ. BPDU의 종류와 동작 원리 (Deep Dive)

1. 두 가지 형태의 BPDU

STP 세계에서는 평시와 비상시를 나누어 두 가지의 명함을 쓴다.

  1. Configuration BPDU (설정 BPDU):
    • 대장(Root Bridge) 스위치가 "내가 대장이야, 다들 잘 지내고 있지?"라며 2초(Hello Time)에 한 번씩 주기적으로 뿜어내는 엽서다.
    • 쫄따구 스위치들은 이 엽서를 받아보고 "아 대장님 살아계시네" 안심하며 자신의 다른 포트로 이 엽서를 전달(Relay)해 준다.
  2. TCN BPDU (Topology Change Notification):
    • 비상 연락망이다. 쫄따구 스위치의 꽂혀 있던 선이 갑자기 툭 빠지거나 끊어지면(토폴로지 변화), 쫄따구가 대장을 향해 "대장님! 큰일 났습니다! 선이 하나 끊어졌습니다!"라고 위로 쏘아 올리는 긴급 경보다.
 ┌─────────────────────────────────────────────────────────────┐
 │                Configuration BPDU의 핵심 내용물               │
 ├─────────────────────────────────────────────────────────────┤
 │                                                             │
 │   ┌─────────────────────────────────────────────────────┐   │
 │   │ Root ID  : 이 마을 대장님의 ID (우선순위 + 대장 MAC)       │   │
 │   │ Cost     : 대장님 집까지 가는 데 드는 거리(비용) 누적값     │   │
 │   │ Bridge ID: 이 명함을 뿌린 내 ID (우선순위 + 내 MAC)        │   │
 │   │ Port ID  : 이 명함이 뿜어져 나간 내 포트 번호             │   │
 │   │ Timers   : Hello Time(2초), Max Age(20초) 등 규정시간    │   │
 │   └─────────────────────────────────────────────────────┘   │
 │                                                             │
 │   * 선거 원칙: 스위치는 남의 BPDU를 받으면 자기 정보와 비교하여,    │
 │     상대방이 나보다 숫자가 작으면 무릎을 꿇고, 내가 작으면 이긴다!   │
 └─────────────────────────────────────────────────────────────┘

2. BPDU와 토폴로지 변경의 폭풍 (TCN 발생 시)

  1. 말단 스위치 포트가 죽으면 TCN BPDU를 뿌린다.
  2. 대장(Root)이 이 소식을 접하면, "동네 지형이 바뀌었으니, 너네가 외우고 있던 MAC 주소 테이블 싹 다 폐기해!"라는 특수 명령(TC 비트 세팅)을 담아 다음번 Configuration BPDU를 동네 전체에 뿌린다.
  3. 이를 받은 스위치들은 300초가 기준이던 MAC 에이징 타임을 15초로 확 줄여서 예전 지도(MAC 테이블)를 싹 날려버리고 처음부터 다시 학습(Learning)을 시작한다. (이 15초 동안은 엄청난 플러딩 트래픽이 발생한다)

3. 실무 보안 필수: BPDU Guard (BPDU 가드)

사내 직원이 장난으로 자기 자리에 싸구려 공유기(허브)를 하나 가져와 벽 랜포트에 꽂고 둥글게 루프를 만들면 회사 망이 터진다. 또한 해커가 조작된 BPDU(우선순위 0번)를 만들어 쏘면 자기가 대장 행세를 하며 트래픽을 가로챈다. 이를 막기 위해 일반 PC나 프린터가 연결되는 Access 포트에는 반드시 spanning-tree bpduguard enable 명령어를 입력해 두어야 한다. 이 포트로 BPDU 패킷이 단 1개라도 들어오는 순간 스위치는 "어? 여긴 PC 자리인데 왜 스위치 명함이 날아오지?" 하며 즉시 포트를 완전히 셧다운(Error-Disabled) 시켜 망을 보호한다.

📢 섹션 요약 비유: BPDU는 스위치들의 **"신분증과 심장박동 센서"**가 결합된 것입니다. 2초마다 쿵쾅거리는 박동(Hello)이 멈추면 조직은 비상사태(TCN)를 선포하고 새로운 수술(STP 재계산)에 들어갑니다.