IPv6有効化手順(Ubuntu 20.04)

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

仮想サーバへのログイン

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

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

現在の設定確認

IPv6が無効化されていることを設定ファイルから確認します。

$ sysctl -a --pattern disable_ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.ens3.disable_ipv6 = 1
net.ipv6.conf.ens4.disable_ipv6 = 1
net.ipv6.conf.ens5.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

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

現在のネットワーク設定を表示し、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]
      addresses:
        - XXX.XXX.XXX.XXX/XX
#        - "XXX:XXX:XXX:XXX:XXX:XXX:XXX:XXX/64"
#      gateway6: "fe80::1"

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

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

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

IPv6の有効化

IPv6を無効化する設定が記述されている /etc/sysctl.d/60-disable-ipv6.conf を起動時に読み込まないようにリネームします。

$ sudo mv /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

リネーム及び、コメント解除されていることを確認します。

$ ls /etc/sysctl.d/60-disable-ipv6.conf*
/etc/sysctl.d/60-disable-ipv6.conf.bak
$ 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]
      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アドレスを有効にする方法は完了です。