さくらのVPSにおいて、IPv6はデフォルトでは無効化されているようです。
それを知らずにAAAAレコードを登録してしまい、通信不良を起こしてしまっていました。
(コンパネにIPv6アドレス書いてあったからなんだいけるのか、と思ってしまった)
対応内容を備忘録として残しておきます。
内容が間違っている場合やマズい場合は、ご指摘いただけると大変助かります。
IPv6を有効にする
とはいえ、公式サイトに有効化の方法が書いてあったので、この通りに操作すればひとまずIPv6の通信が可能になります。
https://help.sakura.ad.jp/hc/ja/articles/115000066021-IPv6有効化手順-Ubuntu-16-04-
iptables
IPv6での通信を受けるようになったので、ip6tablesを確認しておきます。
ip6tables -L
もしガバガバだった場合、iptablesと同様に使うポート以外は制限しておきましょう。
もしufwを使う場合
ufwを使うのが楽ですが、さくらのVPSの場合、デフォルトの設定として/etc/iptables/iptables.rules
が適用されます。
こいつがあるとufwをenableしてサーバを再起動したとしても、この設定が有効になり、ufwはinactiveにされちゃいます。
なので、適当なディレクトリに移しちゃいましょう。
mv /etc/iptables/iptables.rules /home/ubuntu/
あと、ufwがIPV6=yes
になっているか確認を忘れずにしておきます。
vi /etc/default/ufw
# Set to yes to apply rules to support IPv6 (no means only IPv6 on loopback
# accepted). You will need to 'disable' and then 'enable' the firewall for
# the changes to take affect.
IPV6=yes
あとは普通にufwで設定できます。
webサーバの設定確認
ApacheやnginxなどのWebサーバの設定を確認し、IPv6をlistenするように設定を変更しておきます。
nginxの場合はこんな感じです。
nginx -V
で--with-ipv6
があるか確認しておいたほうがいいですが、最近のnginxならデフォルトでONのはず。
server {
listen 80;
listen [::]:80; #←これを追加
~
}
AAAAレコードを設定する
DNSのAAAAレコードにさくらのVPSコントロールパネルより確認できるサーバのIPv6アドレスを設定します。
IPv6で接続できるか確認
最後にIPv6で接続できるか確認します。
http://ipv6-test.com/validate.php
最後に
こんな感じでIPv6に対応することができました。
CentOSでも大体同じ対応でいけるかと思います。
インフラ周りはよくわからなくてよくわからないですけど、いい勉強になりました。