mDNS 【multicast DNS】 マルチキャストDNS
概要
mDNS(multicast DNS)とは、ローカルネットワーク内でホスト名からIPアドレスを割り出すために用いられる通信規約(プロトコル)の一つ。DNS(Domain Name System)の問い合わせをIPマルチキャストで同報送信する。ドメイン名とIPアドレスを対応付けるDNSでは通常、DNSサーバが名前とアドレスの対応関係を管理しており、クライアントはサーバに対して問い合わせを行う。
一方、mDNSはローカルネットワーク内に問い合わせを一斉配信し、同じネットワークのすべてのホストに同時に問い合わせを行う。問い合わせホスト名に一致するホストは名乗り出て、自分のIPアドレスを応答する。これにより情報を管理するDNSサーバが存在しなくても運用できる。
mDNSはIP(Internet Procotol)で同報送信を行うIPマルチキャストという仕組みに基づいており、「224.0.0.251」(IPv6の場合はff02::fb)という特殊なアドレスに問い合わせを送信する。トランスポート層にはUDP(User Datagram Protocol)が用いられ、デフォルトでは5353番ポートが使われる。
ヘッダなどの仕様は通常のDNSとほぼ同じだが、クエリやリソースレコードの一部の仕様が異なっている。デフォルトでは応答もマルチキャストされ、同じネットワーク内のすべてのホストが対応関係を把握することができるが、ユニキャストで問い合わせ元にのみ応答するよう指定することもできる。
通常は「.local」で終わるローカル用の特殊なトップレベルドメイン(TLD)での問い合わせが行われ、インターネットで用いられる通常のドメイン名の問い合わせには使用できない。mDNSの通信自体もホストが所属するローカルネットワークに限られ、インターネットで問い合わせや応答を送受信することはできない。
(2021.12.27更新)