本日よりこのブログのインフラをKAGOYA CLOUD VPSからConoHaに移行しました。それに伴って色々と初期設定をしていたのですが、何故かnginxへのアクセスがIPv6で通らないという事象に遭遇し、その後無事解決できたので備忘録がてら対処法を書いておきます。
ConoHaはデフォルトで17個のグローバルなIPv6アドレスが割り当てられるが…
以前上げた記事にも書いたように、IPv6アドレスの総数は340澗個もあるせいか、ConoHaでインスタンス(サーバー)を作成すると調子に乗って17個もグローバルなIPv6アドレスを割り当ててきます。
これだけIPv6推しなのだから既にIPv6が使える状態でインスタンスが立ち上がるのだろうと勝手に思い込んでしまいますが、そんなことはありませんでした。
対処法
まず、/etc/netplan
配下を見に行きます。すると、yamlファイルが1つ存在するはずです。
自分の場合は10-gmovps.yaml
が存在していました。
このyamlファイルの中身を以下のように編集します。
network:
ethernets:
eth0:
addresses:
- IPv6アドレス/64 # 割り当てられた17個のIPv6アドレスから好きなものを選び入力・末尾に「/64」を付ける。
dhcp4: true
dhcp6: false
accept-ra: false
optional: true
routes:
- to: ::/0 # 固定値
via: ゲートウェイ # ConoHaのインスタンスのネットワーク情報に記載の「ゲートウェイ」の値をそのまま書く
version: 2
addresses
に入力するIPアドレスは、DNSのAAAAレコードに登録しているIPv6アドレスを入力すればOKです。独自ドメインを使っていない方はお好きにどうぞ。
編集できたらファイルを保存して、
$ sudo netplan apply
と実行します。特にOSやnginxの再起動をせずとも、IPv6の通信が通るようになります。
何の設定をしたのか
routes
ディレクティブで何を設定しているのかChatGPTに訊いてみました。
ChatGPT
routes
セクション内でIPv6のデフォルトルートを設定しています。to
フィールドに::/0
と指定することで、IPv6の全てのトラフィックに対してデフォルトルートを適用します。そして、via
フィールドにはゲートウェイのIPv6アドレスを指定しています。
とのことでした。なるほど〜
コメント