ウェブサイトをIPv6対応にするには?
World IPv6 Launch
公開しているウェブサイトをIPv6に対応にするには…?
IPv6で通信できない場合にIPv4にフォールバックするのは…?
などなど、ウェブサイトのIPv6対応について、
自分がよく分からなかったこと4点を試してみました。
WEBサーバーをIPv6対応にする
IPv4環境でIPv6サイトにアクセスする
独自ドメインをIPv6対応にする
通信がIPv6かIPv4かを表示する
話題としては少し古いのですが、2012年6月6日のWorld IPv6 Launchに合わせて、4月から7月にかけてテストをしてきたことの覚え書きです。
WEBサーバーをIPv6対応にする
さくらインターネットのIPv6接続サービス、さくらの6rd(トライアル)でサーバーをIPv6対応にします。各OSにより設定方法は異なるようですが、CentOSの場合は6rdに対応していないので、カーネルとiprouteにパッチをあてます。
さくらの6rd(トライアル)> 6rd設定方法(CentOS5.5編)
さくらの6rd(トライアル)> 6rd設定方法(CentOS6.2編)
9月16日の時点では、上記で案内されている方法では6rdは利用できないはずです。標準でインストールされるのがCentOS6.3にアップされていたり、カスタムでインストールできるCentOS5.5のカーネルとiprouteパッケージのバージョンが上がり、RPMパッケージがインストールできない、という理由です。
ipv6.google.comやOCNのIPv6通信確認サイトにpingがとおれば設定完了です。
以下、さくらのVPSサーバーのIPv4アドレスを、192.168.AAA.BBB、6rdで指定されるIPv6アドレスを、2001:e41:AAAA:BBBB::1、とします。
IPv4環境でIPv6サイトにアクセスする
自宅の固定回線のJCNはIPv6に未対応で、モバイル回線のXiは、Xi自体は対応しているのですが、モバイルルータのL-09Cが未対応ということで、自分のインターネット環境ではIPv6サイトに接続できませんでした。
そこでSSHを使って、IPv6対応したさくらのVPSサーバーを経由してIPv6サイトを表示させます。SSHクライアントとしてPuTTYと、FirefoxのSOCKSプロキシの機能を利用します。
WorldIPv6Dayという事で、
さくらのVPSを使ってIPv4、IPv6両方のサイトを閲覧する方法。
この時点で、下記のようなIPv6サイトを見ることができます。
ipv6.google.com
OCNのIPv6通信確認サイト
さらにこの時点で、さくらのVPSサーバーにおいたテストファイルにIPv6アドレス直打ちでページの表示ができるはずです。
(例)http://[2001:e41:AAAA:BBBB::1]/test.html ※IPv6アドレスの直打ちでは[ ]を忘れずに!
独自ドメインをIPv6対応にする
IPv6アドレス直打ちで表示できるようになったので、独自ドメインでも表示できるようにします。
今回はさくらのドメインで、バーチャルホストのアドレス ipv6.sample.com にAAAAレコードとAレコードを登録することにしました。
以上の設定で、名前解決のときにAAAAレコードとAレコードが払いだされ、IPv6通信ができるときはIPv6で、できないときはフォールバックしてIPv4で通信をします。
なお、AAAAレコードとAレコードを両方受け取ったときにどちらを優先するかはOSの設定にしたがい、Windowsでは初期でIPv6が優先になっています。
通信がIPv6かIPv4かを表示する
IPv6でアクセスされているか、IPv4でアクセスされているかをPHPで判別します。インターネット上で紹介されているいくつかの方法のうち、サーバーアドレスで分けるのは下記のようになります。IPv6かIPv4の判別ってどうすればいいんだろうと思っていたけど、ただこれだけでした。
おわり
以上、IPv6に関して4点をまとめましたが、ご存じの通り、日本はIPv6で通信できる環境が十分ではなく、現時点でウェブサイトをIPv6対応で運用することにはフォールバックの問題があり、注意が必要です。
実際の運用にあたっては、セキュリティ関連などに取り組まなければいけないはずですが、今回はここまで。
参照サイト