🌐

Asus Merlinで独自ドメインのDDNS設定

2022/01/30に公開

はじめに

こんにちは、趣味で情報分野をやっているいがめたと申します。
Zennのようなプラットフォームで記事を書くのは初めてなので至らぬ点も多いと思いますがよろしくおねがいします。

前提

この記事では

  • Asus製ルータにMerlinFWを導入済みであり、SSH接続が行えること
  • In-a-dynを利用するため384.7以降のMerlinが導入されていること

    この2つを前提とします。
    Merlinの導入やSSHの設定などは各自で行ってください。
    また、本記事を参考に行った操作によって発生したいかなる損害にも責任を負いません。

既存のDDNSの設定を削除

すでに他のDDNS設定が存在する場合、必要であれば以下を行ってください。

  1. WAN→DDNSからDDNSクライアントを有効にするいいえに変更し適用(WebUI)
  2. /jffs/scripts/内のDDNS関連の設定ファイルを削除(SSH)
  3. ルータの再起動

ドメインを設定

まずドメインを設定していきます。
SSHでルータにログインして

nano /jffs/inadyn.conf

を実行して/jffs以下にinadyn.confを作成し、中身に設定したいDDNSサービス向けの記述を行います。
例えばCloudFlareに登録したAレコードをTTLを自動、プロキシを無効で更新したい場合は

/jffs/inadyn.conf
provider cloudflare.com {
    user-agent = Mozilla/5.0
    username = Zone.name (ドメイン)
    password = API_Token
    hostname = RecordName.Zone.name
    ttl = 1
    proxied = false
}

のように記述します。
他サービスの記述方法についてはIn-a-dynのリポジトリから参照してください。

残りのドメインを設定

次に残りのドメインの設定を行います。

nano /jffs/configs/inadyn.conf.add

を実行して/jffs/configs以下にinadyn.conf.addを作成し最初に設定したドメインと同じ記述の方法で残りのドメインを設定します。


nano /jffs/scripts/ddns-start

を実行して/jffs/scripts以下にddns-startを作成し以下のように記述します

ddns-start
#!/bin/sh
inadyn --once -f "/jffs/inadyn.conf" -e "/sbin/ddns_custom_updated 1" --continue-on-error "/sbin/ddns_custom_updated 0"
inadyn --once -f "/jffs/configs/inadyn.conf.add" -e "/sbin/ddns_custom_updated 1" --continue-on-error "/sbin/ddns_custom_updated 0"


DDNSを設定

最後にWebUIからログインして
1.WAN→DDNSからDDNSクライアントを有効にするはいに変更
2.サーバーをCustomに変更
3.ホスト名に最初に設定したドメインを入力し適用
以上を行いRegistration is successfulのダイアログが表示されれば設定完了です。
ダイアログが表示されなかった場合はシステムログにIn-a-dynの更新が成功した旨のログが残っていることを確認してください。
更新が失敗した場合はDDNSサービス向けの設定を確認し入力ミス等がないことを確認してください。
CloudFlareを利用する場合、他で利用したAPIトークンを流用したときに正常に更新できない場合があるのでそのときはトークンを再生成してください。

最後に

この記事をご覧いただきありがとうございます。
少しでもみなさんのお役に立てたのなら幸いです。
そうでなければごめんなさい。
諸事情でルータから複数ドメインをDDNSしたいと思い調べたところ英語の情報しかなかったのでこの記事を書かせていただきました。
途中、本文にも書いたように前に使っていたスクリプトに使用していたAPIトークンを流用して設定を行ったらzone not foundと返されて原因がわからず二時間くらい公式ドキュメントと関連issueを読み漁ったのに結局トークンを再生成したら正常に動作して泣いた。
なんだったんだあの時間は......

参考文献

Asus-Marlin DDNS Services
inadyn

GitHubで編集を提案

Discussion