Multicast DNS
1. 소개
Multicast Domain Name System(mDNS)는 로컬 네트워크 영역에서 설정없이(zero configuration) 호스트 이름을 찾기 위해서 사용하는 서비스이다. Unicast Domain Name System(DNS)와 유사한 프로그래밍 인터페이스 그리고 패킷을 사용한다. 소형 네트워크 환경에서 별도의 네임서버를 사용하지 않고 호스트를 찾을 수 있다.
mDNS는 멀티캐스트 기술을 이용한다. 애플의 Bonjour와 리눅스의 nss-mdns 서비스가 mDNS를 이용한다.
2. 프로토콜 개요
mDNS 클라이언트는 호스트 이름을 알아야 할 경우 IP 멀티캐스트 쿼리 메시지를 전송한다. 이때 자신의 호스트 이름과 IP 주소 등, 자신을 확인할 수 있는 정보들을 함께 전송한다. 멀티캐스트 채널에 있던 모든 호스트들은 이 정보를 수신해서 mDNS 캐쉬에 업데이트 한다.
패킷 구조를 제외하면 SSDP와 작동방식이 매우 유사함을 알 수 있다.
3. 패킷 구조
mDNS는 멀티캐스트 UDP 패킷이다.
- MAC 주소는 01:00:5E:00:00:FB(IPv4), 33:33:00:00:00:FB(IPv6)을 사용한다.
- IPv4 멀티캐스트 주소는 이며, IPv6 멀티캐스트 주소는 이다.
- UDP 포트 을 사용한다.
mDNS는 DNS 패킷을 모델로 하고 있다. Header와 Data(DNS Section) 두 부분으로 구성된다.
- ID(Transaction ID) : 클라이언트가 보낸 요청과 수신한 응답이 일치하는가의 확인을 위해 사용한다. 일종의 이다.
- Flags : 패킷의 타입이다. "00 00"은 질의, "84 00"은 응답이다.
- 질의 요청인 경우 패킷 데이터는 FQDN 주소와 QTYPE, QCLASS만 들어간다.
- 응답인 경우, Type, Class, TTL, RDLength, Rdata의 값이 추가된다.
IPv4 응답에서 사용하는 패킷 Data의 구조이다.
Name |
호스트 이름 |
Type |
QType |
Class |
QClass |
TTL |
Time To Live(초) |
RDLength |
데이터 길이 IPv4 주소라면 00 04 |
RData |
IPv4 주소 |
'Software > Network' 카테고리의 다른 글
UWB(Ultra Wide Band) (2) | 2022.09.01 |
---|---|
Device Discovery Protocol - SSDP(Simple Service Discovery Protocol) (0) | 2016.06.03 |
ZeroConf(Zero Configuration Networking) (2) | 2016.06.01 |
DHCP 프로토콜 기본 원리(Understanding the Basic Operations of DHCP) (1) | 2016.06.01 |
유니캐스트(UniCast), 브로드캐스트(BroadCast), 멀티캐스트(MultiCast) (0) | 2016.05.20 |