dns-sd - マルチキャスト DNS (mDNS) および DNS サービス検出 (DNS-SD) テストツール
dns-sd -R name type domain port [key=value ...]
dns-sd -B type domain
dns-sd -L name type domain
dns-sd -Q FQDN rrtype rrclass
dns-sd -C FQDN rrtype rrclass
dns-sd -P name type domain port host IP [key=value ...]
dns-sd -E | -F | -A | -U | -N | -T | -M | -I
dns-sd コマンドは、ping(8) や traceroute(8) とほぼ同様のネットワーク診断ツールです。ただし、これらのツールとは異なり、その機能のほとんどが dns-sd 実行可能ファイル自体ではなく、すべてのアプリケーションで使用できるライブラリコード内に実装されています。dns-sd が使用しているライブラリ API は、/usr/include/dns_sd.h に記述されています。
dns-sd コマンドは対話形式での使用を主に想定しています。そのコマンド行引数や出力形式は変更される可能性があるため、シェルスクリプトから呼び出した場合の結果は予測できません。また、DNS サービス検出の非同期の性質のために、スクリプト指向のプログラミングにはあまり適していません。このような非同期の対話が最適に機能するアプリケーションは、マルチスレッドのアプリケーションか、またはメインのイベント処理ループを使用してキーストローク、ネットワークデータ、およびその他の非同期イベント通知をそれらが発生した時点で受信するアプリケーションです。
サポートしているオプションは、次のとおりです。
指定のドメイン内にあり、指定の name と type を持ち、(現在のマシン上にある) 指定の port で待機しているサービスを登録 (通知) します。
name には、任意の有効な Unicode 文字 (ドット、スペース、スラッシュ、コロンなど (制限はなし)) を含む、UTF-8 で最大 63 バイト長の任意の Unicode テキストを使用できます。
type は、「_app-proto._tcp」または「_app-proto._udp」の形式にする必要があります。ここで、「app-proto」は、http://www.dns-sd.org のサービスタイプ (RFC 2782) リンクに登録されているアプリケーションプロトコル名です。
domain は、このサービスを登録するドメインです。現在の実装では、ローカルマルチキャストドメイン「local」のみがサポートされています。将来は、有効な DNS 更新サーバー (RFC 2136) を含む任意のドメイン内での登録がサポートされる予定です。ドメイン「.」は「妥当なデフォルト値の選択」の同義語で、現時点では「local」を意味します。
port は 0 - 65535 の数値で、サービスが待機している TCP または UDP ポート番号です。ポート 0 上にサービスを登録すると、アプリケーションはサービスの非可用性を明示的に通知できます。
必要に応じて、サービスの追加の属性をキー/値のペアで記述できます。このペアは、通知されるサービスの DNS TXT レコード内に格納されます。利用可能ななキーと値は、http://www.dns-sd.org のサービスタイプ (RFC 2782) リンクにあるサービス登録に一覧表示されています。
domain 内のサービス type のインスタンスをブラウズします。
有効なタイプについては、http://www.dns-sd.org のサービスタイプ (RFC 2782) リンクを参照してください。ドメイン名を省略または「.」の使用は、「妥当なデフォルト値の選択」を意味します。
指定されたサービスに接続して使用するために必要な情報を検索および表示します。この情報には、そのサービスが使用可能なマシンのホスト名、そのサービスが待機しているポート番号、およびそのサービスのプロパティーが記述されている TXT レコード属性 (もしあれば) が含まれます。
標準的なアプリケーションでは、ブラウズがまれにしか発生しないのに対し、検索 (または「解決」) はサービスが使用されるたびに発生します。たとえば、ユーザーがデフォルトのプリンタを選択するためにネットワークをブラウズすることはそれほど頻繁にはありませんが、デフォルトのプリンタがいったん選択されると、ユーザーが Cmd-P キーを押して出力するたびに、その指定されたサービスが現在の IP アドレスとポート番号に解決されます。
任意のリソースレコードタイプおよびクラスに対する汎用のクエリー。
任意のリソースレコードタイプおよびクラスに対する汎用のクエリー。このオプションでは、クエリーからの各結果も再確認されます。レコードの再確認では、mdnsd(8) に対してレコードの有効性を検証するよう指示します。レコードが有効でない場合、mdnsd(8) はこのデーモンのキャッシュだけでなく、ネットワーク上のほかの mdnsd(8) キャッシュからもそのレコードをフラッシュします。
指定のドメイン内にあり、指定の name と type を持ち、指定のポートで待機し、別のホスト上でアクセス可能なサービスを登録 (通知) します。このオプションは、別のホスト上でアクセス可能なサービスをプロキシによって通知する場合に使用するようにしてください。このサービスにアクセスするためのホスト名と IPv4 アドレスを指定する必要があります。
推奨される登録ドメインを検出します。このオプションを使用すると、サービスを登録するための推奨ドメインが返されます。推奨される登録ドメインは、resolv.conf(5) でネームサーバーに対してクエリーを実行することによって返されます。
推奨されるブラウズドメインを検出します。このオプションを使用すると、サービスをブラウズするための推奨ドメインが返されます。推奨されるブラウズドメインは、resolv.conf(5) でネームサーバーに対してクエリーを実行することによって返されます。
マルチキャスト DNS へのサービスの登録をテストしたあと、マルチキャスト DNS への DNS レコードの追加、更新、および削除操作をテストします。
マルチキャスト DNS へのサービスの登録をテストしたあと、マルチキャスト DNS に登録されたサービスの DNS TXT レコードの更新をテストします。
マルチキャスト DNS に登録されたサービスの大きな NULL レコードの追加をテストします。
マルチキャスト DNS に登録されたサービスの大きな TXT レコードの追加をテストします。
複数の TXT レコードでの登録の作成をテストします。
登録と、登録直後の TXT レコードの更新をテストします。
次のコマンドは、このマシンのポート 515 上に LPR 印刷サービスが存在することを通知し、DNS-SD と互換性がある印刷クライアントからこのサービスを使用できるようにします。
dns-sd -R "My Test" _printer._tcp. . 515 pdl=application/postscript
この登録を有効にするには、LPR サービスをポート 515 上で使用できるようにしてください。存在しないサービスを通知しても、あまり意味はありません。
使用例 2 Web ページの通知次のコマンドは、Web ページがこのマシンのポート 80 上で HTTP サーバーから提供されていることを通知し、Safari やそのほかの DNS-SD と互換性がある Web クライアントの Bonjour リストにこのページが表示されるようにします。
dns-sd -R "My Test" _http._tcp . 80 path=/path-to-page.html使用例 3 ローカルネットワーク上で通知される Web ページの検索
次のコマンドは、ローカルネットワーク上で通知される Web ページ (Safari で表示されるリストと同じもの) を検索します。
dns-sd -B _http._tcp
属性についての詳細は、マニュアルページの attributes(7) を参照してください。
|
resolv.conf(5), attributes(7), mdnsd(8), ping(8), traceroute(8)