メインコンテンツへジャンプする

JPNICはインターネットの円滑な運営を支えるための組織です

ロゴ:JPNIC

WHOIS 検索 サイト内検索 WHOISとは? JPNIC WHOIS Gateway
WHOIS検索 サイト内検索

mDNS Proxy Server の設定

mDNS Proxy Server mdnsproxy を使うには、 いくつかの情報を設定する必要があります。 ここでは、これらの情報の設定方法と意味とを説明します。


設定ファイル

mdnsproxy は、起動時に設定ファイルを読み込みます。 設定ファイルは、mdnsproxy の起動時にコマンドラインで指定することができます。

% mdnsproxy -config <config-file>
              

コマンドラインで指定しなかった場合は、デフォルトの設定ファイルが使用されます。 mdnsproxyを/usr/local 以下にインストールした場合、デフォルトの 設定ファイルは、/usr/local/etc/mdnsproxy.confになります。

このファイルは通常のテキストファイルで、ファイルの各行 (# で始まるコメント行と、空行を除いて) は、 次のような単純なフォーマットで構成されます。

キーワード 値...
              

listen

mdnsproxyがクライアントからの要求を受付けるネットワークアドレス、 ポート番号を指定します。

listen <address>

<address> は以下のいずれかの形式で指示します。

<IP address>:<port number>
:<port number>
<IP address>

<IP address> が省略された場合は 0.0.0.0 (INADDR_ANY) が使用され、 <port number> が省略された場合は53番ポートが使用されます。 listen自体が省略された場合は、<address> と して0.0.0.0:53が使用されます。

mdnsproxy経由でDNSサーバを使用するクライアントは、 ここで指示したアドレス、ポートをDNSサーバとして設定します。 クライアント側ではポート番号を変更できないものが多いので、 ポート番号はデフォルトの53をそのまま使った方がよいでしょう。

forward

mdnsproxyが、DNS要求を転送し、応答を受け取る本来のDNSサーバの ネットワークアドレス、ポート番号を指定します。

forward <address> [ bind4compat ]

<address>の形式は上の listenのものと同じです。

オプションの bind4compatが指示された場合には、 UDPでリクエストを転送する時に、ソースアドレスとして、 listenで指示されたアドレスおよびポートを使用します。 これはbind4にある機能で、UDPポートについての アクセス制限下で運用することを想定したものです。 このオプションが指示されなかった場合には、 1024以上のソースポートが使用されます。

client-encoding

クライアント側でのドメイン名のエンコーディングを指示します。

client-encoding <Encoding>

クライアントから送られてきたDNS要求のドメイン名は、 ここで指示したエンコーディングから、内部的に使用される UTF-8エンコーディングに変換されます。 そして、後述の正規化、サーバ側エンコーディングへの変換が 行なわれてDNSサーバに送出されます。また、DNSサーバからの 応答は、逆に元のエンコデーィングに戻されてクライアントに 返されます。

ここで指定可能なエンコーディング名は、mDNkit付属のlibmdnおよび 使用するiconv ライブラリに依存します。 iconv ライブラリによって、エンコーディング名が異なっている ことがありますので、ライブラリのマニュアルをご覧になって 使用可能なエンコーディング名を確認してください。 付属のlibmdnでは、iconvが提供するエンコーディングの他に、 多言語化DNS用に提案されている

UTF-5 draft-jseng-utf5-01.txt
RACE draft-ietf-idn-race-03.txt
BRACE draft-ietf-idn-brace-00.txt
LACE draft-ietf-idn-lace-01.txt
DUDE draft-ietf-idn-dude-01.txt
UTF-6 draft-ietf-idn-utf6-00.txt
AltDUDE draft-ietf-idn-altdude-00.txt
AMC-ACE-M draft-ietf-idn-amc-ace-m-00.txt
AMC-ACE-O draft-ietf-idn-amc-ace-o-00.txt
AMC-ACE-R draft-ietf-idn-amc-ace-r-00.txt

をサポートしています。

mdn-conf-file

mDNkit 付属の libmdn の設定ファイル名を指定します。

mdn-conf-file <path>

mdnsproxy は mDNkit に付属している libmdn を使用して、多言語ドメイン に関する処理を行っています。 mdn-conf-file は、その libmdn の設定ファイルのファイル名 を指定します。

ファイル名は、コマンドラインオプション -conf で指定 することもできます。 両方指定した場合にはコマンドラインオプションの指定のほうが優先されます。 どちらも指定されなかった場合には、 /usr/local/etc/mdn.conf から読み込みます。

なお、libmdn の設定ファイルの記述の仕方については、 mDNkit の設定 を参照してください。

log-file

mdnsproxyが実行ログを出力するファイル名を指定します。

log-file <path>

ログファイル名は、コマンドラインオプション -logfile で指定 することもできます。 両方指定した場合にはコマンドラインオプションの指定のほうが優先されます。 どちらも指定されなかった場合には、 /usr/local/var/mdnsproxy/mdnsproxy.log に書き込まれます。

実行ログは常に追記されていきますので、 適当な時を見計らって消すことをお勧めします。 また、mdnsproxy にハングアップシグナル (SIGHUP) を送るといったん ログファイルを閉じて、再度オープンするようになっています。 これを応用して、ログファイルのファイルを改名してからハングアップシグナル を送ると、新たにログファイルが作り直されます。 ログファイルをアーカイブする場合に便利な機能です。

なお、<path>としてsyslogを指定すると、 syslog を用いてログを出力します。

log-level

ログのレベルを設定します。

log-level <level>

レベルとして指定できる値は次の通りです。

none
一切ログを記録しません。ログがないと不具合が生じた場合の 原因解明が難しくなりますので、できればこのレベルは指定しないでください。
fatal
致命的なエラーが生じたときにのみログを出力します。
warn
警告メッセージにもログに記録します。 これがログレベルを指定しなかったときのデフォルトです。
trace
実行トレースメッセージもログに出力します。 このレベルを指定すると mdnsproxy の動作がかなり詳細に記録されるので 障害が発生した場合の原因究明には便利ですが、大量のログが出力されるので 普段は指定しない方がよいでしょう。

ログの出力に syslog を用いている場合、致命的なエラーメッセージは syslog の優先度 ERR で出力されます。同様に、警告レベルのエラーメッセージ は優先度 WARNING で、トレースメッセージは優先度 DEBUG で出力されます。

mdn-log-level

libmdn のログのレベルを設定します。

mdn-log-level <level>

mdnsproxy は mDNkit に付属している libmdn を使用して、多言語ドメイン に関する処理を行っています。 mdn-log-level は、この libmdn 内部での処理に関するログの レベルを設定します。 それ以外の処理部分についてのログのレベルは log-level で設定します。

ログレベルは次の5段階が定義されています。

  • fatal (= 0)
  • error (= 1)
  • warning (= 2)
  • info (= 3)
  • trace (= 4)
  • dump (= 5)

syslog-facility

syslog のファシリティを設定します。

syslog-facility <facility>

syslog でログの出力を行う際に使用するファシリティを指定します。 syslog でログの出力を行わない場合は、無視されます。 (syslog でログの出力うためには log-file かあるいはコマンドラインオプション -logfileで指定する 必要があります。) 省略時は daemonが使用されます。

user-id

mdnsproxy が動作するユーザを指定します。

user-id <user>

通常、mdnsproxy は特権ポートを使用するためルート権限で起動させる必要が ありますが、ルート権限のままで動作させるのはセキュリティ上好ましくありません。 この指定により、mdnsproxy は特権ポートを作成したあとサービスを開始する前に 指定したユーザの権限で動くようになります。

<user>にはユーザ名あるいはユーザ ID 番号を指定することが できます。

group-id

mdnsproxy が動作するグループを指定します。

group-id <group>

これは user-id エントリと似ていますが、ユーザの代わりにグループを 指定する点が異なります。

<group>にはグループ名あるいはグループ ID 番号を指定することが できます。

root-directory

mdnsproxy が動作する際のルートディレクトリを指定します。

root-directory <path>

これもセキュリティ対策の一つです。mdnsproxy が動作する際のルートディレクトリ を指定することで、そのディレクトリの外にはアクセスできないようにします。 この指定により、mdnsproxy はサービスを開始する前に、chroot() システムコールを用いて指定したディレクトリをルートディレクトリとして 設定します。

<path>にはルートとして設定したいディレクトリ名を指定します。

allow-access

クライアントの IP アドレスに基づくアクセス制限を設定し、 mdnsproxy に接続可能なクライアントを制限します。

allow-acccess <where> ...

<where>は次のいずれかの形式で指定します。

<IP address>
<IP address>/<prefix-length>

前者は特定の IP アドレスを持つホストからの接続を許可し、 後者は<IP address><prefix-length>で 指定されるアドレスプリフィックスを持つ任意のホストからの接続を許可します。 例えば

allow-access 192.168.0.0/16

と指定すると、アドレスの上位16ビット (プリフィックス) が 192.168 で あるホストからの接続を許可します。

このエントリは複数指定することが可能で、複数指定した場合には そのいずれか 1つでもマッチすれば接続が許可されます。

このエントリを指定しなかった場合にはすべてのホストからの接続が許可 されます。

log-on-denied

allow-access で設定した アクセス制限によって接続を拒否した場合に、それをログに記録するかどうかを 指定します。

log-on-denied <yes-or-no>

指定できる値は yes または no です。 yes を指定した場合には接続拒否記録がログに残されます。 指定されなかった場合は、接続拒否記録をログに残しません。

このページを評価してください

このWebページは役に立ちましたか?
よろしければ回答の理由をご記入ください

それ以外にも、ページの改良点等がございましたら自由にご記入ください。

回答が必要な場合は、お問い合わせ先をご利用ください。

ロゴ:JPNIC

Copyright© 1996-2024 Japan Network Information Center. All Rights Reserved.