IPv6有効化手順(Ubuntu 20.04)

[更新: 2022年10月25日]

さくらのVPS で提供中の標準OS「Ubuntu 20.04」のIPv6アドレスに関するページです。

仮想サーバーへのログイン

VNCコンソールまたはSSH経由でサーバーへログインし、rootユーザーに切り替えます。

VNCコンソールのリンク

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

現在のネットワーク設定を表示し、IPv6アドレスが付与されていないことを確認します。

$ ip address show dev 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 ens3
       valid_lft forever preferred_lft forever
ネットワークに関する設定が記述された 01-netcfg.yaml というファイルの内容を確認します。
デフォルトではIPv6に関する設定がコメントになっています。
$ cat /etc/netplan/01-netcfg.yaml
network:
  version: 2
  ethernets:
    ens3:
      gateway4: XXX.XXX.XXX.1
      nameservers:
        addresses: [210.188.224.10, 210.188.224.11]
      accept-ra: false
      link-local: [ ]
      addresses:
        - XXX.XXX.XXX.XXX/XX
#        - "XXX:XXX:XXX:XXX:XXX:XXX:XXX:XXX/64"
#      gateway6: "fe80::1"
※ 2022/10/5以前の標準OSイメージは、一部項目の有無が異なる場合が有ります。

IPv6の設定確認(VPSコントロールパネル)

コントロールパネルにログインして、サーバーの「ネットワーク」をクリックします。

ネットワークの場所

記載内容が設定ファイルと同じであることを確認します。

設定内容の表示

IPv6の有効化

IPv6を無効化する設定が記述されている /etc/sysctl.d/60-disable-ipv6.conf を起動時に読み込まないようにリネームします。
※ 2022/10/5以降の標準OSイメージは、60-disable-ipv6.conf ファイルが存在せず、エラーとなることが有ります。
$ sudo mv /etc/sysctl.d/60-disable-ipv6.conf /etc/sysctl.d/60-disable-ipv6.conf.bak

リネームされていることを確認します。

$ ls /etc/sysctl.d/60-disable-ipv6.conf*
/etc/sysctl.d/60-disable-ipv6.conf.bak

01-netcfg.yaml のIPv6に関する設定のコメントを解除します。

$ sudo sed -i -e "s/^#//" /etc/netplan/01-netcfg.yaml

コメント解除されていることを確認します。

$ cat /etc/netplan/01-netcfg.yaml
network:
  version: 2
  ethernets:
    ens3:
      gateway4: XXX.XXX.XXX.1
      nameservers:
        addresses: [210.188.224.10, 210.188.224.11]
      accept-ra: false
      link-local: [ ]
      addresses:
        - XXX.XXX.XXX.XXX/XX
        - "XXX:XXX:XXX:XXX:XXX:XXX:XXX:XXX/64"
      gateway6: "fe80::1"

ネットワーク設定の反映

OSを再起動し、ネットワーク設定を反映します。

$ sudo reboot

設定の反映を確認

ネットワークの情報で、IPv6アドレスが設定されていることを確認します。

$ ip address show dev 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/23 brd XXX.XXX.XXX.255 scope global ens3
       valid_lft forever preferred_lft forever
    inet6 2401:2500:102:3000:XXX:XXX:XX:XXX/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::9ea3:baff:fe01:XXXX/64 scope link
       valid_lft forever preferred_lft forever

IPv6のデフォルトゲートウェイが「fe80::1」と設定されていることを確認します。

$ ip -6 route
::1 dev lo proto kernel metric 256 pref medium
2401:2500:102:3000::/64 dev ens3 proto kernel metric 256 pref medium
fe80::/64 dev ens3 proto kernel metric 256 pref medium
default via fe80::1 dev ens3 proto static metric 1024 pref medium
IPv6で通信可能か「ping6」などで確認してください。
通信が可能であればIPv6アドレスを有効にする方法は完了です。