Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

mDNS(エムディーエヌエス)とは | 意味や読み方など丁寧でわかりやすい用語解説

mDNS(エムディーエヌエス)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

マルチキャストDNS (マルチキャストディーエヌエス)

英語表記

mDNS (エムディーエヌエス)

用語解説

mDNSは、小規模なローカルネットワーク内でコンピューターやデバイスの名前(ホスト名)をIPアドレスに変換するための仕組みである。従来のDNS(Domain Name System)が、インターネット全体や大規模な企業ネットワークにおいて、集中型のDNSサーバーを利用して名前解決を行うのに対し、mDNSはDNSサーバーを必要とせず、ネットワークに接続されたデバイス同士が直接通信し合って名前解決を行う点が大きな特徴となる。これにより、特別な設定や管理の手間なく、手軽にデバイスを相互に認識できるようになる。例えば、自宅のネットワークで新しいプリンターを接続した際に、そのプリンターを「myprinter.local」のようなわかりやすい名前で指定して利用できるようになるのは、mDNSの恩恵の一つと言える。この技術は、ゼロコンフィギュレーションネットワーキング(Zeroconf)の一部として開発され、プラグアンドプレイのような感覚でネットワークデバイスを利用可能にすることを目指している。

mDNSの登場背景には、従来のDNSが抱える課題があった。DNSは、その設計上、ホスト名とIPアドレスの対応情報を管理するDNSサーバーの存在が前提となる。インターネットのように多数のデバイスが接続され、頻繁に情報が更新される環境では、この集中管理型のアプローチが非常に効率的である。しかし、家庭内ネットワークや小規模なオフィスネットワークのような環境では、DNSサーバーを別途設置・運用するのは専門知識と手間がかかり、現実的ではないケースが多い。このような環境で「このデバイスのIPアドレスは何だろう?」といった名前解決を行う場合、通常はIPアドレスを直接指定するか、IPアドレス自動割り当て(DHCP)によって割り当てられたIPアドレスを調べる必要があった。mDNSは、このような手間を解消し、集中型サーバーなしでローカルネットワーク内での名前解決を可能にするために考案された。

mDNSの基本的な仕組みは、ネットワーク上のマルチキャスト通信を活用している。あるデバイスが特定のホスト名(例:「mydevice.local」)に対応するIPアドレスを知りたい場合、そのデバイスはUDPポート5353を使用して、指定されたマルチキャストアドレス(IPv4では224.0.0.251、IPv6ではFF02::FB)宛に「mydevice.localのIPアドレスを教えてください」という問い合わせメッセージを送信する。このメッセージは、ルータを越えることなく、同じローカルネットワーク(ブロードキャストドメイン)内のすべてのmDNS対応デバイスに到達する。メッセージを受け取ったデバイスの中で、自身が「mydevice.local」であると認識するデバイスがあれば、そのデバイスは自身のIPアドレスを含む応答メッセージを問い合わせ元に直接、またはマルチキャストで返信する。これにより、問い合わせ元はDNSサーバーを介することなく、目的のホスト名に対応するIPアドレスを取得できる。このプロセスは、通常のDNS問い合わせと応答に似ているが、その対象がローカルネットワークに限定され、サーバーの代わりにネットワーク上の全デバイスが参加する点が異なる。

mDNSは、単にホスト名をIPアドレスに解決するだけでなく、サービスディスカバリの機能と密接に関連している。サービスディスカバリとは、ネットワークに接続されているデバイスが提供するサービス(例えば、プリンター、ファイル共有、Webサーバーなど)を自動的に発見する機能である。mDNSは、DNS-SD(DNS-based Service Discovery)という技術と組み合わせることで、このサービスディスカバリを実現する。デバイスは、自身のホスト名解決情報だけでなく、提供しているサービスの種類(例:「_ipp._tcp.local」でインターネット印刷プロトコルに対応するプリンター)とそのサービスが動作しているポート番号などの情報をmDNSクエリの応答に含めることができる。これにより、ユーザーはネットワークに接続された新しいプリンターやファイル共有サーバーなどを、そのIPアドレスやポート番号を知らなくても、デバイス名やサービス名から簡単に発見し、利用を開始できる。Apple社が提供する「Bonjour」(ボンジュール)は、このmDNSとDNS-SDを組み合わせた代表的な実装であり、Apple製品だけでなく、多くのネットワークデバイスで採用されている。

mDNSの主なメリットは、その導入と運用が極めて容易である点にある。特別な設定やサーバーの管理が一切不要で、デバイスをネットワークに接続するだけで名前解決やサービスディスカバリが自動的に行われる。これは、ユーザーにとって「プラグアンドプレイ」に近い体験を提供する。また、DNSサーバーの障害に左右されず、ローカルネットワーク内で自律的に機能する点も利点である。

一方で、デメリットも存在する。最も大きな制約は、マルチキャスト通信の性質上、ルータを越えての名前解決が基本的にはできないことである。そのため、大規模なネットワークや複数のサブネットに分割された環境では、mDNSは機能せず、従来のDNSが必要となる。また、認証の仕組みがないため、セキュリティ上の懸念が指摘されることもある。悪意のあるデバイスが不正なIPアドレスを応答することで、通信を乗っ取るといった攻撃のリスクも理論上は存在するが、一般的なローカルネットワーク環境ではその脅威は限定的である。さらに、すべてのデバイスがマルチキャストメッセージを受信するため、ネットワークトラフィックがわずかに増加する可能性があるが、通常の使用においては大きな問題となることは少ない。

具体的な利用例としては、前述のプリンターやNASの発見と利用のほか、AppleのAirPlayやAirDrop、HomeKit対応デバイスの初期設定、Sambaによるファイル共有、SSHによるリモート接続などが挙げられる。開発環境においては、一時的に起動したWebサーバーやサービスに対して、固定IPアドレスを割り当てることなく「myservice.local」のような名前でアクセスできるため、非常に便利である。mDNSは、今日のネットワーク環境において、特に小規模ネットワークでの利便性を大きく向上させる重要な技術となっている。

関連コンテンツ