さくらのVPSで構築したWordPressでIPv6を有効化するためには?

これまで本サイトははてなブログを使用して運営していました。
しかし、はてなブログではカスタマイズ可能な範囲に少々物足りなさを感じてしまい、さくらインターネットの「さくらのVPS」を契約し、WordPressを構築することにしました。

専用サーバに移行することで、セキュリティ面含めて様々な部分を自分自身で管理しなければならないという手間はありますが、自分自身の好み等に合わせて自由に弄れるというメリットはあります。
そこで今回、本サイトのIPv6対応に挑戦してみましたので、設定方法をご紹介します。

環境構成

本記事は下記環境構成のサーバを対象としています。

  • CentOS 8 x64 (さくらのVPS 標準OSを使用してインストール)
  • Apache/2.4.37 (centos)
  • WordPress 5.7.2

サーバ側設定変更

カーネルパラメータの変更

さくらのVPSでは、デフォルトで下記のようにIPv6が無効化されています。
そのため、既存の設定を変更して、IPv6設定を有効化する必要があります。

# cat /etc/sysctl.conf


# Do not accept RA
net.ipv6.conf.default.accept_ra=0
net.ipv6.conf.all.accept_ra=0
net.ipv6.conf.ens3.accept_ra=0

# Do not use IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

vi等のエディタを使用して手動で有効化しても良いですが、以下のコマンドにて一括置換が可能です。

# sed -i -e "/net.ipv6.conf.all.disable_ipv6/s/1/0/" /etc/sysctl.conf
# sed -i -e "/net.ipv6.conf.default.disable_ipv6/s/1/0/" /etc/sysctl.conf

上記コマンドを実行後、下記の通り設定が変更されていることを確認します。

# cat /etc/sysctl.conf

----関連設定の抜粋----
# Do not accept RA
net.ipv6.conf.default.accept_ra=0
net.ipv6.conf.all.accept_ra=0
net.ipv6.conf.ens3.accept_ra=0

# Do not use IPv6
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0

ネットワークコンフィグの変更

ネットワーク設定についても、以下の通りIPv6関連の設定がコメントアウトされています。
さくらのVPSでは、IPv6関連の設定値がコメントアウトされた状態で、既にデフォルトで入力されています。

# cat /etc/sysconfig/network

NETWORKING=yes
#NETWORKING_IPV6=yes
#IPV6_DEFAULTDEV="ens3"
#IPV6_DEFAULTGW="fe80::1"
# cat /etc/sysconfig/network-scripts/ifcfg-ens3

DEVICE="ens3"
IPADDR="XXX.XXX.XXX.XXX"
NETMASK="XXX.XXX.XXX.XXX"
ATEWAY="XXX.XXX.XXX.XXX"
ONBOOT="yes"
TYPE="Ethernet"
DNS1="XXX.XXX.XXX.XXX"
DNS2="XXX.XXX.XXX.XXX"
#IPV6INIT="yes"
#IPV6_ROUTER="no"
#IPV6ADDR="XXX:XXX:XXX:XXX:XXX:XXX:XXX:XXX/64"

以下のコマンドを実行して一括置換し、コメントアウトを解除します。

# sed -i -e "s/^#//g" /etc/sysconfig/network
# sed -i -e "s/^#//g" /etc/sysconfig/network-scripts/ifcfg-ens3

上記コマンドを実行後、下記の通り設定が変更されていることを確認します。

# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
IPV6_DEFAULTDEV="ens3"
IPV6_DEFAULTGW="fe80::1"
# cat /etc/sysconfig/network-scripts/ifcfg-ens3
DEVICE="ens3"
IPADDR="XXX.XXX.XXX.XXX"
NETMASK="XXX.XXX.XXX.XXX"
GATEWAY="XXX.XXX.XXX.XXX"
ONBOOT="yes"
TYPE="Ethernet"
DNS1="XXX.XXX.XXX.XXX"
DNS2="XXX.XXX.XXX.XXX"
IPV6INIT="yes"
IPV6_ROUTER="no"
IPV6ADDR="XXX:XXX:XXX:XXX:XXX:XXX:XXX:XXX/64"

ネットワーク設定の反映

以下のコマンドを実行してOSを再起動し、ネットワーク設定を反映します。

# shutdown -r now

設定反映確認

サーバ上で以下のコマンドを実行し、IPv6アドレスが設定されていることを確認します。

# ip addr show ens3

2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 9c:a3:ba:XX:XX:XX brd ff:ff:ff:ff:ff:ff
    inet XXX.XXX.XXX.XXX/XX brd XXX.XXX.XXX.XXX scope global noprefixroute ens3
       valid_lft forever preferred_lft forever
    inet6 2401:e42:102:1526:XXX:XXX:XXX:XXX/64 scope global noprefixroute
       valid_lft forever preferred_lft forever
    inet6 fe80::9ea3:baff:fe01:XXXX/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

また、クライアント環境がIPv6に対応している場合、以下のコマンドでもIPv6通信が可能か確認ができます。

ping -6 [2401:e42:102:1526:XXX:XXX:XXX:XXX]

DNSサーバ設定変更

ドメインに対して、サーバのIPv6アドレスとの紐づけを実施します。
ドメインの管理ページにて、AAAAレコードにサーバのIPv6アドレスを設定します。

IPv6接続確認

対象のサイトがIPv6に対応できているかは、以下のサイトを使用して確認できます。

IPv6 test - web site reachability
This tool lets you test the IPv6 configuration and connectivity of a web server.

上記サイトで入力したURLに対し、下記の観点でIPv6での接続に問題ないかを確認してくれます。

  • AAAA DNS record
  • IPv6 web server
  • IPv6 DNS server

テスト実行後に「Congratulations, this website is IPv6 ready」のメッセージが表示されていれば、正常にIPv6経由で接続ができており、問題ありません。

コメント

タイトルとURLをコピーしました