最初に
この記事はConoha VPSにかかわらず、
- Ubuntu 18.04LTS のネットワーク設定変更方法
- NginxのIPv6設定方法
- DNSの設定方法
が記載されています。
最近IPoE等でIPv6を利用する人が増えてきたように感じます。
その人たちはIPv6で接続した方が速度も速くなるためサーバー側も対応してあげる必要があります。
というか日本はIPv6への対応が出遅れているので、サービスを開発している方々には是非対応して欲しいです。
CentOSの方はこちらをご覧ください。
また、この記事とお手元の環境で多少の差異があることと思います。自分の環境に合わせて作業してください。
注意しなければいけないこと
Conoha VPSでは、グローバルIPv4が1つ,IPv6が17個自由に使えます。
しかし、IPv6に関しては自由に使えるだけであらかじめVPSにはアドレスが設定されていません。
IPv4のアドレスのみが最初から設定されています。
これはシェルで
$ ip a
と打つことにより確認できます。
このコマンドを打った時にIPv4のグローバルアドレスと、IPv6のローカルアドレス(fe80から始まっているアドレス)しか表示されない場合はUbuntuにIPv6が設定されていません。
また、Ubuntu 18.04からネットワーク周りの設定方法が変わっているため、インターネット上にある情報の大半が利用できなくなっています。
Ubuntu18.04 LTSの設定
Ubuntu 18.04からyamlファイルで設定するようになりました。
-
$cd /etc/netplan
でディレクトリを移動します。 -
ls
でそのディレクトリにあるyamlファイルを表示します。僕の環境(Conoha)の場合は10-gmovps.yaml
がありました。 - yamlファイルを覗きます。僕の場合は
$vim 10-gmovps.yaml
です。環境によってファイル名が違うので注意。
デフォルトではこのような設定になっていると思います。
IPv4に関してはDHCPから取得する設定なのですね。
network:
ethernets:
eth0:
addresses: []
dhcp4: true
dhcp6: false
accept-ra: false
optional: true
version: 2
ここにIPv6に関しての設定を追記していきます。
4. Conohaのコントロールパネルから、対象のサーバーのIPv6アドレスとIPv6のゲートウェイアドレスを確認してください。
(わからない方はこちらのページの「利用可能なIPv6を確認する」を参考にしてください。)
17個のIPv6アドレスから好きなものを選んでください。(一番上に表示されるアドレスの末尾がIPv4アドレスと同じになっているので一番上に表示されるIPv6アドレスがわかりやすいかも)
5. 設定を書き換える
network:
ethernets:
eth0:
addresses:
- 「IPv6のアドレスをここに記述」/64
dhcp4: true
dhcp6: false
accept-ra: false
optional: true
gateway6: 「ゲートウェイのアドレスをここに記述」
version: 2
IPv6のアドレスを記入した後ろに /64
を必ずつけてください(Conohaの場合。環境によって異なります。)
6. $ sudo netplan apply
で設定を適用する。
7. $ ip a
で指定したIPv6のアドレスが表示されることを確認してください。(エラーが出た場合は指定された場所を確認してください。yamlなのでよくあるミスがインデントのミス)
DNSの設定
自分が利用しているDNSにAAAAレコードを登録します。
この記事を見ている人はわかると思うのですが、
Aレコード→IPv4
AAAAレコード→IPv6
のアドレスを対応させます。
よって、先ほどUbuntuに設定したIPv6アドレスをAAAAレコードで任意のドメインに設定してください。
またIPv4からのアクセスも受け付ける場合は、同じドメインでAレコードにてIPv4アドレスを従来通り設定してください。
Nginxの設定
普通の環境ならば
/etc/nginx/sites-available/default
の設定ファイルを書き換えます。
$vim /etc/nginx/sites-available/default
にて編集していきます。
server{
server_name 「先ほどのドメイン」;
root 「表示するディレクトリ」;
index index.html;
listen [::]:80; #IPv6の設定
listen 80; #IPv4の設定
}
変更を上書き保存した後、 $nginx -t
で設定内容が問題ないことを確認し、$systemctl restart nginx
で設定を適用します。
最後に
最低限の構成でIPv6への対応方法を簡単に書いていきました。
お手元の環境に合わせて作業してもらえればと思います。
また、IPv6にしっかり対応できたかは
こちらのサイトで確認するとわかりやすいです。
このようにIPv6 web serverでチェックが入った場合は設定が正しく完了しています。
間違えている部分等ございましたら、コメントで指摘のほどよろしくお願いします。