521. mDNS (Multicast DNS) / LLMNR

핵심 인사이트: 집에 프린터나 스마트 TV를 새로 샀을 때, 일일이 IP를 묻지 않아도 스마트폰에서 LivingRoom-TV.local처럼 바로 찾을 수 있는 마법. 로컬 네트워크 안에서 중앙 DNS 서버 없이 서로서로 이름을 묻고 답하는 분산형 이름 해석 기술이다.

Ⅰ. mDNS / LLMNR의 개념

일반적인 인터넷 환경에서는 도메인 이름을 IP로 변환하기 위해 외부의 지정된 DNS 서버(예: 8.8.8.8)가 반드시 필요합니다. 그러나 가정이나 소규모 사무실 같은 로컬 네트워크(LAN) 에서는 전담 DNS 서버를 구축하기 어렵습니다. 이럴 때 중앙 서버 없이도 로컬 네트워크에 연결된 기기들끼리 호스트 이름을 IP 주소로 변환해 주는 프로토콜이 mDNS(Multicast DNS)와 LLMNR입니다.

Ⅱ. 주요 프로토콜 비교

구분mDNS (Multicast DNS)LLMNR (Link-Local Multicast Name Resolution)
주체 / 표준Apple 주도 (Bonjour 기술의 핵심), IETF 표준Microsoft 주도 (Windows 환경 최적화)
작동 방식224.0.0.251 멀티캐스트 주소(UDP 5353)로 질의224.0.0.252 멀티캐스트 주소(UDP 5355)로 질의
특징(접미사)호스트 이름 뒤에 반드시 .local 접미사를 붙임접미사 없이 단일 호스트 이름(예: my-pc) 사용 가능
지원 기기macOS, iOS, 프린터, 스마트 홈 기기 널리 사용주로 Windows PC 간의 파일/프린터 공유 시 사용

Ⅲ. 동작 과정 (mDNS 예시)

  1. 질의 (Query): 사용자가 브라우저나 프린터 설정에서 printer.local을 입력합니다. 기기는 외부 DNS로 가지 않고 로컬망 전체에 "누가 printer.local이야?" 라고 멀티캐스트(방송) 패킷을 던집니다.
  2. 응답 (Response): 로컬망에 연결된 기기 중 자신의 이름이 printer.local인 프린터가 "그게 나야, 내 IP는 192.168.1.50 이야" 라고 멀티캐스트로 응답합니다. (다른 기기들도 이 응답을 듣고 캐시 해둠)
  3. 통신 시작: 알아낸 IP 주소로 직접 유니캐스트 통신을 시작합니다.

Ⅳ. 제약 및 보안 취약점

  • 라우터 통과 불가: 멀티캐스트 패킷의 특성상 로컬 네트워크(동일 서브넷) 안에서만 동작하며, 라우터를 넘어서 다른 네트워크로는 전파되지 않습니다.
  • 보안 취약점 (스푸핑): 누구나 "내가 그 기기야"라고 가짜 응답을 던질 수 있어 중간자 공격(MitM) 에 취약합니다. (보안이 엄격한 기업 망에서는 차단 권장)

📢 섹션 요약 비유: 큰 도시에서 사람을 찾으려면 시청(DNS 서버)에 가서 주소록을 조회해야 하지만, 아주 작은 시골 마을에서는 동네 한가운데 서서 "김 서방 어디 살아!"(멀티캐스트) 하고 소리치면, 저 끝에서 "나 여기 살아!" 하고 대답하는 아주 간단하고 정겨운 시스템입니다.