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

  1. 본질: SLAAC (Stateless Address Autoconfiguration)은 IPv6 환경에서 PC나 스마트폰이 공유기(DHCP 서버)의 도움 없이도 **"전원을 켜자마자 스스로 전 세계 유일무이한 128비트 공인 IP 주소를 완벽하게 조립해 내는 궁극의 자급자족 기술"**이다.
  2. NDP (Neighbor Discovery Protocol): 이 자급자족을 위해 컴퓨터는 먼저 혼자서 뒷자리(인터페이스 ID)를 만든 뒤, 동네 이장님(라우터)에게 "이 동네 앞자리 번호가 뭐죠?(RS)"라고 묻고 "여기 앞자리는 2001:db8 이야(RA)"라는 답을 듣는 NDP 기반의 소통 과정을 반드시 거친다.
  3. 무상태(Stateless)의 의미: DHCP 서버가 "10번 IP는 A에게 빌려줬음"이라고 장부(State)에 적어두는 유상태(Stateful)와 달리, SLAAC은 아무도 장부를 관리하지 않고 기계가 각자 알아서 주소를 찍어내므로 망 관리가 극도로 가벼워진다.

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

  • 개념: IPv6 호스트가 스스로 링크 로컬 주소를 생성한 후, 라우터로부터 네트워크 접두사(Prefix)를 받아 글로벌 유니캐스트 주소를 자동 생성하는 프로토콜.

  • 필요성: IoT 시대가 오면 집에 있는 냉장고, 전구, 청소기 100대에 IP를 줘야 한다. IPv4 시절처럼 공유기가 "너는 1번 해, 너는 2번 해"라며 하나하나 장부에 적어주다간(DHCP) 공유기 CPU가 터져버린다. "어차피 IPv6는 주소가 무한대인데 굳이 장부에 적으면서 쩨쩨하게 빌려줘야 해? 그냥 기계가 전원 켜지면 자기 MAC 주소 이용해서 스스로 IP 만들고, 라우터는 대충 동네 번호만 쿨하게 던져주자!"라는 철학에서 탄생했다.

  • 💡 비유:

    • DHCP (Stateful): 동사무소 직원이 줄 서 있는 시민들에게 **"당신은 101동 101호 쓰세요, 당신은 102호 쓰세요"**라며 일일이 배정하고 장부에 기록하는 방식.
    • SLAAC (Stateless): 시민이 아파트에 입주하자마자 자기 지문(MAC 주소)을 이용해 스스로 '가9z8'이라는 랜덤 호수를 문패에 파놓고, 경비실에 "아저씨, 여기 아파트 이름(Prefix)이 뭐예요?"라고 물어서 **"자이 아파트"**란 답을 들은 뒤, 최종적으로 자기 집 주소를 **"자이 아파트 가9z8호"**로 완성하는 방식. 경비 아저씨는 장부에 아무것도 안 적습니다.

📢 섹션 요약 비유: SLAAC은 공산국가의 철저한 "배급제(DHCP)" 시스템에서 벗어나, 각자가 자기가 쓸 주소를 알아서 만들어 쓰는 완벽한 "자유 시장 경제(자급자족)" 시스템으로의 진화입니다.


Ⅱ. SLAAC의 4단계 동작 원리와 보안 문제 (Deep Dive)

1. 1단계: 링크 로컬 주소 생성 및 DAD

  • PC에 랜선을 꽂으면 PC는 즉시 자기 랜카드의 MAC 주소를 반으로 가르고 FF:FE를 집어넣는 'EUI-64' 공식을 써서 **링크 로컬 주소(FE80::xxxx)**를 스스로 만들어 랜카드에 박는다.
  • DAD (Duplicate Address Detection): 혹시라도 이 주소를 동네 누군가 우연히 쓰고 있을까 봐, "이거 쓰는 사람 있어?"라고 허공에 물어본다(NS 패킷). 아무 대답이 없으면 사용 확정! (이제 동네 라우터와 대화할 입이 생겼다).

