現在、マイクロソフト セキュリティ情報 MS10-090のパッチを適用したInternet
Explorer 8をお使いの方は、
JPNIC Webサイトの内容が印刷できない状態になっています。
印刷をする場合には、 Internet Explorer 8以外のブラウザを利用してください。
この不具合の詳細と、その対処方法については、
マイクロソフトのWebサイトに掲載されている以下の技術情報をご覧いただくか、
マイクロソフトのサポートセンターにお問い合わせください。
マイクロソフトの技術情報
mDNkit Frequently Asked Questions
2001/01/19 版
【コンパイル時の注意点】
Q.1010
Solaris で mDNkit を作ろうとしていますがソースにパッチが当たりません。
A.1010
Solaris のシステムに付属する patch コマンドは mDNkit に含まれるパッチ
の形式を正しく解釈できないため、パッチが正しく当たりません。GNU patch
のソースを入手してインストールして、それを使用してください。
GNU patch web page
http://www.fsf.org/software/patch/patch.html
Q.1020
make の時に iconv.h が見つからないと言われます。
A.1020
mDNkit は、既に iconv ライブラリがインストールされていることを前提と
しています。もし iconv ライブラリがインストールされていないのであれば
まず、iconv ライブラリのインストールを行ってください。フリーの iconv
ライブラリとしては以下のものがあります。
libiconv Web page
http://clisp.cons.org/~haible/packages-libiconv.html
上記の iconv ライブラリをインストールした場合など、iconv.h が標準の
インクルードファイルパス以外にある場合には、configure を実行する際に
環境変数 CFLAGS でそのパスを設定してください。
(sh 系のシェルの場合)
% CFLAGS="-I/usr/local/include" ./configure ...
(csh 系のシェルの場合)
% setenv CFLAGS "-I/usr/local/include"
% ./configure ...
Q.1030
BIND 9.0.1 に mDNkit のパッチを当ててコンパイルしようとしたところ、
sqr がないというエラーメッセージが出てコンパイルできません。
A.1030
OpenSSL がインストールされていて、そのヘッダファイルが BIND 9.0.1 に
付属の SSL ライブラリのヘッダファイルより先に読み込まれている可能性
があります。
configure を実行した際の環境変数 CFLAGS に、OpenSSL のヘッダファイル
がインストールされたディレクトリが設定されていることが考えられます。
その場合には、環境変数 CFLAGS をクリアして、configure からやり直して
みてください。
(sh 系のシェルの場合)
% CFLAGS="" ./configure ...
(csh 系のシェルの場合)
% setenv CFLAGS ""
% ./configure ...
Q.1040
libiconv-1.3 の shared ライブラリが作成されません。
A.1040
libiconv-1.3 に付属の shared ライブラリ生成ツールは FreeBSD4.x 系
などの比較的新しい OS には対応していません。最新版の libiconv を
お使いください。最新版の入手先については A.1020 をご参照ください。
どうしても libiconv-1.3 を使わなければならない場合には、mDNkit の
トップディレクトリにある ltconfig と ltmain.sh の 2つのファイルを
libiconv-1.3/autoconf ディレクトリにコピーして、configure からやり
直してください。
Q.1050
make してできた mdnconv コマンドを実行しようとすると libiconv.so.2.0
が見つからないというエラーメッセージが出力されて実行できません。
A.1050
mDNkit の configure 時に --with-iconv オプションで iconv のライブラリ
がインストールされたディレクトリを指定してください。
(/usr/local/lib にインストールされている場合)
% ./configure --with-iconv="-L/usr/local/lib -R/usr/local/lib -liconv" ...
Q.1060
Debian GNU/Linux で mDNkit 付属の BIND 9 パッチをあてた BIND 9.0.1
をコンパイルしようとしたら、dns/enumclass.h がないといわれてエラー
になりました。
A.1060
mDNkit の共有ライブラリ libmdn.so* がインストールされたディレクトリ
が共有ライブラリのサーチパスに入っていないためです。/etc/ld.so.conf
に当該ディレクトリパスを追加し、ldconfig コマンドを実行してください。
【設定方法】
Q.2010
dnsproxy.conf の client-translation や server-translation には必ず
ZLD を指定しなければならないのですか?configure 時に --enable-zld
オプションは指定していません。
A.2010
--enable-zld オプションの有無に関わらず、構文上は ZLD を必ず指定
しなければなりません。ただし、--enable-zld オプションが指定されて
いなければ、ZLD として何を設定しても無視されます。
Q.2020
normalization には何を設定すればよいのですか?
A.2020
JPNIC としては、normalization とドメイン名のエンコーディングに下記の
設定を行うことを推奨致します。
normalization の設定は下記の内容を推奨します。
normalize ja-kana-fullwidth ja-alnum-halfwidth ja-compose-voiced-sound unicode-lowercase unicode-form-kc
ドメイン名のエンコーディングの設定は RACE を推奨します。
server-translation . RACE
なお、上記の設定は、mDNkit-1.2 以上を使用が前提となります。最新版の
mDNkit-1.2.1 を使うようにして下さい。
Q.2030
dnsproxy を起動すると、initTcp や initUdp といったメッセージが出力
されてエラー終了します。
A.2030
dnsproxy は DNS サーバと同一のポートを使用しています。従って、既に
DNS サーバが起動されているホスト上では、通常は dnsproxy を起動する
ことはできません。DNS サーバと dnsproxy は別のホスト上で動かす様に
してください。
Q.2040
dnsproxy と DNS サーバを同じホスト上で動かすことはできませんか?
A.2040
dnproxy と DNS サーバが問い合わせを受け付けるポート番号を違うものに
するか、dnsproxy と DNS サーバが問い合わせを受け付ける IP アドレス
を違うものにしてください。
Q.2050
mdnconv を使用して、BQ--3BS6KZZMRKPDBSJQ4EYKIMHTKQGYUZU2CM.JP を
デコードしようとしたのですが、うまくデコードできません。
A.2050
mDNkit-1.0 では、大文字のドメイン名をデコードすることはできません。
mDNkit-1.2 以上を使用が前提となります。最新版の mDNkit-1.2.1 を使う
ようにして下さい。
【クライアントからの使い方】
Q.3010
環境変数 LANG に ja_JP.euc-JP を設定しています。mdnconv はそれに従っ
て正しくローカルエンコーディングを判断してくれますが、runmdn は正し
くは判断してくれません。
A.3010
runmdn で環境変数 LANG が評価されるか否かはアプリケーションの locale
の設定方法に依存します。依存しないためには、環境変数 MDN_LOCAL_CODESET
に iconv ライブラリが受付可能なコードセット名を設定してください。
Q.3020
runmdn を使って telnet はできますが、ping ができません。
A.3020
runmdn はセキュリティ上の理由から、SUID または SGID ビットが立った
コマンドには使用できません。
Q.3030
Solaris で runmdn が動きません。
A.3030
Solaris のリゾルバライブラリは bind4 / bind8 のリゾルバとは仕様が
異なるために、残念ながら runmdn は動きません。代わりに dnsproxy を
使用してください。
Q.3031
runmdn で telnet を実行したら、下記のエラーが起きて実行できません。
ld.so.1: telnet: fatal: relocation error: file /usr/local/lib/libmdnresolv.so.4: symbol mdn__lace_convert: referenced symbol not found Killed
A.3031
mDNkit-1.2 は runmdn の Makefile に不具合がありました。最新版の
mDNkit-1.2.1 を使うようにしてください。
Q.3040
mDN Wrapper を使うと Netscape が起動できません。
A.3040
残念ながら Netscape では mDN Wrapper は使えません。代わりに dnsproxy
をご利用ください。
Q.3050
dnsproxy を使うと、日本語ドメイン名に片仮名の「ソ」が含まれていると
正しくアドレス解決ができません。
A.3050
クライアント側のローカルエンコーディングが SJIS で、かつクライアント
側のリゾルバが 8bit クリーンでないと、SJIS 中に '\'(ASCII コードで
0x5c)が含まれる文字の場合は、その部分のみ削除されることがあり、その
ためにアドレス解決に失敗します。代わりに runmdn を使うか、ホスト側の
リゾルバライブラリを 8bit クリーンのものと入れ替えてください。
Q.3060
mDN Wrapper のコンフィグレーションプログラムでアプリケーションを
wrap しようとすると、エラーダイアログが出力されて wrap できません。
mDN Wrapper のコンフィグレーションプログラムで wrap したアプリケー
ションを unwrap しようとすると、エラーダイアログが出力されて unwrap
できません。
A.3060
mDN Wrapper のコンフィグレーションプログラムで wrap を行うと、登録
されたアプリケーションがインストールされているフォルダに Wrapper
DLL をコピーします。逆に、unwrap を行うとコピーした Wrapper DLL を
削除します。
そのため、wrap を行おうとするアプリケーションが起動されている間は、
コピーしようとする Wrapper DLL がオープンされているため wrap は失敗
します。また、wrap が行われたアプリケーションが起動されている間は、
コピーされた Wrapper DLL がオープンされているため unwrap が失敗します。
wrap および unwrap はアプリケーションを終了してから行ってください。
Q.3070
mDN Wrapper でログを残すことはできませんか?
A.3070
mDN Wrapper は、コンフィギュレーションプログラムの "Log.." ボタンで
ログレベルやログファイルの設定や、ログの参照または削除を行うことが
できます。
設定可能なログレベルは None, Fatal, Error, Warning, Info, Trace です。
ログを出力したくない場合には None を選択してください。
また、ログの参照は "View" ボタンで、ログの削除は "Delete" ボタンを
クリックすることにより行うことができます。
Q.3080
runmdn でログを残すことはできませんか?
A.3080
runmdn は、環境変数 MDN_LOG_LEVEL に 0 から 5 までの数値を設定する
ことで、標準エラー出力にログを出力することが可能となります。
数値が大きくなるほど、出力されるログの詳細度があがりますが、その分
情報量が増えます。これは runmdn が利用している mDNkit のライブラリ
libmdn の機能なので、mdnconv でも同様に使用可能です。
MDN_LOG_LEVELに 4 または 5 を指定する場合には、CFLAGS に -DDEBUG
オプションを追加して libmdn および当該ライブラリをリンクしている
コマンドを再コンパイルしてください。
Q.3090
mDN Wrapper のインストールを行ったのですが、新しくなったようには
見えません。
A.3090
mDNkit-1.2 以前の mDN Wrapper を既にご利用になっていて、mDNkit-1.2.1
の mDN Wrapper を上書きインストールしようとすると発生する問題です。
その場合は、以下の手順に従って、mDNkit-1.2.1 のmDN Wrapper をインスト
ールするようにしてください。
(1) mDNkit-1.2.1 の mDN Wrapper をインストールする前に必ず mDN Wrapper
をアンインストールしてください。
アンインストールは、[スタート]→[設定] →[コントロールパネル]→
[アプリケーションの追加と削除]で mDN Wrapper を選択し、[追加と削除]
をクリックすることにより可能です。
(2) mDN Wrapper を新規にインストールしてください。
(3) mDN Wrapper インストール終了後、[スタート]→[プログラム]→[mDN
Wrapper]→[mDN Wrapper Configuration]を起動し、wrap されている
全てのアプリケーションをいったん unwrap してください。
[Unwrap All]→[はい]をクリックすると、一括して unwrap できます。
unwrap の際、wrap されているアプリケーションが起動されていると
エラーとなります。関連するアプリケーションは全て終了しておいて
ください。(エラーの詳細については A.3070を参照してください。)
(4) unwrap したアプリケーションを再度 wrap をしてください。
【サーバでの対応】
Q.4010
ISP 側で dnsproxy を用意すれば、ダイヤルアップユーザーは多言語ドメ
イン名の Web にアクセスできますか?
A.4010
ISP のネットワーク構成や利用者の利用状況によって異なります。基本的
には、多言語ドメイン名の対応は利用者側(リゾルバやアプリケーション
など)で行われる必要があります。dnsproxy は利用者の端末で対応でき
ない場合のための補助的な手段であり、最終的な解決法ではありません。
Q.4020
Apache で日本語ドメイン名の Web サイトを立ち上げたのですが、日本語
ドメイン名では Apache のログに "Client sent malformed Host header"
というメッセージが出力されてアクセスできません。
A.4020
Apache-1.3.10 からセキュリティ上の理由で、HTTP リクエスト中の Host
ヘッダのチェックが厳しくなり、ASCII の英数字、ハイフン、ドット(ピ
リオド)以外の文字は不正なホスト名とみなされるようになりました。
mDNkit はリゾルバ(ドメイン名の問い合わせ)の部分で多言語対応する
機能を提供するもので、個々のアプリケーションプロトコルには対応して
いません。現状では、Apache で日本語ドメイン名のリクエストを受け付
けるためには以下のいずれかの対応が必要となります。
・Apache-1.3.9 を使う
・Apache-1.3.10 以上を使う場合、src/main/http_vhost.c の
fix_hostname 関数を Apache-1.3.9 のものと入れ替える
・Host ヘッダを ACE で出力する Web ブラウザを使う
(そのような Web ブラウザがあったら教えてください)
Q.4030
Squid 2.3-STABLE3 用のパッチは用意されていますが、Apache-1.3.10 以
上用のパッチは用意されないのですか?
A.4030
一般に HTTP Proxy サーバは利用者の近くに配置されるため、利用者の端
末が使用する文字エンコーディングを仮定することが可能です。
そのため、日本語ドメイン名の導入初期において、dnsproxy または mDNkit
が提供するリゾルバライブラリと組み合わされた HTTP Proxy を使用する
ことは、多言語ドメイン名での Web アクセスに対応する有効な方式になり
得ると考えています。
Squid は世界中で広く使われている HTTP Proxy あり、小規模なパッチで
対応することが可能であったため、パッチを用意しました。
Web サーバは利用者の近くに配置されるものではなく、利用者の端末が使
用する文字エンコーディングを仮定することは不可能です。
そのため、Web サーバで多言語ドメイン名に対応することは困難であり、
また、日本語ドメイン名にのみ対応するようなパッチを作成することは
Web サーバの汎用性を失わせることになるため、パッチは用意しません。
【その他】
Q.5010
ACE って何ですか?
ZLD って何ですか?
A.5010
ACE とは ASCII Compatible Encoding の略で、多言語ドメイン名を
ASCII 文字のみで表現するエンコーディング方式のことです。
ACE はそれ自体 ASCII 文字列ですので、プレフィックスやサフィックス
として特定の文字列を追加するなどの工夫を施さない限り、それが ASCII
文字列なのか ACE なのかを判断することはできません。
ZLD とは Zero Level Domain のことで、利用者が意識する必要のない、
もしくは利用者から隠蔽された特別な上位レベルドメイン名のことです。
ZLD は、ACE を判別する方式の一つですが、実際のドメイン名空間では
ZLD は通常のドメイン名として存在しますので、ZLD の使用はドメイン名
空間の分断を招く恐れがあるとして、現在では支持されていません。
Q.5020
RACE って何ですか?
A.5020
RACE とは Row-based ASCII Compatible Encoding の略で、ACE 方式の一
つです。ACE であることが識別できる特定の文字列を持つ(プレフィック
スに bq-- が付く)ことと、簡単な圧縮アルゴリズムが使用されているこ
とが特徴で、多言語ドメイン名で使用される ACE の有力候補の一つです。
(例)日本語ドメイン名.jp
↓(RACE に変換)
bq--3bs6kzzmrkpdbsjq4eykimhtkqgq.jp
Q.5030
RACE 以外の ACE 方式は実装されないのですか?
A.5030
RACE 以外では mDNkit-1.2 から LACE と BRACE がサポートされています。
最新版の mDNkit-1.2.1 を使うようにしてください。
Q.5040
djbdns を使っているのですが、多言語ドメイン名は使えますか?
A.5040
ACE を使えば可能と思われます。動作確認のご報告をいただけると幸いです。
Q.5050
バグを見つけました。どこに報告すればよいですか?
A.5050
mdnkit-bugs@nic.ad.jp にメールでご連絡ください。その際、わかる範囲
で結構ですので、以下の情報を添付してください。
・OS 名、OS バージョン
・DNS サーバ名(BINDなど)、DNS サーババージョン
・dnsproxy.conf、mdnres.conf の内容
・dnsproxy、mDN Wrapper のログ
・mDNkit コンパイル時のオプションなど(CFLAGS や configure 時
のオプションなど)
Q.5060
この FAQ に間違いを見つけました。どこに報告すればよいですか?
A.5060
idn-cmt@nic.ad.jp にメールでご連絡ください。
Q.5070
この FAQ に項目を追加したいのですが、どこに連絡すればよいですか?
A.5070
idn-cmt@nic.ad.jp にメールでご連絡ください。Q & A の形式でご連絡を
いただけると幸いです。