トップQs
タイムライン
チャット
視点
マルチキャストDNS
ウィキペディアから
Remove ads
コンピュータネットワークにおいて、マルチキャストDNS(mDNS) はローカルネームサーバーの存在しない小さなネットワーク内でホスト名からIPアドレスを解決するプロトコルである。Zeroconfサービスであり、基本的にユニキャストのDomain Name System (DNS) と同じプログラミングインターフェース、パケットフォーマット、意味論をもつ。Stuart CheshireはmDNSをスタンドアロンプロトコルとして設計したが、標準的なDNSサーバーと協調して動作することもできる[1]。
RFC 6762として公開されたmDNSプロトコルはIPマルチキャストUDPパケットを用いたもので、AppleのBonjourやオープンソースのAvahiとして実装されており、Avahiは多くのLinuxディストリビューションに同梱されている。Windows 10でも実装されており、これは当初ネットワークプリンタの検出にのみ使用できたが[2]、後にホスト名の解決も可能になった。
mDNSはRFC 6763で別に定義されたZeroconf技術であるDNS-SD (DNS based Service Discovery)と併せて動作させることが可能である[3]。
Remove ads
概要
ホスト名を解決するとき、mDNSクライアントはIPマルチキャストクエリメッセージを送信し、そのホスト名を自分のものとしているホストに呼びかける。その後対象の機器は自身のIPアドレスを含むメッセージをマルチキャストする。サブネット内にいるすべての機器はこの情報を基に自身のmDNSキャッシュを更新できる。この情報はTime to Live (TTL) をゼロにした応答パケットを送ることで任意のホストが破棄できる。
デフォルトでは、mDNSは.localトップレベルドメインで終わるホスト名のみを解決する。これはmDNSを実装していないが従来のユニキャストDNSサーバーで解決できるホストが.localドメインに含まれている際に問題となりうる。そのような衝突を解決するにはmDNSが衝突を回避するようネットワーク設定を変更する必要がある。
パケット構造
要約
視点
mDNSメッセージは以下のアドレスに送信されるマルチキャストUDPパケットである。
- IPv4アドレス 224.0.0.251 または IPv6アドレス ff02::fb
- UDPポート 5353
- イーサネットフレームを使用する場合、標準IPマルチキャストMACアドレス 01:00:5E:00:00:FB (IPv4の場合) または 33:33:00:00:00:FB (IPv6の場合)
ペイロードの構造はユニキャストDNSパケットフォーマットを基にしており、ヘッダーとデータの2部からなる[4]。
ヘッダーはユニキャストDNSと同一であり、クエリ、応答、権威DNSサーバー、追加レコードのようなデータ部のサブセクションも同じである。各サブセクションのレコード数はヘッダーの対応するCOUNTフィールドの値と一致する。
クエリ
クエリセクションのレコードはユニキャストDNSからわずかに変更されており、1ビットのUNICAST-RESPONSEフィールドが追加されている。[1]
ユニキャストDNSの場合と同じように、QNAMEフィールドはラベルと呼ばれる長さと値からなる一連のサブフィールドからなる。各ラベルは完全修飾ドメイン名 (FQDN) のドットで分けられた部分文字列を表現している。 リストはDNSの"root"を表現するヌルバイトで終了する。
UNICAST−RESPONSEフィールドは不必要なブロードキャストを最小化するために使われる。このビットがセットされている場合、応答者はネットワーク全体に応答をブロードキャストする代わりに、問い合わせたノードに対してユニキャスト応答を直接送ることが望ましい (SHOULD)。
QCLASSフィールドはユニキャストDNSのものと同じである。
リソースレコード
応答、権威DNSサーバー、追加レコードセクション内のすべてのレコードは同じフォーマットを持ち、まとめてリソースレコード (RR) と呼ばれる。
リソースレコードもユニキャストDNSのものからわずかに変更されている。
CACHE-FLUSHビットはそのRRNAMEとRRTYPEに対応するキャッシュエントリをこのレコードで追記でなく上書きすべきであることを近隣ノードに指示する。
RDATAのフォーマットはユニキャストDNSの対応物と同じである。ただしmDNSの一般的な使用場面であるDNS Service Discoveryはフォーマットをわずかに (特にTXTレコードを) 変更している。
Remove ads
関連項目
- Bonjour Sleep Proxy
- Link-Local Multicast Name Resolution (LLMNR)
- Name Service Switch (NSS)
脚注
外部リンク
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads