概要
EdgeRouter X にはビルトインの DDNS 機能1が搭載されていますがドキュメントは具体的な設定例を掲載していません。設定を調整してみたところ EdgeRouter でも Cloudflare の DNS サーバーの AAAA レコードが自動更新されるような設定ができたのでご紹介します。
環境
モデル | EdgeRouter X 5-Port |
EdgeOS | v1.10.9 |
Linux | ubnt 3.10.107-UBNT |
ddclient | v3.8.3 |
libio-socket-inet6-perl | v2.69-2 |
事前準備(+ファームウェアのアップデート時の作業)
EdgeRouter に搭載されている DDNS クライアントは ddclient です。
EdgeOS v1.x では IPv6 サポートのためには Perl ライブラリーである IO::Socket:INET6 のインストールが必要で、事前準備のほかファームウェアのアップデートの際にも以下を実行する必要があります。
$ sudo apt-get update
$ sudo apt-get install libio-socket-inet6-perl
EdgeRouter におけるパッケージのインストールに関しては公式のドキュメント2も参考にしてください。
設定
続いて CLI から DDNS の設定を行っていきます。
インターフェイス名(ここでは eth0
)とホスト名等は適宜読み替えてください。
- host-name
- DDNS として IP アドレスが更新されるホスト名を指定します。
- options
ipv6=yes, if-skip=inet6
を含めるのがポイントです。zone=
に続けてゾーン名を指定します。ifconfig eth0
から IP アドレスを取得する際、if-skip
に指定された文字列までが読み飛ばされます。
- login
- Cloudflare のログイン時のメールアドレスを指定します。
- password
- Cloudflare の API キー3を指定します。
- protocol
cloudflare
固定です。
$ configure
$ set service dns dynamic interface eth0 service custom-cloudflare host-name ddns.example.com
$ set service dns dynamic interface eth0 service custom-cloudflare options 'ipv6=yes, if-skip=inet6, zone=example.com'
$ set service dns dynamic interface eth0 service custom-cloudflare login ******@*******.**
$ set service dns dynamic interface eth0 service custom-cloudflare password *************************************
$ set service dns dynamic interface eth0 service custom-cloudflare protocol cloudflare
$ commit; save
以上で設定は完了です。Cloudflare の管理画面で AAAA レコードが更新されていれば成功です。
トラブルシューティング
もし IP アドレスが更新されない場合は以下を参考にしてみてください。