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

  1. 본질: OSPF 라우터가 부팅되어 완벽한 지형도를 그려내기까지의 과정은, 옆 라우터와 **"인사(Hello) -> 정보 엽서 교환(LSA) -> 전체 지도 완성(LSDB)"**이라는 3단계의 매우 체계적이고 수다스러운 핑퐁 과정을 거친다.
  2. Hello 패킷과 인접성 (Adjacency): OSPF 라우터는 무작정 정보를 뿌리지 않고, 먼저 10초마다 Hello 패킷을 쏘아보내 "우리 동네 비밀번호(Area ID)랑 타이머 똑같니?"라며 깐깐하게 면접을 본 뒤 통과한 놈하고만 **친구(Neighbor)를 맺고 깊은 관계(Adjacency)**로 발전한다.
  3. LSA와 LSDB의 완성: 친구를 맺으면 각자 자기가 가진 선로 상태(IP, 서브넷 마스크, Cost)를 적은 LSA(Link State Advertisement) 엽서를 미친 듯이 주고받으며, 모든 라우터의 메모리에 토시 하나 안 틀리고 100% 똑같은 **동네 전체 지도(LSDB)**를 복사해 넣는다.

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

  • 개념: OSPF 라우터가 네트워크 토폴로지를 동기화하기 위해 이웃을 탐색하고, 링크 상태 데이터베이스(LSDB)를 일치시키기 위해 5가지 OSPF 패킷(Hello, DBD, LSR, LSU, LSAck)을 교환하는 상태 머신 과정.

  • 필요성: 수백 대의 라우터가 무식하게 자기 지형도를 한꺼번에 허공에 뿌리면(Flooding) 네트워크는 그 자체의 소음(오버헤드) 때문에 뻗어버린다. "누가 내 진짜 찐친(Adjacency)인지 먼저 호구조사(Hello)를 깐깐하게 하고, 친구를 맺은 놈들끼리만 내가 모르는 빈칸(LSR)만 콕 집어서 서로 물어보며(LSU) 스마트하게 지도를 복사(LSDB Sync)하자!"라는 정교한 동기화 프로토콜이 필요했다.

  • 💡 비유: OSPF의 지도 동기화 과정은 조별 과제 스터디와 같습니다.

    • Hello (인사): 스터디원끼리 "너도 네트워크 3조니? (Area ID 확인)" 하고 인사를 나눕니다.
    • LSA (엽서): "나는 1장 요약본 있어!", "나는 2장 요약본 있어!"라고 각자 조사해 온 A4 용지 조각입니다.
    • LSDB (전체 지도): 이 A4 용지들을 복사기(LSU)에 넣고 윙 돌려서, 조원 5명이 **"완벽히 똑같은 두께의 최종 보고서 파일(LSDB)"**을 한 부씩 똑같이 손에 쥐게 되는 과정입니다.

📢 섹션 요약 비유: OSPF 라우터들은 퍼즐 맞추기 대회 참가자입니다. 먼저 **"너도 우리 팀이니?(Hello)"**라고 명찰을 확인하고, 자기가 들고 있는 **퍼즐 조각(LSA)**을 테이블에 쏟아냅니다. 모두가 힘을 합쳐 **"완성된 거대한 한 폭의 그림(LSDB)"**을 완성하는 팀워크의 결정체입니다.


Ⅱ. OSPF의 5가지 패킷과 동기화 상태 변화 (Deep Dive)

1. OSPF 5가지 패킷 (암기 필수)

OSPF는 이 5개의 편지 봉투로 모든 대화를 끝낸다.

  1. Type 1 (Hello): 10초마다 쏜다. "안녕? 나 살아서 잘 있어! 너랑 나랑 친구(Neighbor) 할 조건 맞나 맞춰보자."
  2. Type 2 (DBD / DD): "이게 내 수첩(LSDB) 목차(요약본)야! 너랑 나랑 책 두께가 똑같은지 목차만 먼저 대조해 보자."
  3. Type 3 (LSR): "어? 네 목차 보니까 나한테 없는 페이지(LSA)가 있네? 그 페이지 좀 복사해 줘! (요청)"
  4. Type 4 (LSU): "오냐, 네가 달라고 한 페이지(LSA 엽서 모음집) 여기 복사해 준다! (던져줌)"
  5. Type 5 (LSAck): "네가 준 페이지 잘 받았어! 땡큐! (수신 확인 영수증)"

2. OSPF 상태 변화 (State Machine) - 2Way에서 Full까지

라우터 A와 B가 처음 만나서 완벽한 찐친(Full)이 되는 과정이다.

  • Init (초기화): A가 B의 Hello를 방금 처음 들었다. 아직 내 이름은 불리지 않았다.
  • 2-Way (양방향): B의 Hello 패킷 안에 "어 나 A 알아!"라고 내 이름이 적힌 걸 확인했다. 드디어 서로 알게 되었다! (이웃 맺기 성공).
  • ExStart (교환 시작): "자, 이제 목차(DBD) 교환하자! 누가 선공 칠래?" 라우터 ID가 높은 놈이 대장(Master)이 된다.
  • Exchange (교환): 서로 목차(DBD)를 툭툭 던져준다.
  • Loading (로딩 중): 목차를 보고 앗! 나한테 없는 게 있네? LSR로 물어보고 LSU로 진짜 LSA 조각들을 팍팍 받아온다.
  • Full (완벽한 인접성): A와 B의 지형도(LSDB) 100% 동기화 완료! 이제부터는 찐친(Adjacency)이며, 평소엔 10초마다 Hello만 던지며 생사만 확인한다.
 ┌─────────────────────────────────────────────────────────────┐
 │                OSPF 상태 머신(State Machine) 핵심 도식          │
 ├─────────────────────────────────────────────────────────────┤
 │                                                             │
 │   [ 라우터 A ]                                [ 라우터 B ]     │
 │       │ ── 1. "안녕 나 A야" (Hello) ─────────▶ (Init 상태) │
 │       │                                                     │
 │   (2Way)◀─ 2. "안녕 A야 나 B야" (Hello) ───────── │             │
 │   서로 친구 됨!                                                 │
 │                                                             │
 │       │ ── 3. "이게 내 지도 목차다" (DBD) ──────▶           │
 │       ◀── 4. "네 목차 3쪽 나한테 줘봐" (LSR) ─────│ (Loading)  │
 │       │ ── 5. "옛다 3쪽 복사본!" (LSU) ─────────▶           │
 │       ◀── 6. "잘 받았음!" (LSAck) ─────────────│             │
 │                                                             │
 │   ▶ "로딩 끝! 너와 내 머릿속의 지도(LSDB)는 이제 100% 똑같다! (Full)"│
 └─────────────────────────────────────────────────────────────┘
  • LSA는 그 자체로 패킷이 아니라, Type 4(LSU)라는 택배 상자 안에 들어가는 **'데이터 알맹이(내용물)'**다.
  • LSA 안에는 라우터의 이름(Router ID), 어떤 포트에 어떤 IP와 마스크가 꽂혀있는지, 그 길의 Cost(대역폭 점수)는 얼마인지 등 라우터의 "신상 명세서"가 아주 낱낱이 적혀 있다.

📢 섹션 요약 비유: Hello 패킷은 소개팅에서 **"나이랑 취미 맞는지 호구조사"**하는 것이고, LSA는 각자의 살아온 **"이력서(상태)"**이며, LSDB는 그 이력서들을 철해놓은 **"회사 전체 직원 명부"**입니다. OSPF는 모든 라우터가 이 직원 명부를 100% 똑같이 나눠 갖는 완벽한 동기화 시스템입니다.