本を読む

読書やコンピュータなどに関するメモ

IPv4とIPv6とで表示の違うWebサーバーを作る

 www.kame.netでは、IPv6でアクセスしたときだけ亀が踊るようになっています。同じようなことを、手元で簡単に試してみます。

 以下、Ubuntu 10.10とApache HTTP Server(以下Apache)で試した内容ですが、ほかのOSやHTTPサーバーでもやることは同じはずです。

IPv6の準備

 いまどきのOS(Linux、BSD、Mac、Windows)ならデフォルトでIPv6に対応していると思います。ただし、IPv6のネットワークやアドレスを準備するほうが大変なので、ここではローカルホスト内で試します。

IPアドレスベースの仮想ホストを設定する

 IPv4とIPv6をIPアドレスベースの仮想ホストで分けます。

 Ubuntu 10.10でapache2をインストールすると、/etc/apache2/sites-availableディレクトリができて、仮想ホストごとに1ファイルずつ設定を置くようになっています。そこで、標準のdefaultファイルをコピーして、ipv6-localというファイルを作ります(この名前に意味はありません)。

$ cd /etc/apache2/sites-available
$ sudo cp default ipv6-local

 このipv6-localファイルを開いて、仮想ホストのIPアドレスを設定します。

$ sudo vi ipv6-local

<VirtualHost *:80>
    ↓
<irtualHost [::1]:80>

 "::1"はIPv6のループバックアドレスです。IPv6のIPアドレスは[ ]で囲んで指定します。

 設定した仮想ホストipv6-localを有効にします。

$ sudo a2ensite ipv6-local

IPv4とIPv6とで簡単に表示を変える

 このままだとIPv4とIPv6とで同じ内容が表示されます。DocumentRootを別にすれば内容が別になりますが、それではそれぞれのコンテンツを用意しなくてはなりません。IPv4とIPv6とで、まったく別ではなく、一部だけ違う表示にしてみます。

 まず、仮想ホストの設定を編集します。

$ sudo vi ipv6-local

 "<Directory /var/www/>"の指定の中に、以下の2行を追加します。

                AddType text/html .html6
                DirectoryIndex index.html6 index.html index.cgi index.pl index.php index.xhtml index.htm

 index.htmlより優先するindex.html6を追加し、.html6をtext/htmlとしてクライアントに返す設定です。

 そして、試しにデフォルトのindex.htmlを元に、少しだけ書き変えたindex.html6を作ります。

$ cd /var/www
$ sudo cp index.html index.html6
$ sudo vi index.html6

<html><body><h1>It works!</h1>
    ↓
<html><body><h1>It works in IPv6!</h1>

 ちなみにこれは、10年ぐらい前にwww.kame.netの踊る亀の仕組みとして講演で聞いた方法です。今も同じ方法を使っているかどうかはわかりませんが。

設定を反映する

 あとはApacheの設定を読み込み直すか再起動するだけ……のはずですが、Ubuntu 10.10ではIPv6のルーティングを設定していないと、ApacheがIPv6アドレスの設定を無効にするようです。そのため、そのままApacheの再起動などをしても、設定エラーになります。説明はこのへん(↓)。

 が、OS自体を再起動すると、なぜかApacheのIPv6アドレス設定が有効になってくれる、という挙動になっていました。バッドノウハウですね。

アクセスしてみる

 というわけで、Ubuntuを再起動したらローカルのWebブラウザでアクセスしてみます。

 IPv4の"127.0.0.1"でアクセスした場合。

IPv4でアクセスした場合

 IPv6の"::1"でアクセスした場合。Apacheの設定と同じく、IPアドレスを[ ]で囲みます。

IPv6でアクセスした場合

 めでたしめでたし。

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://emasaka.blog65.fc2.com/tb.php/867-a746bff9

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly


FC2Ad