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 예시)
- 질의 (Query): 사용자가 브라우저나 프린터 설정에서
printer.local을 입력합니다. 기기는 외부 DNS로 가지 않고 로컬망 전체에 "누가 printer.local이야?" 라고 멀티캐스트(방송) 패킷을 던집니다. - 응답 (Response): 로컬망에 연결된 기기 중 자신의 이름이
printer.local인 프린터가 "그게 나야, 내 IP는 192.168.1.50 이야" 라고 멀티캐스트로 응답합니다. (다른 기기들도 이 응답을 듣고 캐시 해둠) - 통신 시작: 알아낸 IP 주소로 직접 유니캐스트 통신을 시작합니다.
Ⅳ. 제약 및 보안 취약점
- 라우터 통과 불가: 멀티캐스트 패킷의 특성상 로컬 네트워크(동일 서브넷) 안에서만 동작하며, 라우터를 넘어서 다른 네트워크로는 전파되지 않습니다.
- 보안 취약점 (스푸핑): 누구나 "내가 그 기기야"라고 가짜 응답을 던질 수 있어 중간자 공격(MitM) 에 취약합니다. (보안이 엄격한 기업 망에서는 차단 권장)
📢 섹션 요약 비유: 큰 도시에서 사람을 찾으려면 시청(DNS 서버)에 가서 주소록을 조회해야 하지만, 아주 작은 시골 마을에서는 동네 한가운데 서서 "김 서방 어디 살아!"(멀티캐스트) 하고 소리치면, 저 끝에서 "나 여기 살아!" 하고 대답하는 아주 간단하고 정겨운 시스템입니다.