mDNS(マルチキャストDNS)とは? .localアドレスと自動検索の仕組み

プリンターやスマートTVがDNSサーバーなしで名前だけから互いを見つけられる理由を解説します。

mDNS(マルチキャストDNS)とは

通常ドメイン名をIPアドレスに変換するにはインターネット上のどこかのDNSサーバーに問い合わせる必要がありますが、家庭やオフィス内のプリンター・スマートTV・スピーカーのような機器には専用のDNSサーバーを用意しにくいものです。mDNSはこうしたローカルネットワーク内で「自分の名前はこれだ」とマルチキャストで知らせ、他の機器が必要なときに同じ方式で問い合わせて応答を受け取る仕組みにより、DNSサーバーなしで名前解決を可能にします。

.localドメイン

mDNSで見つかる機器は、一般のドメインと区別するために「.local」という特別な最上位ドメインを使います。プリンターが「MyPrinter.local」のような名前を知らせると、同じネットワーク上の他の機器は、この名前をインターネットの一般ドメインではなくmDNSで解決すべきだと自動的に認識します。.localドメインはローカルネットワークの外にルーティングされないよう予約されているため、実際のインターネットのドメイン体系と衝突しません。

動作原理:マルチキャストによる問い合わせと応答

mDNSはUDP 5353番ポートとIPv4マルチキャストアドレス224.0.0.251(IPv6ではff02::fb)を使います。同じネットワーク上のmDNS対応機器はすべてこのマルチキャストグループを聞いており、自分に該当する名前の問い合わせが来ると自分のIPアドレスで応答します。問い合わせを送った機器はこの応答をキャッシュに保存して再利用し、必要に応じて定期的に情報を更新します。

DNS-SD:サービス自体を見つける機能

mDNSと組み合わせて使われるDNS-SD(DNSサービスディスカバリー)は、「この名前の機器はどこにあるか」だけでなく「この種類のサービスを提供する機器があるか」まで見つけてくれます。例えば「_ipp._tcp.local」のようなサービス種別を示す名前で問い合わせると、ネットワーク内のすべてのプリンターが応答し、自分の名前やポート、付加情報を知らせます。このおかげで、ユーザーがプリンターの正確な名前やIPアドレスを知らなくても、アプリやOSが自動的に「使用可能なプリンター一覧」を表示できます。

実生活での活用例

AirPlay、画面ミラーリング、無線プリンターの自動検出、スマートホーム機器の初期設定など、「機器を自動で見つける」ほぼすべての機能の裏側でmDNSが動いています。iPhoneが近くのApple TVを自動で見つけてAirPlay一覧に表示したり、ドライバーをインストールしなくてもネットワークプリンターが一覧にすぐ表示されたりするのは、mDNSとDNS-SDの組み合わせが背後で働いているためです。Appleの実装はBonjour、Linux系ではAvahiという名前で広く使われています。

代表的な実装:Bonjour、Avahi、Zeroconf

mDNS/DNS-SD標準を実際に実装したソフトウェアはまとめてZeroconf(ゼロコンフィグ)とも呼ばれます。Appleはこの概念をBonjourという名前でmacOSとiOS全体に組み込み、オープンソース陣営ではAvahiがLinuxディストリビューションで同じ役割を果たします。Windowsでも、iTunesや多くのプリンタードライバーをインストールするとBonjourサービスが一緒にインストールされて動作することがよくあります。

セキュリティ・注意点

mDNSは認証なしで誰でも応答できる仕組みのため、同じネットワーク内にいれば信頼できない機器でも名前情報を偽って応答できるリスクがあります。カフェや空港のような公共Wi-Fiでは見知らぬ人が同じネットワークにいる可能性があるため、mDNSによって自分の機器名やサービス情報が周囲に漏れる可能性がある点に注意が必要です。また、mDNSは本来ローカルネットワーク内でのみ動作するよう設計されているため、ルーターを越えて別のネットワーク帯域まで届かないのが正常で、これを超えるには別途mDNSリフレクターの設定が必要です。

一般的なDNSの全体的な仕組みも見てみましょう

インターネットの一般ドメインがIPアドレスに変わる全体の流れが気になる場合は、DNS問い合わせ(クエリ)の仕組みを徹底解説した記事も確認してみましょう。

スマートホームプロトコルとの関係

ジグビー、Z-Waveなどスマートホーム機器が使う他の無線プロトコルが気になる場合は、スマートホームネットワークプロトコルを徹底解説した記事も参考にしてください。

よくある質問

mDNSが動作しないとどうなりますか?

機器が名前で自動検索されなくなり、プリンターやスマートTVをアプリや設定画面にIPアドレスで手動登録する必要が出てくることがあります。ルーターのマルチキャスト関連設定やAP分離(クライアント分離)機能がmDNSトラフィックを遮っているケースが多いため、確認してみる価値があります。

mDNSはインターネットなしでも動作しますか?

はい。mDNSは同じローカルネットワーク内でのみ動作するため、インターネット接続が切れていても、同じWi-Fiやルーターにつながっている機器同士なら互いを見つけられます。