前書き

OpenWRTに動的グローバルIPアドレスを割り当てていて、そのグローバルIPアドレスをCloudFlareでDNSを提供しているFQDNのIPアドレスとして設定し、IPアドレスの変更に追従させる設定をします。

ここでは、CloudFlareに該当FQDNが設定済みであることを前提に手順を解説します。

OpenWRTパッケージのインストール

  • luci-app-ddns
  • ddns-scripts-cloudflare

CloudFlareのトークンを取得

  1. https://dash.cloudflare.com/ にログイン
  2. 右上の人影アイコンをクリックし「マイ プロフィール」をクリック
  3. 左側ペインの「API トークン」をクリック
  4. 画面右側の「トークンを作成する」をクリック
  5. [API トークン テンプレート]から、[ゾーン DNS を編集する]の「テンプレートを使用する」をクリック
    • トークン名:わかる名前を付けておく。
    • アクセス許可:そのままで良し。「ゾーン」「DNS」「編集」
    • ゾーンリソース:このトークンで編集を許可するドメインを指定する「包含」「特定のゾーン」、このAPIトークンで許可したいドメインを選択
    • クライアント IP アドレスフィルタリング:した方が安全だけど、そもそも動的IPから通知するならしない方が良いかもしれない。
    • TTL:無期限で有効。
  6. 「概要に進む」をクリック
  7. 「トークンを作成する」をクリック
  8. トークンをコピーしておく。「Copy」をクリックするとクリップボードにコピーしてくれる

OpenWRT設定

  1. OpenWRTのWebUIにログイン
  2. [Services] の「Dynamic DNS」をクリック
    • パッケージを入れた後、表示されていない場合はWebUIを更新すると表示される
  3. 「Add new services ...」をクリック
  4. Add new services ...
    • Name:わかる名前を付けておく
    • IP address version:通知したいIPアドレス種類(IPv4/IPv6)
    • DDNS Service provider:「cloudflare.com-v4」を選択
  5. 「Create service」をクリック
    • エラーが出ても、「Cancel」をクリックして画面を戻るとすでに追加されているかもしれません。
  6. 追加した項目の「Edit」画面を開きます。
  7. Basic Settings
    • Enabled:チェックを入れる
    • Lookup Hostname:対象のFQDN(例:www.example.comやexample.com)
    • IP address version:通知したいIPアドレス種類(IPv4/IPv6)
    • DDNS Service provider:「cloudflare.com-v4」
    • Domain:[ホスト名@ドメイン名] の形式で指定(例:[email protected]やexample.com)
    • Username:「Bearer」
    • Password:CloudFlareで取得したAPI トークン
    • Use HTTP Secure:チェックを入れる
    • Path to CA-Certificate:「/etc/ssl/certs」
  8. Advanced Settings
    • Network:通知したいIPアドレスが割当たっているInterface
  9. 「Save」をクリック
  10. 「Save & Apply」をクリック
  11. 「Restart DDns」をクリック

確認

通知が行われると、該当FDQNのTTLが2分に変更され、動的IPが反映されます。
名前解決やCloudFlareのダッシュボードを使って確認してください。

DDNSで使用しているドメインのトラフィックをプロキシするためにCloudFlareを使用している場合

私の使い方ではこれに該当しないため設定していませんが、該当する場合は参考資料のURLに記載の手順を実施してください。

参考資料

https://alexskra.com/blog/dynamc-dnsddns-with-openwrt-and-cloudflare/