next up previous contents
Next: 6.1.4 Firefox の導入 Up: 6.1 WWWサーバ Previous: 6.1.2 動作の確認

6.1.3 IPv6とIPv4のサーバを区別

さて、これでIPv4,IPv6の両方で稼動するWWWサーバが立ち上がった訳ですが、 IPv4 でアクセスしたのか、IPv6 でアクセスしたのかが少し分かりづらいのが 欠点です。勿論、/var/log/httpd-access.log を見ると 、どちらでアクセスしたかは分かりますが、クライアントからも分かった方が 便利でしょう。

/var/log/httpd-access.log の一部
2001:2f8:43:a000::661 - - [23/Jul/2004:16:49:52 +0900] "GET /apache_pb2_ani.gif
 HTTP/1.1" 200 2160 "http://dns.s01.wakhok.ac.jp/" "Mozilla/5.0 (compatible;
  Konqueror/3.1; FreeBSD)"
  ::1 - - [23/Jul/2004:19:24:22 +0900] "GET /index.html" 404 294 "-" "-"
  ::1 - - [23/Jul/2004:19:24:36 +0900] "GET /index.html html/1.0" 404 294 "-" "-"
  ::1 - - [23/Jul/2004:19:26:09 +0900] "GET /index.html html/1.0" 404 294 "-" "-"

そこで、Apache2の動作を少しだけ変更します。ここで使うのは、VirtualHost機能です。 これは、アクセスの際の名前で複数のサーバが動いているように見せかけられるもの ですが、ここではアクセスの際のIPアドレスから別のページが見えるようにして みましょう。

/usr/local/etc/apache2/httpd.confの末尾を編集して、以下のようにします。

   # httpd.conf の変更箇所
   <VirtualHost  10.128.130.1:80>
       ServerAdmin www@s01.wakhok.ac.jp
       DocumentRoot /usr/local/www/data4
       ServerName dns.s01.wakhok.ac.jp
       ErrorLog /var/log/httpd-v4-error_log
       CustomLog /var/log/httpd-v4-access_log common
   </VirtualHost>
   <VirtualHost  [2001:2f8:43:a000::180]:80>
       ServerAdmin www@s01.wakhok.ac.jp
       DocumentRoot /usr/local/www/data6
       ServerName www.s01.wakhok.ac.jp
       ErrorLog /var/log/httpd-v6-error_log
       CustomLog /var/log/httpd-v6-access_log common
   </VirtualHost>

勿論、IPアドレスやホスト名などは自分のものに書き換えてください。

次に、/usr/local/www/data4 と data6 のディレクトリを作ります。

    # mkdir /usr/local/www/data4
    # mkdir /usr/local/www/data6

これらのディレクトリは、IPv4にアクセスして来たならば、/usr/local/www/data4 以下のウェブページを見せ、IPv6にアクセスしたならば /usr/local/www/data6 を見せるようになっているものです。

これらのディレクトリに、適当な html ファイルを置いて、v4とv6でのアクセスの 区別が分かるようにします。

単純には、/usr/local/www/data/index.html.en を data4 や data6 にコピーして 少し書き換えます。

    # cd /usr/local/www
    # cp data/index.html.en data4/index.html
    # cp data/index.html.en data6/index.html

書き換えは、真ん中辺りに IPv4 でのアクセスか、IPv6でのアクセスかを書いて おけば良いでしょう。

/usr/local/www/data4/index.htmlの変更箇所
<h2 align="center">Seeing this instead of the website you
expected?</h2>

<p>
<h2 align="center">You are access to IPv4 webserver.</h2>
<p>

上の例の下から2行が書き換えた部分です。同じように data6/index.htmlも 書き換えます(但し、IPv4 を IPv6 に置き換えて)。

さて、これで準備が整いました。先のように telnet を使ってアクセスして、 IPv4 と IPv6 で違ったページが出ましたか?もし、出なかった場合には、 /var/log のエラーファイルを見て、原因を考えてください。ethereal で 監視を行うのも良いでしょう。きちんとIPv6でアクセスがあるかどうかなど をチェックして見てください。ただ単純に、index.html が書き換えてなかった などのこともあります。



Noriyo Kanayama