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

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

ロゴ:JPNIC

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

mDNkit リゾルバのコンフィギュレーション

mDNkit が提供するツール、コマンドのうち、dnsproxy 以外のもの、 つまり runmdn と mdnconv は共通の設定ファイルを参照します。 また bind9 パッチも同じ設定ファイルを参照します。

このファイルには mDNkit を利用したクライアントあるいはリゾルバが 必要とするいくつかの情報を設定する必要があります。 例えば正規化の方式や DNS プロトコル上で用いられるドメイン名のエンコーディング 方法などをこのファイルで指定します。 ここでは、これらの情報の設定方法と意味とを説明します。

また、アプリケーションの使用するローカルエンコーディングは アプリケーションの動作するロケール情報から取得します。これについても 合わせて説明します。


コンフィギュレーションファイル

mDNkit の設定は、コンフィギュレーションファイルによって行われます。 mDNkit をデフォルトの設定でコンパイルした場合には、 このコンフィギュレーションファイルのパス名は

/usr/local/etc/mdnres.conf
となります。ディレクトリ部分、つまり /usr/local/etc は mDNkit の設定時にオプションで 変更が可能です。

mDNkit をインストールすると、このファイルのサンプルファイルが

/usr/local/etc/mdnres.conf.sample
(デフォルトの設定の場合) にインストールされます。このサンプルファイルには 設定項目とその説明が書かれていますので、コンフィギュレーションファイル 作成の参考にしてください。


コンフィギュレーションデータ

コンフィギュレーションファイルは通常のテキストファイルで、 以下のコンフィギュレーションデータを指定します。

server-encoding
DNS プロトコルが使用するエンコーディングを指定します。
server-encoding encoding
encoding にエンコーディング名を指定します。
[設定例]
server-encoding RACE
server-encoding UTF-8
なお、アプリケーション側のローカルエンコーディングはロケールによって 決まるので、client-encoding というエントリはありません。 ローカルエンコーディングに関しては後述します。

server-zld
ZLD を指定します。ZLD とは Zero Level Domain の略で、 server-encoding に UTF-5 など特殊なエンコーディングを指定した場合に 必要となります。ZLD については DNSサーバの設定ZLD の指定の記述が参考になるでしょう。 なお、mDNkit をデフォルトの設定でコンパイルした場合には ZLD は使えず、 このエントリを指定しても無視されます。 ZLD が使えるように mDNkit をコンパイルする方法については インストールドキュメントの --enable-zld の項を ご覧ください。
server-zld ZLD
ZLD で使用する ZLD を指定します。
[設定例]
server-zld zld.to.be.used

normalize
このエントリーでは正規化の方法を指定します。 2 つ以上の正規化の方法が指定された場合、順番通り (左から右に) 適用します。
normalize scheme...
scheme で正規化の方式の名称を指定します。

正規化の方式として以下のものが指定できます。

ascii-lowercase ASCII の大文字を小文字に正規化
ascii-uppercase ASCII の小文字を大文字に正規化
unicode-lowercase Unicode の大文字を小文字に正規化
unicode-uppercase Unicode の小文字を大文字に正規化
unicode-form-c Unicode normalization form C
unicode-form-kc Unicode normalization form KC
ja-kana-fullwidth 半角カナ文字を全角カナ文字に正規化
ja-alnum-halfwidth 全角英数字およびマイナス記号を半角文字に正規化
ja-compose-voiced-sound 全角ひらがなカタカナとそれに続く濁点半濁点を1文字にまとめる正規化
ja-minus-hack 全角マイナス記号をハイフン ('-') に正規化
ja-delimiter-hack 全角ピリオドおよび句点を半角のピリオド ('.') に正規化
[設定例]
normalize unicode-lowercase unicode-form-kc 
alternate-encoding
このエントリーでは代替エンコーディングの形式を指定します。 代替エンコーディングとは、DNS プロトコル上のエンコーディングから アプリケーション側のローカルエンコーディングへの変換に失敗した時に、 ローカルエンコーディングの代わりに使用されるエンコーディングです。 例えば日本語を扱うアプリケーションに DNS サーバから韓国のハングル文字を 含むドメイン名が返された場合には、日本語のローカルエンコーディングに 変換できないので、代わりにこの代替エンコーディングに変換された 結果が渡されます。
alternate-encoding encoding
encoding に代替エンコーディングの名称を指定します。

代替エンコーディングは、 ASCII 互換エンコーディングでなくてはなりません。

[設定例]
alternate-encoding RACE
alias-file
エンコーディングのコードセット名を、別名として追加することができます。 ここでは、追加する別名の定義ファイルへのパス名を指定します。
alias-file path
path に定義ファイルのパス名を指定します。
[設定例]
alias-file /some/where/mdnalias.txt
別名の定義ファイルは通常のテキストファイルであり、1行に1つずつ 別名を定義します。各行の形式は次の通りです。
<別名>     <元の名前>
エンコーディング名 <元の名前> の代わりに <別名> が 使えるようになります。

ローカルエンコーディングについて

ローカルエンコーディングについては、ロケールから推測して自動判定するため、 コンフィギュレーションファイルでは、 ローカルエンコーディングを設定するエントリはありません。

ただし、以下のようなケースのときには自動判定ができません。

  • setlocate 関数を使用していないアプリケーションを実行したとき
  • C ロケールのままアプリケーションを実行したとき
  • ロケールとエンコーディングの対応がわからないとき

このような場合には環境変数 MDN_LOCAL_CODESET を設定することで、 ローカルエンコーディングの設定を行うことができます。 例えばローカルエンコーディングを EUC-JP に設定する場合には、 あらかじめ次のような設定をしておきます。

[設定例]
sh 系のとき
$ MDN_LOCAL_CODESET=EUC-JP
$ export MDN_LOCAL_CODESET
csh 系のとき
% setenv MDN_LOCAL_CODESET EUC-JP

指定する値はローカルエンコーディング名で、これはシステムの iconv() 関数 (より正確には iconv_open()) が 受け付ける名前で指定します。この名前は iconv の実装によって それぞれ異なりますので、具体的な値については iconv の ドキュメントを参照してください。

もしあなたが単一のローカルエンコーディングしか使用していないのであれば、 このような設定を .profile.cshrc 等に入れておくことを お勧めします。

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

このWebページは役に立ちましたか?
ページの改良点等がございましたら自由にご記入ください。

このフォームをご利用した場合、ご連絡先の記入がないと、 回答を差し上げられません。 回答が必要な場合は、お問い合わせ先をご利用ください。

ロゴ:JPNIC

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