はじめに
こんにちは。アメリカに住みながら、独学でエンジニアを目指しているTairaです。
今回は、LAN内でよく使われる「mDNS(マルチキャストDNS)」について、DNSとの違いや具体的な仕組みを例え話を交えながらわかりやすく解説します。
mDNSとは?
mDNS(Multicast DNS) とは、同じローカルネットワーク(LAN)に接続された機器同士で、名前(ホスト名)からIPアドレスを解決する仕組みです。通常のDNSのように専用のDNSサーバーを使わずに、ネットワーク上にいる端末に「○○って誰か知ってる?」とマルチキャスト送信で尋ねます。
DNSサーバーと違って、実際にモノとしてサーバーばないのが特徴です
具体例
たとえば、プリンタが printer.local
という名前でネットワークに接続されているとします。
-
PCが「
printer.local
のIPアドレスを知りたい」となったとき、 -
UDPポート5353でローカルネットワークにマルチキャスト送信します。
-
プリンタが「それは私です!」と自分のIPアドレスを応答します。
→ DNSサーバーを使わずに名前解決ができます。
mDNSの特徴
特徴 | 内容 |
---|---|
名前解決範囲 | 同じローカルネットワーク内のみ |
通信プロトコル | UDP(ポート番号:5353) |
通信方法 | マルチキャスト送信(224.0.0.251) |
ドメインの末尾 |
.local で終わる(例:printer.local ) |
代表的な用途 | プリンタやIoT機器の自動検出、Bonjour(Apple)など |
通常のDNSとの違い
項目 | 通常のDNS | mDNS |
---|---|---|
対象 | インターネット全体 | ローカルネットワーク |
必要なもの | DNSサーバー | 不要(各端末が応答) |
通信方法 | クライアント→DNSサーバー | クライアント→ネットワーク全体に呼びかけ |
代表的な例 |
google.com など |
raspberrypi.local など |
例えで理解:DNSは市役所、mDNSは教室
- DNSは「市役所」のような存在です。誰かの住所(IP)を知りたければ、市役所に行って台帳から調べてもらいます(教えてくれるかは不明だけど)。正確ですが、手続きが少し重いです。
- 一方でmDNSは、「教室」で先生(PC)が「
printer.local
っている~?」とみんなに向かって呼びかけるイメージです。該当する人(プリンタ)が「はい、ここにいます!」と名乗り出て、IPアドレスを教えてくれます。
このように、手軽で即時性があるのがmDNSの魅力です。
なぜmDNSはUDPを使うのか?
mDNSがUDP通信を使う理由は以下の通りです:
- 軽量で高速:TCPのような接続確立(3ウェイハンドシェイク)が不要。
- 1対多の通信が得意:マルチキャスト送信で同時に複数の端末に届けられる。
- 信頼性より即応性:名前解決なので、万一失敗しても再送すればOK。
このような背景から、mDNSにはUDPが最適です。
まとめ
mDNSは、家庭内やオフィス内のネットワークで、DNSサーバーなしにホスト名からIPアドレスを見つける便利な仕組みです。LAN内にあるプリンタやIoT機器を自動で見つけるのに役立ち、Bonjourなどのサービスでも活用されています。
もしネットワーク機器の名前が .local
で終わっていたら、それはmDNSによって名前解決されているのかもしれません。