1. 目的
dipper は、DDNS サービス(MyDNS / Cloudflare)に対して、
ホストのグローバル IP(IPv4 / IPv6)を更新通知する DDNS クライアントである。
更新は 不要な負荷を避けつつ、
定期更新および IP 変更検知による更新を行うことを目的とする。
2. 対象範囲
- IPv4 / IPv6 の取得および DDNS 更新
- MyDNS / Cloudflare 対応
- マルチドメイン対応
- メール通知(任意)
3. 設定ファイル仕様(ユーザー要求)
3.1 IP 取得および DDNS 更新の有効化
IPV4
IPV4_DDNS
- IPv4 を DDNS 更新対象にするか
IPV4=off の場合は無効
IPV6
IPV6_DDNS
- IPv6 を DDNS 更新対象にするか
IPV6=off の場合は無効
要求
IPv4 / IPv6 の取得と、DDNS 更新対象の指定を独立して切り替えられること。
3.2 時間指定フォーマット
時間指定は suffix 形式とする。
3.3 各種処理周期
定期更新
UPDATE_TIME
- 定期的に DDNS 更新を行う間隔
- 最小値:3 分
- 3 分未満は強制的に 3 分に補正
IP 変更チェック
DDNS_TIME
- IP アドレス変化をチェックする間隔
- 最小値:1 分
- 1 分未満は強制的に 1 分に補正
IP キャッシュ更新
IP_CACHE_TIME
- IP キャッシュをリフレッシュする間隔
- 0 の場合は無効
- 推奨:1 時間
- 最小値:15 分
- 15 分未満は強制的に 15 分に補正
エラー通知チェック
ERR_CHK_TIME
- エラーメール送信を抑制するためのチェック間隔
- 0 の場合は無効
- 最小値:1 分
- 1 分未満は強制的に 1 分に補正
3.4 メール通知
EMAIL_ADR
- 通知先メールアドレス
- 未設定の場合、通知機能は無効
EMAIL_UP_DDNS
EMAIL_CHK_DDNS
4. DDNS サービス別要求
4.1 MyDNS
- マルチドメイン対応(配列指定)
MYDNS_ID[]
MYDNS_PASS[]
MYDNS_DOMAIN[]
MYDNS_IPV4[]
MYDNS_IPV6[]
- ログイン URL
要求
上位設定(IPV4 / IPV6 / *_DDNS)が off の場合、
ドメイン個別設定が on でも更新は行わないこと。
4.2 Cloudflare
- マルチドメイン対応(配列指定)
CLOUDFLARE_API[]
CLOUDFLARE_ZONE[]
CLOUDFLARE_DOMAIN[]
CLOUDFLARE_IPV4[]
CLOUDFLARE_IPV6[]
CLOUDFLARE_DOMAIN は複数指定可(例:example.com,www.example.com)
- API エンドポイント
要求
IPV6 または IPV6_DDNS が off の場合、
Cloudflare の IPv6 更新は行わないこと。
5. 動作要求(ブラックボックス観点)
- 有効設定に従って IPv4 / IPv6 を取得すること
- 指定間隔で IP 変更チェックを行うこと
- IP 変化があった場合、対象ドメインに DDNS 更新を行うこと
- 定期更新間隔で DDNS 更新を行うこと
- IP キャッシュ更新が有効な場合、キャッシュを更新すること
- エラー通知設定が有効な場合、通知を抑制しつつメール送信すること
6. 制約・安全要求
- 短すぎる周期指定は安全下限に補正すること
- DDNS サーバーへ不要な負荷をかけないこと
- 上位設定は下位設定より常に優先されること
7. 非機能要求
- Bash で解釈可能な設定ファイル形式であること
- コメント例を基にマルチドメイン設定を追加できること
1. 目的
dipper は、DDNS サービス(MyDNS / Cloudflare)に対して、
ホストのグローバル IP(IPv4 / IPv6)を更新通知する DDNS クライアントである。
更新は 不要な負荷を避けつつ、
定期更新および IP 変更検知による更新を行うことを目的とする。
2. 対象範囲
3. 設定ファイル仕様(ユーザー要求)
3.1 IP 取得および DDNS 更新の有効化
IPV4IPV4_DDNSIPV4=offの場合は無効IPV6IPV6_DDNSIPV6=offの場合は無効要求
IPv4 / IPv6 の取得と、DDNS 更新対象の指定を独立して切り替えられること。
3.2 時間指定フォーマット
時間指定は suffix 形式とする。
s: 秒m: 分h: 時間d: 日3.3 各種処理周期
定期更新
UPDATE_TIMEIP 変更チェック
DDNS_TIMEIP キャッシュ更新
IP_CACHE_TIMEエラー通知チェック
ERR_CHK_TIME3.4 メール通知
EMAIL_ADREMAIL_UP_DDNSEMAIL_CHK_DDNS4. DDNS サービス別要求
4.1 MyDNS
MYDNS_ID[]MYDNS_PASS[]MYDNS_DOMAIN[]MYDNS_IPV4[]MYDNS_IPV6[]要求
上位設定(IPV4 / IPV6 / *_DDNS)が off の場合、
ドメイン個別設定が on でも更新は行わないこと。
4.2 Cloudflare
CLOUDFLARE_API[]CLOUDFLARE_ZONE[]CLOUDFLARE_DOMAIN[]CLOUDFLARE_IPV4[]CLOUDFLARE_IPV6[]CLOUDFLARE_DOMAINは複数指定可(例:example.com,www.example.com)要求
IPV6またはIPV6_DDNSが off の場合、Cloudflare の IPv6 更新は行わないこと。
5. 動作要求(ブラックボックス観点)
6. 制約・安全要求
7. 非機能要求