Posted at

さくらのVPSでIPv6に対応する(ubuntu16.04)

More than 1 year has passed since last update.

さくらの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にされちゃいます。

なので、適当なディレクトリに移しちゃいましょう。


参考:http://blog.mogmet.com/how-to-enable-ufw-on-sakura-vps/




mv /etc/iptables/iptables.rules /home/ubuntu/


あと、ufwがIPV6=yesになっているか確認を忘れずにしておきます。

vi /etc/default/ufw


/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でも大体同じ対応でいけるかと思います。

インフラ周りはよくわからなくてよくわからないですけど、いい勉強になりました。