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

  1. 본질: OSPF에서 DR(Designated Router, 반장)과 BDR(Backup DR, 부반장) 제도는 스위치(이더넷) 하나에 라우터 수십 대가 다 같이 물려있는 왁자지껄한 동네에서, 모든 놈들이 서로 1:1로 친구(Adjacency)를 맺고 떠들다 대역폭이 폭발하는 것을 막기 위해 선출하는 "중앙 통제 반장님" 시스템이다.
  2. LSA 플러딩 최소화: 평민(DROther) 라우터들은 서로 대화하지 않는다. 골목길에 변화가 생기면 오직 반장(DR)에게만 은밀히 보고(224.0.0.6)하고, 반장(DR)이 그 내용을 싹 다 취합해서 깔끔하게 온 동네 평민들에게 쫙 뿌려주는(224.0.0.5) 허브 앤 스포크(Hub & Spoke) 방식으로 소음을 1/100로 줄인다.
  3. 선거의 룰: 반장은 "Priority(우선순위) 설정값이 가장 높은 놈"이, 그다음은 "라우터 ID(IP 주소)가 가장 높은 놈"이 선출되며, 한 번 반장이 뽑히면 나중에 더 높은 점수를 가진 놈이 전학을 와도 절대 반장 자리를 뺏기지 않는 '기득권 보장(Non-Preemptive)' 룰을 가진다.

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

  • 개념: OSPF가 Broadcast Multi-Access 환경(이더넷 스위치망 등)에서 LSA(링크 상태 엽서)의 무분별한 플러딩을 억제하고 Adjacency(인접성) 맺는 횟수를 줄이기 위해 선출하는 대표 라우터(DR)와 예비 라우터(BDR).

  • 필요성: 스위치 하나에 라우터 5대가 꽂혀 있다 치자. 5대가 서로서로 1:1 찐친(Adjacency)을 맺으려면 수학 공식으로 $n(n-1)/2 = 10$ 개의 인접성이 생기고 엽서도 그만큼 날아다닌다. 만약 라우터가 100대 꽂혀 있다면? 인접성이 무려 4,950개가 생겨 스위치는 OSPF 엽서 폭풍에 휩싸여(Flooding Storm) 사망한다. "야! 100명이 서로 떠들지 말고, '반장' 한 명 딱 뽑아! 99명의 평민은 무조건 반장이랑만 1:1로 찐친을 맺고 정보는 반장한테만 줘! 반장이 다 취합해서 스피커로 한방에 공지할게!!"라는 미친 최적화 아이디어다.

  • 💡 비유:

    • DR이 없을 때: 100명의 학생이 교실에서 "내 숙제 봐라!" 하면서 99명의 친구들에게 각자 자기 숙제 99장을 복사해서 날리는 **아수라장(대역폭 폭발)**입니다.
    • DR이 있을 때: **"반장(DR)"**이 교탁에 섭니다. 99명의 학생(평민)은 조용히 반장에게만 자기 숙제 1장씩을 제출합니다. 반장이 99장을 다 모아서 예쁘게 제본한 다음, **"자, 이게 우리 반 전체 숙제 모음집(LSDB)이다!"**라며 한 방에 쫙 뿌려줍니다. 교실은 눈물 나게 조용해집니다.

📢 섹션 요약 비유: DR(반장) 제도는 거미줄처럼 엉킨 수백 개의 실타래를, 바퀴살(Spoke)들이 오직 중앙 축(Hub, DR) 하나하고만 연결되는 자전거 바퀴 모양으로 아주 깔끔하게 빗질하여 재정렬하는 극강의 통신망 다이어트입니다.


Ⅱ. DR/BDR 선출 원리와 멀티캐스트의 분업 (Deep Dive)

1. 멀티캐스트의 핑퐁 (224.0.0.5 vs 224.0.0.6)

OSPF는 멍청하게 브로드캐스트를 쓰지 않고 조용한 단톡방(멀티캐스트)을 2개 판다.

  • 224.0.0.5 (모든 라우터 듣기 방): 동네에 있는 100대의 모든 평민, 반장, 부반장이 다 들어와 있는 스피커 방이다. 반장(DR)이 공지사항을 뿌릴 때 쓴다.
  • 224.0.0.6 (반장/부반장 전용 귓속말 방): 평민(DROther)들은 이 방에 못 들어온다. 평민이 선로가 끊겨서 비상 보고를 할 때 이 방으로 쏙 밀어 넣으면, 오직 반장(DR)과 부반장(BDR) 둘만 그 비보를 조용히 챙겨 듣는다.

2. 평민(DROther)들의 인접성 상태

DR이 있는 환경에서, 평민 라우터(DROther)들끼리 show ip ospf neighbor 명령어를 쳐보면 상태가 **2-Way (그냥 아는 사이)**에서 멈춰있고 절대로 Full (완벽한 찐친)로 넘어가지 않는다. 왜냐하면 "평민끼리는 정보(LSA)를 1:1로 주고받지 않는다"는 룰 때문이다. 평민은 오직 반장(DR)과 부반장(BDR)하고만 Full 상태를 맺는다. (시험에 100% 나오는 단골 개념이다).

3. 피 튀기는 반장 선거 (Election)

스위치 전원을 켜면 40초(Wait Timer) 동안 반장 선거가 벌어진다.

  1. 1순위 (Priority): 인터페이스에 설정된 OSPF Priority 값(0~255)이 제일 높은 놈이 반장(DR)이 된다. (기본값은 전부 1이다). 만약 Priority를 0으로 세팅하면 "난 평생 반장 선거 안 나감(평민 확정)"이라는 뜻이다.
  2. 2순위 (Router ID): Priority가 1로 전부 동점이라면? "라우터 IP 주소가 가장 높은 놈"이 이긴다. (예: 10.1.1.1보다 192.168.1.1이 깡패라서 반장이 됨).
 ┌─────────────────────────────────────────────────────────────┐
 │                DR 선거의 절대 룰: 기득권 유지 (Non-Preemptive)     │
 ├─────────────────────────────────────────────────────────────┤
 │                                                             │
 │   1) 아침 9시: 동네에 꾸진 구형 라우터 A(IP: 1.1.1.1) 혼자 켜짐.     │
 │               "동네에 나 혼자네? 내가 당연히 반장(DR)이지!"         │
 │                                                             │
 │   2) 아침 10시: 초호화 최신형 라우터 B(IP: 200.200.200.200) 켜짐.  │
 │               "야! 내 IP 깡패인 거 안 보여? 반장 자리 내놔!!"       │
 │                                                             │
 │   3) OSPF의 심판: "안 돼 돌아가. 이미 A가 반장 완장 차고 통신 돌리고   │
 │                 있는데, 너한테 반장 주려고 판 다시 엎으면 통신 끊겨!"│
 │                                                             │
 │   ▶ 결과: OSPF 반장 선거는 '굴러온 돌이 박힌 돌을 절대 빼낼 수 없다'. │
 │           새로 온 B는 끽해야 부반장(BDR)밖에 못 먹는다.              │
 └─────────────────────────────────────────────────────────────┘

📢 섹션 요약 비유: 반장(DR) 선거의 '기득권 보장' 룰은, 회의가 이미 시작되어 진행 중일 때 늦게 들어온 사람이 아무리 **"내가 사장님 아들이야!"**라며 완장을 뺏으려 해도, 회의 진행의 흐름(통신 무중단)을 지키기 위해 **"다음 선거(라우터 재부팅) 때까지 넌 그냥 조용히 부반장이나 해!"**라고 질서를 유지하는 훌륭한 억제기입니다.