rabbit51

it's since Nov.30 2005
May.29 2014, transferred from broach

Synology DS-216JのDDNSでIPv6 AAAAレコードを登録する

2018-07-09 01:00:00 | DS-216J
Synology DS-216JのDSM(Disk Storage Manager)の「外部アクセス」「DDNS」でDynamic DNSの設定が出来る。



「追加」をクリックするとDDNSプロバイダ選択、DDNS用FQDN設定、アカウント情報設定が出来る。IPv4とIPv6アドレスも表示されている。IPv4アドレスは、transitのNAPT用グローバルアドレスで使えない。IPv6アドレスは、DS-216Jに設定したグローバルIPv6アドレス。しかし、プロバイダー選択で「MyDNS」のエントリーが無い。


「キャンセル」をクリックして、「カスタマイズ」を選択。IPv4設定しかない。IPv6はどうしたら良いのか?自動選択?


MyDNSで指定されている「HTTP-DIRECT」に従い、GETメソッド用URLをqueryURLに設定する。

設定後、「追加」のプロバイダ選択でカスタマイズ入力した「MyDNS」名を選択設定し、ユーザ登録したID、パスワードで「テスト接続」を実行して観る。「エラー」が帰る。__MYIP__がIPv4アドレスと記載されており、IPv6アドレスの設定キーワードが無い。自動選択ではないようだ。「外部IPの設定」をクリックし、表示させてもIPv6は、グレーアウトで「0:0:0:0:0:0:0:0」、選択も無い。

DS-216Jの内部を探って観る。「/etc/ddns.conf」と「/etc/ddns_provider.conf」が存在している。
「/etc/ddns_provider.conf」を確認すると、DynDNSスタイルのhttp GETメソッドによる情報設定方法とプログラムによる情報設定が可能なようだ。追加で入力された、ホスト名、IPアドレス、ユーザ名、パスワードなどがargumentに設定され、プログラムが呼ばれるようだ。これを使うことにする。


「/etc/ddns_provider.conf」ファイルの最後に、カスタマイズで記入した内容が保存されている。「[USER_XXXXXX]」でエントリーを作れば、追加のプロバイダ選択が出来そうだ。このファイルにユーザカスタマイズ情報が記載されているので、バージョンアップや再起動でも設定内容が維持されるはず(7月2日のアップデートで問題なかった)。

ネットを検索していると、「/etc.default/ddns_provider.conf」に追加する事が書かれているが、どうなのだろうか?
実行されるスクリプトは、「/usr/syno/bin/ddns」に「somename.php」で存在している。phpでシステム内のインターフェース情報が取得できるか不明なので「/bin/sh(bash)」用スクリプトを使う事とした。

IPv6のアドレスを取り出すため、/bin/ipを使い取り出す
ip=$(/bin/ip -6 addr show | /bin/grep 'scope global' | /bin/sed -r "s/^\s+inet6\s+([0-9a-fA-F:]+)\/64\s+scope\s+global\s+$/\1/")

取出したIPv6アドレスを使い、MyDNS登録をhttp GETで実行する
/bin/curl -G -Ss "https://www.mydns.jp/directip.html?MID=$id&PWD=$pd&IPV6ADDR=$ip"

更新成功時
IPv6アドレスに変化が無いと「1行目」の「この通知でのIPアドレスの更新はありません。」が表示される。


ユーザアカウントやパスワードを間違えた時


設定情報のキーワードを間違えた時
「IPV6ADDR」のキーワードを「IPv6ADDR」と間違えた時のエラー


MyDNSの情報更新が成功した時は、「Login and IP address notify」が「OK.」で、失敗した時は、「NG!?」となる。Login認証に失敗すると「login_status =」が「-1」となる事がわかる。「OK」か「NG」かで判定することにした。

作成したシェルスクリプトがこれ「mydns.sh」

IPv6アドレスが前回と変化なければ、「cntmax」回目(mydns.shの実行回数)でMyDNSへの登録実行を行うようにした。例えば、スケデューラで1分毎に実行させ、「cntmax=1440」で24時間毎にIPv6登録確認実行させる事が出来る。IPv6アドレスが前回と異なれば、その時点で登録実行する。24時間毎の実行とすれば、「cntmax=1」で毎回登録確認実行が行われる。MyDNSは、24時間以内に登録確認が行われると確認履歴が残されない(無視されている感じだ)。

スクリプトの「$HOME」だが、DSMの 「外部アクセス」「DDNS」から実行すると「$HOME=/」なので「HOMEPATH=/root」とする。
「ddnsd」のログは、「/var/log/messages」に記録される。
「mydns.sh」も「/bin/logger」で「/var/log/messages」に実行記録を行うには、「user.warn」のプライオリティを指定する必要がある。

「/etc/ddns_provider.conf」に「USER_MyDNS-2」でエントリーを追加する。
スクリプトプログラム「mydns.sh」は、「/root/mydns.sh」として配置しておく。


