クライアント側の設定
mDNS Proxy Server (mdnsproxy) は、基本的には 多言語ドメイン名に対応していないクライアントから 多言語化対応したDNSサーバを利用できるようにするものです。
ある手法の多言語ドメイン名に対応しているクライアントから 他の手法で多言語化対応したDNSサーバを利用するためにも使用できます。
あるクライアントで多言語ドメイン名を実際に使うことができるかどうかは、 そのクライアントがドメイン名をどのように扱うかによります。 クライアントが、ドメイン名を、クライアント側のエンコーディングで なにもチェック/加工しないで使用しているなら、 mdnsproxyを経由することによって、多言語ドメイン名が利用可能になります。 しかし、クライアント側でドメイン名のシンタックスを厳密にチェックしていたり、 ある種の変換を行なっているような場合には、mdnsproxyは役に立ちません。
ここでは、いくつかの代表的なクライアントについて、 mdnsproxyによる多言語ドメイン名が使うことができるかどうか、 どうすれば多言語ドメイン名を使うことができるようになるか、 を説明します。
UNIXのアプリケーション
resolverの問題
UNIXの場合、DNSへの要求は、多くの場合resolverを経由して送られます。 しかし、標準的なresolverは非ASCII文字を含むドメイン名を受付けません。 この問題に対処するため、mDNkitにはBIND 8 のresolver (およびnslookup、named)を8ビットスルーにするためのパッチが 付属しています。まずは、BIND 8にこのパッチを適用し、 8ビットスルーのresolverを使って再リンクしてください。 詳しくはインストールガイドの 前準備、 BIND 用パッチの適用とインストールを ご覧ください。
nslookup
標準的なnslookupは非ASCII文字を含むドメイン名を受付けません。 mDNkitのBIND 8への8ビットスルーパッチを適用して作成された nslookupなら、多言語ドメイン名を使用することが可能になります。 詳しくはインストールガイドの 前準備、 BIND 用パッチの適用とインストールを ご覧ください。
Squid
Squid経由でWebにアクセスするような場合には、非ASCII文字を含む ドメイン名はSquidによってエラーとされます。 mDNkitにはSquidを8ビットスルーにする (シンタックスチェックを外す)パッチが含まれています。 これを適用したSquidであれば、多言語ドメイン名を受付けるようになります。 詳しくはインストールガイドの 前準備、 Squid 用パッチの適用とインストールを ご覧ください。
Netscape Communicator
残念ながら、入力時点で非ASCII文字は拒否されてしまいます。
Windowsのアプリケーション
Windowsのresolver(WINSOCK)は、非ASCIIのドメイン名を通すようです。 クライアント内でのチェック、変換が行なわれなければ問題なく 多言語ドメイン名を使うことができます。通常は
client-encoding Shift_JIS
とすればOKです。
nslookup
残念ながら、ホスト名の入力時点で、非ASCII文字を含むホスト名は 拒否されるようです。ls による一覧表示は動作します。
Netscape Communicator
Version 4.7 は問題なく動作しました。
ただ、HTTPプロキシサーバを使われている場合には、その プロキシサーバが多言語ドメイン名に対応しているかどうかが 問題になりますのでご注意ください。
Internet Explorer
IEには多言語ドメイン名への対応が一部含まれています。
ツール インターネットオプション いつもUTF-8としてURLを送信する
しかし、これを使うと、余分なところまでUTF-8で エンコードしてしまうようで、mdnsproxyでは使用できません。 逆に、これをオフにして、
client-encoding Shift_JIS
とすれば、mdnsproxy経由で多言語ドメイン名が使えるようになります。
ですが、IEの場合には、webページ内に埋め込まれたURLについては、 そのページのエンコーディングに合わせたエンコーディングに変換して DNSの問合せを行なうようになっていますので、Shift_JIS以外で 記述されたWebページ上の多言語ドメイン名についてはクエリーが 失敗してしまいます。