diff options
Diffstat (limited to 'contrib/idn/mdnkit/README.ja')
-rw-r--r-- | contrib/idn/mdnkit/README.ja | 300 |
1 files changed, 300 insertions, 0 deletions
diff --git a/contrib/idn/mdnkit/README.ja b/contrib/idn/mdnkit/README.ja new file mode 100644 index 00000000..72a5495b --- /dev/null +++ b/contrib/idn/mdnkit/README.ja @@ -0,0 +1,300 @@ + + mDNkit + -- 多言語ドメイン名評価キット -- + バージョン 1.2 + (社) 日本ネットワークインフォメーションセンター (JPNIC) + + +* 概要 + +mDNkit とは DNS で多言語ドメイン名を扱うために提案されている各種の方式 +を評価するためのキットです。多言語ドメイン名を扱うためには、次のような +機能が要求されます。 + +・アプリケーションが使用するエンコーディング (ローカルエンコーディング) + と DNS プロトコル上のエンコーディングとの間の、ドメイン名のエンコー + ディング変換。 +・ドメイン名の正規化。 + +mDNkit では、これらの機能を追加するための各種の方法を提供しています。 + +この配布キットには次のようなものが含まれます。 + +・DNSプロキシサーバ (dnsproxy) + ドメイン名変換機能をもつ DNS のプロキシサーバです。クライアントから + 受信した DNS メッセージ中のドメイン名をクライアントのローカルエンコー + ディングから DNS サーバの使用する DNS プロトコル上のエンコーディング + へと変換して DNS サーバに送信します。また DNS サーバから返されたDNS + メッセージ中のドメイン名をクライアントのローカルエンコーディングに戻 + してクライアントに返します。詳しくは、後述の「1. dnsproxy を使う」を + 御覧ください。 + +・UNIX アプリケーションに MDN 機能を動的に追加するコマンド (runmdn) + UNIX の通常のアプリケーションで多言語ドメイン名を取り扱うために、特 + 別なライブラリを動的にリンクするためのコマンドです。詳しくは、後述の + 「2. runmdn を使う」を御覧ください。 + +・bind-9 に MDN 機能を追加するパッチ + bind-9 に MDN の機能を追加するパッチです。bind-9 では、クライアント + 側のライブラリ (liblwres) と、新しい名前解決用デーモン (lwresd) から + 成る、ライトウエイトリゾルバという全く新しい名前解決の方法が使われて + います。このパッチは、これらに MDN の機能を追加します。詳しくは、後 + 述の「3. bind9 にパッチを当てて使う」を御覧ください。 + +・Windows アプリケーション用の mDN ラッパー + WINSOCK の名前解決機能に対するラッパー DLL です。Windows 上では、名 + 前解決の要求は、WINSOCK DLL を通して行われます。そこで、これを多言語 + ドメイン用の WINSOCK DLL に置き換えることで、従来の Windows アプリケー + ションでも mDN 機能を使用できるようにします。詳しくは、後述の + 「4. mDN ラッパーを使う」を御覧ください。 + +・named.conf およびゾーンマスタファイル用コードセットコンバータ (mdnconv) + named.conf およびゾーンマスタファイルを対象としたコードセット (エン + コーディング)変換用ツールです。SJIS などのローカルエンコーディングで + 書かれたこれらのファイルを、多言語化 DNS で使用するエンコーディング + (例えばUTF-8) へと変換します。 + +・多言語ドメイン名を処理するためのライブラリ (libmdn, libmdnres) + dnsproxy や mdnconv が利用しているライブラリです。エンコーディング変 + 換や正規化、ZLD (zero-level domain) の処理等の機能を提供します。 + +・bind-8 を 8 ビットスルー化するパッチ + named やリゾルバでローカルエンコーディングや UTF-8 エンコーディング + のドメイン名を使用可能にするためのパッチです。8ビットスルーなのでほ + とんどどんなコードでも通ってしまいます。 + +・squid を 8 ビットスルー化するパッチ + URL 中のホスト名に関する正当性チェックを外すためのパッチです。このパッ + チを当てないと Squid は多言語ドメイン名を含む URL をエラーとしてはじ + いてしまいます。 + + +この配布キットは、以上のものを用いて、多言語ドメイン名を扱うための複数 +の方法を提供しています。 + + ** 1. dnsproxy を使う + + ローカルエン エンコーディン DNS プロトコル上の + コードィング グ変換および正 エンコーディングの + +----------------+のドメイン名 規化 ドメイン名 + |クライアント | +--------------+ +------+ + |アプリケーション|------------>| dnsproxy |------------>| DNS | + |と 8ビットスルー|<------------| |<------------|サーバ| + |化したリゾルバ | +--------------+ +------+ + +----------------+ + + ** 2. runmdn を使う + + エンコーディング変換 DNS プロトコル上の + および正規化 エンコーディングの + +----------------+------------------+ ドメイン名 + |クライアント |動的にリンクされた| +------+ + |アプリケーション| ライブラリ |---------------->| DNS | + |と通常のリゾルバ| (libmdnres) |<----------------|サーバ| + +----------------+------------------+ +------+ + + ** 3. bind9 にパッチを当てて使う + + UTF-8 のド エンコーディ DNS プロトコル上の + メイン名 ング変換およ エンコーディングの + +----------------+ び正規化 ドメイン名 + |クライアント | +----------------+ +------+ + |アプリケーション|---------->| ライトウェイト |------------>| DNS | + |と bind9のライト|-----------| リゾルバ |<------------|サーバ| + |ウェイトリゾルバ| | デーモン | +------+ + +----------------+ +----------------+ + + ** 4. mDN ラッパーを使う + + ローカルエ 正規化および DNS プロトコル上の + ンコーディ エンコーディ エンコーディングの + +----------------+ ングのドメ ング変換 ドメイン名 + |従来の Windows | イン名 +---------+------------+ +------+ + |ネットワーク |---------->| mDN | オリジナル |---------->| DNS | + |アプリケーション|<----------| ラッパー| winsock |<----------|サーバ| + +----------------+ +---------+------------+ +------+ + + +* ディレクトリ構成 + +配布キットのディレクトリ構成と、主要なファイルを示します。 + + README 英語版の README + README.ja このファイル + DISTFILES 配布されるファイル一覧 + NEWS 主な変更 + ChangeLog 変更詳細 + configure configure スクリプト + Makefile.in トップレベルの Makefile のテンプレート + include/ インクルードファイルディレクトリ + config.h.in config.h のテンプレート + mdn/ mdn ライブラリ用インクルードファイル + dnsproxy/ DNS プロキシサーバソース + lib/ mdn ライブラリソース + wsock/ mDN ラッパーソース + tools/ 周辺ツール + mdnconv/ コードセットコンバータソース + runmdn/ runmdn コマンドソース + patch/ 各種パッチファイル + bind8/ bind8 用パッチ + bind9/ bind9 用パッチ + squid/ squid 用パッチ + util/ ユーティリティ + + +* コンパイルおよびインストール + +0. 前準備 + +もしあなたの使用しているシステムのライブラリに iconv() がない場合、あ +るいはあっても UTF-8 を扱うことができない場合にはあらかじめ iconv() を +インストールしておいてください。iconv() の実装は、例えば LGPL のものが + + http://clisp.cons.org/~haible/packages-libiconv.html + +から入手可能です。 + +1. configure スクリプトの実行 + +トップディレクトリにある configure スクリプトを実行してください。 + + % ./configure + +configure スクリプトにはいくつかのオプションを指定することができます。 +mdn に直接関係するものは次の通りです。 + + --with-iconv=LIB + libc に iconv が入っていない場合 (上記のパッケージを入れた + 場合など) に、iconv のライブラリを指定します。例えば + + --with-iconv="-L/usr/local/lib -liconv" + + のように指定します。もし iconv が共有ライブラリになっている + 場合には、-R オプションも指定して + + --with-iconv="-L/usr/local/lib -R/usr/local/lib -liconv" + + とする必要があるかもしれません。 + + --with-iconv-sofile=PATH + mDNkit に含まれている runmdn コマンドは、iconv() が libc の一 + 部として提供されないときに、iconv() を含む共有ライブラリへのパ + ス名を知る必要があります。mDNkit は、--with-iconv オプションの + 記述を基にパス名を検索しますが、これに失敗したときに、以下のよ + うに共有ライブラリを指定することができます。 + + --with-iconv-sofile=/usr/local/lib/libiconvv.so.2.0 + + --with-utf8=NAME + iconv に utf-8 エンコーディングを指定する場合、本ライブラリは + デフォルトでは "UTF-8" という名前を指定します。もしあなたの + システムの iconv が "UTF-8" という名前を受け付けない場合には、 + 代りの名前を指定します。例えば "UTF-8" ではなく "utf8" の + 場合には次のように指定します。 + + --with-utf8=utf8 + + --with-race-prefix=PREFIX + --with-brace-suffix=SUFFIX + --with-lace-prefix=PREFIX + RACE (Row-based ASCII-Compatible Encoding)、BRACE (Bi-mode + Row-based ASCII-Compatible Encoding) および LACE (Length-based + ASCII Compatible Encoding) はいずれも DNS プロトコル + 上で使用される多言語ドメイン名に関して提案されているエンコーディ + ング方式です。通常の ASCII ドメイン名とこれらによってエンコー + ドされたドメイン名を区別するために、固定の接頭辞 (BRACE の場合 + には接尾辞) が用いられます。 + + mDNkit では現在のインターネットドラフトで定義されている接頭辞 + あるいは接尾辞を使用するようになっていますが、今後のドラフトで + 変わるかもしれません。そこで、これらのオプションを用いて指定で + きるようになっています。 + + --enable-zld + ZLD (zero level domain) は、デフォルトでは使用できません。この + 機能を使用したいときに、このオプションを指定します。 + + --sbindir=DIR + DNS プロキシサーバをインストールするディレクトリを指定します。 + デフォルトでは /usr/local/sbin です。 + + --bindir=DIR + コードセットコンバータ mdnconv をインストールするディレクトリを + 指定します。デフォルトでは /usr/local/bin です。 + + --sysconfdir=DIR + DNS プロキシサーバの設定ファイルをインストールするディレクトリを + 指定します。デフォルトでは /usr/local/etc です。 + + --mandir=DIR + オンラインマニュアルのインストールディレクトリを指定します。 + デフォルトでは /usr/local/man です。 + +--with-iconv オプションではライブラリだけを指定します。もしインクルー +ドファイル iconv.h がデフォルトのインクルードファイルのパスにインストー +ルされていない場合、あるいは他に C コンパイラへのオプションを指定した +い場合には環境変数 CFLAGS を使用してください。例えば + + % CFLAGS=-I/usr/local/include ./configure ... + (sh 系のシェルの場合) + % setenv CFLAGS -I/usr/local/include; ./configure ... + (csh 系のシェルの場合) + +とします。 + +configure には他にも多くのオプションがありますが、残りは一般的なオプショ +ンなので説明は省きます。 + + % ./configure --help + +を実行するとオプションの一覧が表示されます。 + +2. コンパイル + +configure を実行すると Makefile などが生成されますので、続けて makeを +実行してコンパイルします。 + + % make + +3. インストール + +スーパユーザになってインストールします。 + + % su + # make install + +4. Configuration and usage + +インストールされるツール (dnsproxy、mdnconv、runmdn) の使い方、設定方 +法に関してはオンラインマニュアルをご覧ください。mdnconv と runmdn につ +いては、mDNkit のリゾルバ設定ファイル mdnres.conf のマニュアルも参照し +てください。 + + % man dnsproxy + % man mdnconv + % man runmdn + % man mdnres.conf + + +* パッチの当て方 + +この配布キットには、bind-8.2.2-P7、bind-8.2.3-T6B、bind-9.0.0、および +squid-2.3-STABLE3 に対するパッチが含まれています。パッチの当て方は、パッ +チファイルの先頭に書かれていますのでそちらを参照してください。 + +Solaris では、システム付属の patch コマンドが正常に動作しないことがあ +ります。そのような場合には、GNU バージョンの patch +(http://www.gnu.org/software/patch/) をインストールして、これを使用し +てください。 + + +* 本キットに関する最新情報、問い合わせについて + +本キットに関する最新情報については、 +http://www.nic.ad.jp/jp/research/idn/ を参照してください + +本キットに関するバグレポートおよびコメントは、それぞれ +mdnkit-bugs@nic.ad.jp および idn-cmt@nic.ad.jp へお願いします。 + + +; $Id: README.ja,v 1.1 2000/12/07 00:52:17 tale Exp $ |