「カスタマイズ」でプロバイダー名「MyDNS-2」を確認する事が出来る。
「保存」をクリックすると「modulepath=/root/mydns.sh」が「modulepath=DynDNS」で上書きされ、動作しなくなるので注意が必要。



「追加」でプロバイダー名選択で「MyDNS-2」を選択し、ホスト名、ユーザ名、パスワードを設定し「テスト接続」をクリックしてスクリプト実行を確認する。成功すれば「正常」表記。


「外部IPの設定」で何が行われるのか不明。「IPv6」は「0:0:0:0:0:0:0:0」で検出されていない。IPv4かIPv6か選択できると良かったのだが。。。


「追加」「OK」で「外部アクセス」「DDNS」で追加したエントリーを選択し「今すぐアップデートする」をクリック
ステータスが「正常」となれば、情報更新成功となる。最終更新時刻も確認。外部アドレスは、transix DS-LiteのIPv4アドレスが表示されている。


「/etc/ddns.conf」に「追加」で登録された情報が記載されている。ここには、IPv6アドレス情報も記載されているがユーザインターフェースからは、表示されない。



DDNS自動更新とMyDNS登録更新状態の変化
DDNSの初回設定直後


---- MyDNSサイトログ ---
2018/07/01 18:20:23 JST DNSINFO UPDATE : somehost.mydns.jp
2018/07/01 18:20:23 JST IPv6 UPDATE : mydns999999 2409:10:XXXX:YY10:0:0:AAA:BB1 (2409:10:XXXX:YY10:0:0:AAA:BB1), http-d, jpn

IPv6アドレスのDHCPv6-PDと自動設定テスト後、手動設定で再起動

再起動後24のDDNS状態
(2018/7/3 13:53)再起動後24時間・登録後43時間33分
2018-07-03T13:53:27+09:00 ds216j ddnsd: ddnsd.c:2984 DDNS Expired. UpdateAll.
2018-07-03T13:53:32+09:00 ds216j ddnsd: ddnsd.c:1941 Success to update [somehost.mydns.jp] with IP [103.2.248.166] at [USER_MyDNS-2]


---- MyDNSサイトログ --- DDNS自動更新で登録更新
2018/07/03 13:53:31 JST DNSINFO UPDATE : somehost.mydns.jp
2018/07/03 13:53:31 JST IPv6 UPDATE : mydns999999 2409:10:XXXX:YY10:0:0:AAA:BB1 (2409:10:XXXX:YY10:0:0:AAA:BB1), http-d, ny


(2018/7/4 13:53)登録更新後24時間
2018-07-04T13:53:27+09:00 ds216j ddnsd: ddnsd.c:2984 DDNS Expired. UpdateAll.
2018-07-04T13:53:29+09:00 ds216j ddnsd: ddnsd.c:1941 Success to update [somehost.mydns.jp] with IP [103.2.248.166] at [USER_MyDNS-2]


Transix DS-LiteのIPアドレスが変化する
2018-07-04T23:29:27+09:00 ds216j ddnsd: ddnsd.c:2933 DDNS got IP changed. UpdateAll.
2018-07-04T23:29:29+09:00 ds216j ddnsd: ddnsd.c:1941 Success to update [somehost.mydns.jp] with IP [219.164.205.80] at [USER_MyDNS-2]
2018-07-04T23:32:29+09:00 ds216j ddnsd: ddnsd.c:2933 DDNS got IP changed. UpdateAll.
2018-07-04T23:32:30+09:00 ds216j ddnsd: ddnsd.c:1941 Success to update [somehost.mydns.jp] with IP [103.2.248.166] at [USER_MyDNS-2]

---- MyDNSサイトログ --- DS-LiteのIPアドレス変更で登録更新
2018/07/04 23:29:28 JST IPv6 UPDATE : mydns999999 2409:10:XXXX:YY10:0:0:AAA:BB1 (2409:10:XXXX:YY10:0:0:AAA:BB1), http-d, asia
2018/07/04 23:29:28 JST DNSINFO UPDATE :somehost.mydns.jp


(2018/7/5 13:53)DDNS自動更新後24時間・登録更新後14時間24分
2018-07-05T13:53:27+09:00 ds216j ddnsd: ddnsd.c:2984 DDNS Expired. UpdateAll.
2018-07-05T13:53:29+09:00 ds216j ddnsd: ddnsd.c:1941 Success to update [somehost.mydns.jp] with IP [103.2.248.166] at [USER_MyDNS-2]



(2018/7/6 13:53)DDNS自動更新後24時間・登録更新後38時間24分
2018-07-06T13:53:27+09:00 ds216j ddnsd: ddnsd.c:2984 DDNS Expired. UpdateAll.
2018-07-06T13:53:49+09:00 ds216j ddnsd: ddnsd.c:1941 Success to update [somehost.mydns.jp] with IP [103.2.248.166] at [USER_MyDNS-2]