2. 2단계: RS (Router Solicitation) 발송

  • 이제 바깥(인터넷)으로 나갈 진짜 공인 IP가 필요하다.
  • PC는 아까 만든 FE80 주소를 출발지로 삼아, 목적지를 FF02::2(동네에 있는 모든 라우터만 들어라! 라는 멀티캐스트 주소)로 세팅한 RS(라우터 요청) 메시지를 던진다. "라우터님, 저 인터넷 하고 싶은데 우리 동네 앞자리(Prefix) 좀 알려주세요!"

3. 3단계: RA (Router Advertisement) 수신

  • 라우터가 RS를 들으면, RA(라우터 광고) 메시지를 동네방네(또는 요청한 PC에게) 뿌린다.
  • "어, 우리 동네 글로벌 앞자리(Prefix)는 2001:db8:acad:1::/64 란다! 그리고 내(게이트웨이) 주소는 이거야!"

4. 4단계: 주소 조립 완성과 인터넷 개통

  • PC는 라우터가 던져준 앞자리 2001:db8:acad:1::에다가 자기가 1단계에서 깎아놓은 뒷자리(인터페이스 ID)를 레고 블록처럼 풀로 딱 이어 붙인다.
  • 0.1초 만에 전 세계에서 유일한 128비트 글로벌 유니캐스트 주소(공인 IP)가 완성되고, 즉시 유튜브를 볼 수 있게 된다.
 ┌─────────────────────────────────────────────────────────────┐
 │                NDP(RS/RA)를 통한 SLAAC 조립 마법               │
 ├─────────────────────────────────────────────────────────────┤
 │                                                             │
 │   [ 스마트폰 ]                                 [ 라우터 ]      │
 │     │ (내 MAC으로 만든 뒷자리: 1234:5678:9abc:def0)           │
 │     │                                                       │
 │     │ 1. "공인 IP 만들게 앞자리 좀 주소!" (RS 발송)               │
 │     ├─────────────────────────────────────────▶           │
 │     │                                                       │
 │     │ 2. "오냐, 우리 동네는 2001:abcd:0001:0002 란다" (RA 발송) │
 │     ◀─────────────────────────────────────────┤           │
 │                                                             │
 │   3. 스마트폰 왈: "앞자리 받았으니 합체!!"                       │
 │      [앞 64비트] 2001:abcd:0001:0002 : [뒤 64비트] 1234:5678:9abc:def0 │
 │                                                             │
 │   ▶ 결과: DHCP 서버가 없어도 완벽한 공인 IP가 세팅되었다.           │
 └─────────────────────────────────────────────────────────────┘

5. SLAAC의 한계 (DNS 문제)

SLAAC은 IP 주소와 기본 게이트웨이는 완벽하게 잡아주지만, 치명적인 단점이 하나 있었다. 바로 DNS 서버 주소를 안 알려준다는 것이다. (라우터가 뿌리는 초기 RA 규격에 DNS 칸이 없었다). 그래서 SLAAC으로 IP를 혼자 뚝딱 만들어놓고도 네이버(www.naver.com)에 접속하려니 DNS를 몰라 접속이 안 되는 황당한 사태가 벌어졌다. 결국 나중에 RDNSS라는 확장 규격을 붙이거나, IP는 SLAAC으로 알아서 만들되 DNS 정보만 DHCP 서버에서 살짝 받아오는 Stateless DHCPv6라는 혼종 방식으로 해결했다.

📢 섹션 요약 비유: SLAAC은 셀프 조립 가구(IKEA)입니다. 라우터가 프레임(앞자리 Prefix)만 택배로 툭 던져주면, 사용자(PC)가 자기 집에 있는 드라이버(MAC 주소)로 부품을 이어 붙여 알아서 의자(IP 주소)를 완성해 내는 극강의 무인 자동화 시스템입니다.