systemdのtimerからMyDNSへIPアドレス通知を行う

Published by

on

ダイナミックDNSサービスの一つである「MyDNS」のサービスを利用して動的に変わるIPアドレス(非固定IPアドレス)の環境でウェブサービスを動かしています。動的DNSサービスの多くはサービス側への定期的なIPアドレスの通知が要求されます。

今回はMyDNSに対してsystemdのtimerを用いてIPアドレスを通知する手順を整理します。

項目バージョン
ダイナミックDNSサービスMyDNS
IPアドレス通知元OSUbuntu24

■MyDNSアカウント取得とドメイン設定

ここではあらかじめMyDNSへのアカウント登録とドメイン登録は済んでいる前提で進めます。

https://www.mydns.jp

■タイマー処理登録

MyDNSへIPアドレスを通知する処理をsystemdのサービスUnitとして登録します。まず以下の内容で「/etc/systemd/system/mydns.service」を作成します。(「MasterID」と「PASSWORD」部分は適宜ご自分の環境に合わせてください)

[Unit]
Description=MyDNS IP Update

[Service]
Type=oneshot

ExecStart=/usr/bin/sh -c 'curl -u MasterID:PASSWORD https://www.mydns.jp/login.html'

MyDNSに作成したアカウント情報でログインすることで登録済のドメインとIPアドレス情報が紐づけて更新されるので、処理の中にドメイン情報の記載などは必要ありません。

次に先ほど作成したサービスをタイマー処理するためのタイマーファイルを「/etc/systemd/system/mydns.timer」として作成し、毎日1時に実行する設定とします。

[Unit]
Description=Run mydns.service at 01:00

[Timer]
OnCalendar=01:00
Unit=mydns.service

[Install]
WantedBy=timers.target

■サービスの有効化

用意したサービス、タイマーを有効化します。

sudo systemctl enable mydns.timer
sudo systemctl daemon-reload

タイマー登録されていることを以下のコマンドで確認します。

sudo systemctl list-timers

あとは所定の時間に毎日更新されているかMyDNSのサイト上で確認しておきます。

コメントを残す