---- MyDNSサイトログ ---
2018/07/06 13:53:45 JST IPv6 UPDATE : mydns999999 2409:10:XXXX:YY10:0:0:AAA:BB1 (2409:10:XXXX:YY10:0:0:AAA:BB1), http-d, ny
2018/07/06 13:53:45 JST DNSINFO UPDATE : somehost.mydns.jp


(2018/7/7 10:01)「テスト接続」
2018-07-07T10:01:25+09:00 ds216j synoscgi_SYNO.Core.DDNS.Record_1_test[15859]: DDNS IPv4/IPv6 is set to DEFAULT. IPv4: 103.2.248.166, IPv6: -
2018-07-07T10:01:26+09:00 ds216j ddnsd: ddnsd.c:1941 Success to update [somehost.mydns.jp] with IP [103.2.248.166] at [USER_MyDNS-2]

(2018/7/7 10:07)「今すぐアップデートする」
2018-07-07T10:07:52+09:00 ds216j ddnsd: ddnsd.c:1941 Success to update [somehost.mydns.jp] with IP [103.2.248.166] at [USER_MyDNS-2]


(2018/7/7 13:53)DDNS自動更新後24時間
2018-07-07T13:53:27+09:00 ds216j ddnsd: ddnsd.c:2984 DDNS Expired. UpdateAll.
2018-07-07T13:53:29+09:00 ds216j ddnsd: ddnsd.c:1941 Success to update [somehost.mydns.jp] with IP [103.2.248.166] at [USER_MyDNS-2]


(2018/7/7 22:22)「今すぐアップデートする」・登録更新後32時間29分
2018-07-07T22:22:23+09:00 ds216j ddnsd: ddnsd.c:1941 Success to update [somehost.mydns.jp] with IP [103.2.248.166] at [USER_MyDNS-2]
2018-07-07T22:32:37+09:00 ds216j ddnsd: ddnsd.c:1941 Success to update [somehost.mydns.jp] with IP [103.2.248.166] at [USER_MyDNS-2]
2018-07-07T22:35:09+09:00 ds216j ddnsd: ddnsd.c:1941 Success to update [somehost.mydns.jp] with IP [103.2.248.166] at [USER_MyDNS-2]

---- MyDNSサイトログ ---
2018/07/07 22:22:20 JST IPv6 UPDATE : mydns999999 2409:10:XXXX:YY10:0:0:AAA:BB1 (2409:10:XXXX:YY10:0:0:AAA:BB1), http-d, jpn
2018/07/07 22:22:20 JST DNSINFO UPDATE : somehost.mydns.jp


(2018/7/8 9:52)「テスト接続」
2018-07-08T09:52:41+09:00 ds216j synoscgi_SYNO.Core.DDNS.Record_1_test[9821]: DDNS IPv4/IPv6 is set to DEFAULT. IPv4: 103.2.248.166, IPv6: -
2018-07-08T09:52:42+09:00 ds216j ddns-mydns.sh: nochg(ipv6=2409:10:XXXX:YY10::AAA:BB1)
2018-07-08T09:52:42+09:00 ds216j ddnsd: ddnsd.c:1941 Success to update [somehost.mydns.jp] with IP [103.2.248.166] at [USER_MyDNS-2]

(2018/7/8 13:53)DDNS自動更新後24時間
2018-07-08T13:53:27+09:00 ds216j ddnsd: ddnsd.c:2984 DDNS Expired. UpdateAll.
2018-07-08T13:53:29+09:00 ds216j ddns-mydns.sh: nochg(ipv6=2409:10:XXXX:YY10::AAA:BB1)
2018-07-08T13:53:29+09:00 ds216j ddnsd: ddnsd.c:1941 Success to update [somehost.mydns.jp] with IP [103.2.248.166] at [USER_MyDNS-2]


まとめ
DS-216Jには、グローバルIPv6アドレスを手動設定しているので「変化」する事は無い。RAやDHCPv6を利用した自動設定では、IPv6下位4ヘクテットが自動生成になる。自動設定値がMACアドレスからの固定値。NVR500のDHCPv6サーバからPrefixを得られるが、デフォルトゲートウェイやDNS情報が得られないようだ(設定してみたが取得できていなかったようだ)。
インターネットからDS-216Jまでの経路にPR-S300SEのパケットフィルタとNVR500のパケットフィルタがあり、固定値で設定しているため、IPv6アドレスが動的に変化するのも困る。Prefixだけの動的変化でもパケットフィルタの変更が必要になる。

・24時間毎に更新動作を行う
・Transix DS-LiteのIPv4アドレスがたまに強制変更される。DS-216JのDDNS機能は、IPv4アドレス変化で更新動作を行う
・MyDNSは、情報更新が24時間以内だとアドレス更新を受付けても情報更新の対象外。DS-216JのDDNS機能が24時間毎の更新を行うと48時間毎の情報更新となる。1週間以内の更新要件なので問題なし。

---- 2019/05/24追記
Synology DS-216JのDDNSがシステムアップデートで動作停止

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Synology DS-216JのWebStatio... | トップ | ひかり電話ルータ(PR-S300SE... »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

DS-216J」カテゴリの最新記事