日本語ドメイン / 国際化ドメイン名/IDN(Internationalized Domain Name)

    1. DNS/BIND
    2. ADSLとDDNS(Domain NameServer System)
    3. 日本語ドメイン
      1. はじめに
      2. BIND9の設定
      3. Apache2.0の設定
      4. ブラウザの設定
      5. 補記

はじめに

国際化ドメイン名/IDN(Internationalized Domain Name)、あるいは汎用ドメイン名を利用できるようにしようというのがここでの主眼です。URLで英数字以外の文字を使えるようにします。
具体的にはURLを「http://大阪演劇情報センター.jp」と記述して日本語表記ドメインへのアクセスを実現することです。
日本語ドメイン取得ではなく、バーチャルホスト名を日本語表記にする場合も同等です。読みかえてください。具体的には「http://大阪演劇情報センター.xxx.xx.jp」などです。
大枠の流れは、DNSとIDNでは文字コードが異なるので、あらかじめ互換性のある形式(ASCII Compatible Enocoding;ACE)で日本語JPドメイン名を変換したコードをDNSで使用します。 また、この変換文字をクライアントWebブラウザが理解できるようにし、処理して日本語表記がなる、となります。
上記のために「BIND」と「Apach」の設定変更を行います。


BINDの設定

DNSサーバは汎用ドメインの場合ブラウザから、最終的にはACEから変化したPunycodeというアルゴリズムで問い合わせを受けます。しかし、DNSサーバはこの文字コードではありませんので、DNSが対応できるように変換しておいた、WebサーバのIPアドレス(Aレコード)を回答します。
Punycodeにあわせるには、JPNICが配布している国際化ドメイン名ツールキット(idnkit)を使えば可能です。
ここではこのキットを導入する方法をとるのではなく、日本語JPドメインのPunycode変換・逆変換 にアクセスし変換することにしました。

汎用ドメイン取得の場合は、

正規化後 : 大阪演劇情報センター.jp
Punycode : xn--8er31ltxxxxxxxxxx.jp

バーチャルホストの場合は、

正規化後 : 大阪演劇情報センター.xxx.xx.jp
Punycode : xn--8er31ltxxxxxxxxxx.xxx.xx.jp

で、設定を行いました。
この文字列をDNSのゾーンファイルのCNAMEネーム欄に書き込みます。シリアルナンバーを上げnamedを再起動します。
汎用ドメイン取得の場合は、DNSのゾーンファイルを新たに作成します。

    /etc/named/xn--8er31ltxxxxxxxxxx.jp

$TTL 259200 ; 3 Days
@   IN   SOA   ns.xn--8er31ltxxxxxxxxxx.jp.   root.xn--8er31ltxxxxxxxxxx.jp. (
    2005071501   ;serial
    8H   ;refresh
    2H   ;retry
    1W   ;expire
    1D)   ;minimum TTL
;
  IN   NS   ns
  IN   NS   ns1.zxcz.co.jp.

  IN   A   61.123.456.3
;
xn--8er31ltxxxxxxxxxx   IN   CNAME   www
;
www   IN   A   61.123.456.3


[2007.01.17 追記] 昨日、日本語ドメインではないが上記の設定を行った。その作業ので上記の「  IN   A   61.123.456.3」を「ns   IN   A   61.123.456.3」とし解決不能になった。備忘録として付記することにした。

バーチャルホストの場合は、任意の既存ゾーンファイルにキャノニカルネームとして指定します。

    /var/named/ゾーンfaile

xn--8er31ltxxxxxxxxxx.xxx.xx.jp   IN   CNAME   ns.xxx.xx.jp.


なお、ここではBINDにパッチを当てたりしていませんのでnslookup等のコマンドで「大阪演劇情報センター.jp」を検索できません。 可能なのは「xn--8er31ltxxxxxxxxxx.jp」です。
Punycode (ピュニコード)
 多国語ドメイン名を既存のDNSで運用できるためにASCII文字以外の文字列をASCII文字に変換する符号化手法(ACE:ASCII Compatible Encoding)の1つ。IETFにより、RFC3492として標準化されている。
ACEによって生成される多言語ドメイン名では先頭に「xn--」(Punycode)、「bq--」(RACE)の識別子の後に符号化された文字が続き、例えば「www.(日本語ドメイン名).jp」がPunycodeでの変換後は「www.xn--(符号化されたASCII文字列).jp」となる。
 Punycode の標準化とともに、多国語ドメイン名を実現するACEとして従来用いられていた RACE(Row-based ACE)に代わりPunycodeの本格的な運用が開始された。汎用jpドメインを管理するJPRSでは2003年7月からRACEとPunycodeの併用を開始、同年9月にはRACEの運用を停止し、Punycodeでの運用化に一本化した。ただし、gTLDにおける日本語ドメイン名を管理する VeriSign Naming & Directory Services では現在、RACE のみでの運用が行われている。

      [ IT用語辞典 e-Words(http://e-words.jp/w/Punycode.html)から引用 ]


Apache2.0の設定

Apacheの設定はバーチャルホスト扱いです。下記のようにDocumentRoot等を確定します。

    /etc/httpd/httpd.conf

<VirtualHost 61.xxx.xxx.xx >
ServerAdmin aaa@xxx.xx.jp
DocumentRoot /home/xxxx/public_html
ServerName xn--8er31ltxxxxxxxxxx.jp
ErrorLog /var/log/httpd/_error_log
CustomLog /var/log/httpd/_access_log common
</VirtualHost >


上記はドメイン取得での、バーチャルホスト設定例です。


ブラウザの設定

ブラウザからDNSへの問い合わせはPunycodeに変換された「xn--8er31ltxxxxxxxxxx.jp」の形式です。ブラウザがIDNに対応していないと、日本語ドメインのURLにアクセスできません。 現在(05.07.16)、Netscape、Mozilla、Firefox、Opera、Safariなどで利用できます。Internet ExplorerはJPRSが配布している文字コードを変換するプラグインソフト「i-Nav」をインストールすることで利用可能です。日本語JPにプラグイン等があります。参照ください。
なお、上記はWindowsXPでの話です。LinuxのMozillaでの検証はOKでしたが、MacOSでは検証できていません。


補記

《 ■ 参照URL   ※サイト内参照ページ    引用、参照書籍 ■ 》
日本語JPドメイン名 - 導入の背景とその経緯 -
日本語JP
日本語JPドメインのPunycode変換・逆変換
いますぐ使える国際化ドメイン名の理論と実践
※TCP/IP(Transmission Control Protocol/Internet Protocol)
『ステップ式サーバ構築入門 はじめてのファイアウォール』 著/内田法道 刊/技術評論社

“このページの作成にあたり、上記に掲げたURLや書籍を参考にしました。謝意を表します。具体的な引用については明記しました。内容の間違いや、誤字は筆者の責任であり、関係する参照先の責任ではありません”

top     home:top     server library:top     PHP PostgreSQL MySQL サンプルスクリプト     SiteMap     Open SiteMap