日本語.jp始めました
ムームードメインで日本語.jpを651/年円で大安売りしてたので、本名フルネーム(漢字とひらがなの2種類)で獲ってみた。
日本語.jpというのはIDN(Internationalized Domain Name)と呼ばれる「国際化ドメイン名」の新しい仕組みだが、IPv6のように大がかりな話ではなく既存のDNS(Domain Name System)の枠組みに一工夫するものだ。
ただ、Webブラウザなどのユーザーアプリケーションが個々に対応しなければならないのがネックとなってあまり普及していなかったのだが、Internet Explorerが 7 になってようやく対応し、Windows Vistaに標準搭載された事から、ようやく環境が整ってきたというわけ。
技術観点でIDNとはPunycodeに変換してからDNSを引くだけなので、例えば 日本語.jp の場合は xn–wgv71a119e.jp となる。すなわち、http://www.日本語.jp/ ならWebブラウザが裏で http://www.xn--wgv71a119e.jp/ に変換したあと、何事もなかったかのようにしれっとアクセスしているわけだ。
なお単体でのPunycode変換はJPNICが公開しているidnkitを使えばよい。bashの場合、/etc/profile.d/idn.shに
export IDN_LOCAL_CODESET=UTF-8
function idn() { eval `echo "$@" | idnconv`; };
な感じで書いておけば、コマンドラインにidn を前置する事で以降の文字列をPunycodeへ変換して実行できる。
$ **idn** `nslookup` 日本語.jp
Server: 210.252.128.8
Address: 210.252.128.8#53
Non-authoritative answer:
Name: xn--wgv71a119e.jp
Address: 202.11.16.167
てな具合だ。
DNSサーバーには従来のDNSと同じ情報をPunycodeで記述しておけば良いので、djbdnsでは
# 日本語.jp SOA
.**xn--wgv71a119e.jp**:202.11.16.167:ns1.bravotouring.com:86400
# 日本語.jp MX
@**xn--wgv71a119e.jp**:202.11.16.167:mail.bravotouring.com:20:86400
# 日本語.jp A
+www.**xn--wgv71a119e.jp**:202.11.16.167:86400
な感じで書けば良い事になる。
最初、とっくに対応済みのfirefoxでうまくいかずに焦ったが、2005年9月の脆弱性対処としてIDNを無効にしていたのを思い出し、network.enableIDNを true に戻して無事OK。
またapacheへのアクセスで名前ベースのVirtualHostを使っている場合には、httpd.confにもPunycodeでVirtualHostを追加する必要があるかもしれない。ただ同一コンテンツを別のドメインで表現するとGoogle MapsのAPIキーなどの認証に不整合が発生する可能性がある。
まぁ、これは名前ベースのVirtualHostに起因するものであり、IDNでなくてもサブドメインなどを使っても起こる問題だ。やっぱりドメイン名の一意性や信頼性の担保を考えると、本流のURIにリダイレクトするのが正解かなぁ。
参照
asahi.com http://www.asahi.com/
- 日本語ドメインが増殖中 対応ソフト普及で加速 2007年9月29日
@IT http://www.atmarkit.co.jp/
- いますぐ使える国際化ドメインへの理論と実践 2003年2月11日
- DNS Tips:どうやったら日本語ドメイン名が使えるようになるのか 2003年10月15日
- DNS Tips:日本語ドメイン名をPunycodeに変換するには 2003年10月15日
日本ネットワークインフォメーションセンター http://www.nic.ad.jp/
INTERNET Watch http://internet.watch.impress.co.jp/
Mozilla Japan http://www.mozilla-japan.org/
ムームードメイン http://muumuu-domain.com/
YANO’s digital garage 仮設ドア http://www.やのよしひさ.jp/