mDNkit に含まれる BIND 9 用のパッチファイルを適用することにより、 BIND 9 に付属するいくつかのツールにおいて 従来の ASCII 文字によるドメイン名に加え、 非 ASCII 文字による多言語ドメイン名を扱うことが可能になります。
具体的には、BIND 9 に次のような機能を追加します。
BIND 9 へのパッチの適用方法は、パッチファイルの先頭に記載してあります。 なおパッチファイルについては、 対応する BIND のバージョンをよく確認してから、使用してください。
mDNkit バージョン1 に含まれていた BIND 9 パッチは、概要に記した 機能に加え、次のような機能も提供していました。
これはリゾルバレイヤで正規化やエンコーディング変換等の多言語ドメイン名処理を 実装したり、DNS プロトコル上でUTF-8文字を扱うことを可能にするものですが、 現在多言語ドメイン名処理のアーキテクチャとして有力になりつつある IDNA では、これらの処理をすべてアプリケーション内で行い、DNSプロトコル上では ACEエンコーディングを使用するように規定しています。 mDNkit バージョン2 は IDNA に準拠しており、そのため上記の機能を BIND 9 パッチから外しました。
以下に BIND 9 の各コンポーネントで実装される機能と、コンポーネント間の インタフェースで用いるエンコーディングを表した図を示します。
BIND 9 には DNS の問い合わせツールとして dig、host、nslookup という コマンドが付属します。mDNkit の BIND 9 パッチにより、これらはいずれも 多言語ドメイン名が扱えるようになります。具体的には以下の機能が 付加されます。
また DNS の返答に含まれる多言語ドメイン名をローカルエンコーディングに 変換し、表示します。
これらの処理には MDN ライブラリの res モジュール を使用しています。 設定はmDNkit設定ファイルで行います。