mattintosh note

どこかのエンジニアモドキの備忘録

2024-06-05: 現在ホビー関連の記事を 新しいブログ に移行しています。

CloudflareのIPv6無効化

WordPress で IP アドレスを使ってアクセス制限をかけているのだけど自宅の IPv6 アドレスがしょっちゅう変わってしまって都度書き換えているので Cloudflare の IPv6 機能を一旦無効にすることにした。

Cloudflare の IPv6 の説明は下記のようになっていて、ダッシュボードではオンとオフの切替ができないらしい。

IPv6 とは何ですか?

インターネットの IPv4 アドレス空間が不足しているため、IPv6 テクノロジーの採用が急速に増加しています。この移行は、インターネットの長期的な成長と健全性の維持のために重要です。Cloudflare では、すべての Web サイトを IPv6 ネットワーク上で無料かつ簡単に利用できるようにするために、自身の役割を遂行 しています。

IPv6 互換性を有効にするとどうなりますか?

IPv6 ゲートウェイ設定により、Cloudflare にあるすべてのサブドメインIPv6 が有効になります (DNS 設定でオレンジ色の雲でマークされます)。ホストが IPv6 をサポートしている場合、ゲートウェイは Cloudflare を介して IPv6 接続をプロキシします。IPv4 接続と IPv6 接続の両方が使用可能な場合、 Cloudflare は IPv4 を優先します。Web サイトの可用性を高めるために、IPv6 互換性を「オン」に設定することをおすすめします。

注意:オリジンサーバーに IPv6 レコードがすでにある場合は、DNS 設定ページで AAAA レコードの Cloudflare を有効にする必要があります。

IPv6 をオフにできないのはなぜですか?

Cloudflare は、インターネットと顧客の両方に配慮するという信念を持っています。IPv4 のみ使用されたレガシーの時代から IPv4IPv6 が同等に取り扱われる現代の世界に移行することにより、私たちは自分たちのなすべきことを確実に実践しています。Cloudflare ダッシュボードでは、IPv6 は常にオンになっており、オンとオフの切り替えはできません。

IPv6 設定変更の API ドキュメントは下記にある。

developers.cloudflare.com

ゾーン ID やグローバル API キーは「概要」メニュー右下の方にあるがとりあえず「ネットワークメニュー」に表示される "Change IPV6 setting" のテキストをコピーしておく。

Cloudflare
Cloudflare

API ドキュメントを参考に、

  • ゾーン ID
  • メールアドレス
  • グローバル API キー

を自身のアカウントのものに書き換えてコマンドを実行する。ドキュメントのサンプルには Authorization ヘッダーも記載されているけどこちらは要らないみたい。

curl --request PATCH \
  --url https://api.cloudflare.com/client/v4/zones/ゾーンID/settings/ipv6 \
  --header 'X-Auth-Email: メールアドレス' \
  --header 'X-Auth-Key: グローバルAPIキー' \
  --header 'Content-Type: application/json' \
  --data '{
  "value": "off"
}'

正しい結果が帰ってくれば設定が変更される。

{
  "result": {
    "id": "ipv6",
    "value": "off",
    "modified_on": "2024-06-07T10:00:00.000000Z",
    "editable": true
  },
  "success": true,
  "errors": [],
  "messages": []
}

"success": false になる場合はグローバル API キーが間違っていたり、メールアドレスが間違っている可能性があるので message をよく読みましょう。

グローバル API キーが間違っている場合。

{
  "success": false,
  "errors": [
    {
      "code": 6003,
      "message": "Invalid request headers",
      "error_chain": [
        {
          "code": 6103,
          "message": "Invalid format for X-Auth-Key header"
        }
      ]
    }
  ],
  "messages": [],
  "result": null
}

メールアドレスが間違っている場合。

{
  "success": false,
  "errors": [
    {
      "code": 9103,
      "message": "Unknown X-Auth-Key or X-Auth-Email"
    }
  ],
  "messages": [],
  "result": null
}