17
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Conoha VPS (Ubuntu 18.04) + Nginx でIPv6に対応する

Last updated at Posted at 2020-03-14

最初に

この記事は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ファイルで設定するようになりました。

  1. $cd /etc/netplan でディレクトリを移動します。
  2. ls でそのディレクトリにあるyamlファイルを表示します。僕の環境(Conoha)の場合は 10-gmovps.yaml がありました。
  3. yamlファイルを覗きます。僕の場合は $vim 10-gmovps.yaml です。環境によってファイル名が違うので注意。
    デフォルトではこのような設定になっていると思います。
    IPv4に関してはDHCPから取得する設定なのですね。
10-gmovps.yaml
 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. 設定を書き換える

10-gmovps.yaml
 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にて編集していきます。

default
server{
         server_name 「先ほどのドメイン」;
         root 「表示するディレクトリ」;
         index index.html;
         listen [::]:80; #IPv6の設定
         listen 80; #IPv4の設定
 }

変更を上書き保存した後、 $nginx -tで設定内容が問題ないことを確認し、$systemctl restart nginxで設定を適用します。

最後に

最低限の構成でIPv6への対応方法を簡単に書いていきました。
お手元の環境に合わせて作業してもらえればと思います。
また、IPv6にしっかり対応できたかは
こちらのサイトで確認するとわかりやすいです。
image.png
このようにIPv6 web serverでチェックが入った場合は設定が正しく完了しています。

間違えている部分等ございましたら、コメントで指摘のほどよろしくお願いします。

17
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?