はじめに
自分のルータにIPv6アドレスしか割り当ててないと、IPv4に対応していないサイトが見れなくなった。
IPv6の設定を無効化すればよいのだが、やんごとなき事情によりできない場合の回避策として、AWSに上にSCOKSサーバを立てることでサイト閲覧ができるようになった。以下では、その方法と解説を簡単に記載する。
AWSのIPv6対応について
AWSのドキュメントによると、VPCではデュアルスタックで動作しているらしい。
VPC は、デュアルスタックモードで動作します。IPv4 または IPv6 あるいは両方を経由して通信できます。IPv4 と IPv6 は、互いに独立して通信されます。
このため、クライアントからIPv6でEC2にアクセスし、EC2から各Webサイトにアクセスする際はIPv4またはIPv6でアクセスしにいく。
VPCとEC2をIPv6化する
以下のURLの通りに設定を行った。詳細に書くと長くなるので省略する。
なお、AMIをCentOSにすると、IPv6が自動的に割り当てられず面倒であるため、今回はAmazon Linux2を使用した。コストを抑えるためにインスタンスタイプはt3.nanoを使用した。
SSHダイナミックポートフォーワードする
以下のコマンドを実行し、EC2をSOCKSサーバとして利用する。
$ ssh -D 1080 ec2-user@<IPv6 Address>
Google ChromeでSOCKSプロキシ設定を行う。
Chromeの環境設定から、詳細設定>システム>プロキシ設定を開く>プロキシ の画面を開く。
設定項目 | 設定内容 |
---|---|
構成するプロトコルを表示 | SOCKSプロキシにチェック |
簡易ホスト名を除外 | チェック |
SOCKSプロキシサーバ | localhost:1080 |
プロキシ設定を使用しないホストとドメイン | localhost, |
設定確認
以下のURLから接続元IPがEC2のIPv6アドレスになっていることが確認できる。
https://linuxfan.info/ip
接続速度の確認
Googleのスピードテストを実行したところ、以下の結果となった。
下り : 21.1Mbps
上り : 30Mbps
Youtubeの1080p程度であれば問題なく視聴できる速度である。(4Kは厳しいかも)
注意点としては、SOCKSサーバを経由する以上、遅延は避けられない。
そのため、リアルタイム性が重視されるオンラインゲームなどには向かない。
おわりに
今回はIPv4に対応していないサイトを閲覧するために、AWSのデュアルスタックを利用してIPv6→IPv4に通信を変換しサイトを閲覧できるようにした。
この方法を実現する前は本当に見れるサイトが少なく、実際に世にあるサイトでIPv6に対応しているサイトは少ないことを身を持って実感した。
IPv4アドレスが枯渇しつつある今、Webサイトを運営している方には是非IPv6の対応を検討してもらいたい。
記事で間違っている内容があればコメントお願いします。