Synology Snapshot Replication で、疎通性のないAAAAレコードのあるドメイン名使って困った話

ガジェット
まあ自分が悪い話です Synology Snapshot Replicationでは遠隔のNASにスナップショットとってデータを複製できます。
その際、接続先・接続元のNASの場所をコンピュータ名やドメイン名やIPアドレスで指定します。
そこで疎通性のないIPv6アドレスが入ったAAAAレコードのあるドメイン名を使ってトラブりました。IPv6がダメならIPv4でやり直してくれないみたい。
(もしかしたら別なアプリでも同じかもしれませんが、試してません。)
以上。

Synology NASはデフォルトでIPv6が有効で、SynologyのDDNSも自動でAAAAレコードを作ります。なので普通に使ってると結構ハマりやすいところではないかと思います。

症状

(環境はDSM 6.2.3 Update3, Snapshot Replication Version: 7.2.0-0478です。) Snapshot Replicationで複製を設定するときに、パートナーサーバ(接続先)・同期元サーバ(接続元)の「サーバー名またはIPアドレス」を入力します。 ここで、疎通性のないIPv6アドレスを設定したAAAAレコードがあるドメイン名を片方にでも入れると接続に失敗します。
接続に失敗すると以下のように「パートナーサーバへの接続に失敗しました」「パートナーサーバーはこのサーバーに接続できませんでした」というエラーが出ます。
ちなみにIPv4アドレス直打ちにすると接続できます。
また、Aレコードしかないドメイン名でも接続できます。
Aレコードに加えて(疎通性のない)AAAAレコードがあるドメイン名を入れたときのみ接続できませんでした。
NASからnetcatでそのドメイン名を使って接続してみるとちゃんとIPv4で繋がりますけどね…

原因の推測

たぶん、IPv6で通信を試みて無理だったらIPv4は試さず諦めてエラー出してるんだと思います。
つまりIPv6がダメな時にIPv4へのフォールバックをしていないのではないかと…。
本来なら通信を見たりエラーログを見たり色々したいところですが、面倒なのでパスします。

対処方法

とりあえず、「疎通性のないAAAAレコードがあるドメイン名」を使わなければよいのです。
それ以外にも方法はあるでしょうが…たぶんこれが簡単なので。

AAAAレコードを消す

自分で管理しているドメイン名なら、AAAAレコードを消しAレコードだけにしちゃいます。 SynologyのDDNSの場合、コントロールパネル→外部アクセス→DDNS の設定から、「外部IPの設定」でIPv6の欄に 0:0:0:0:0:0:0:0と入れるとAAAAレコードが登録されなくなるようです。
ただしこうやってIPv6アドレスの欄だけ任意の値に変えた場合に、IPv4アドレスの変化に従いDDNSのAレコードのほうは変わってくれるのかは調べてません。固定になっちゃうのも考えられます。 別なやり方もあり、コントロールパネル→ネットワーク→ネットワークインターフェース から、NICの設定画面を開きIPv6をオフにするとSynologyのDDNSのAAAAレコードも登録されなくなります。

AAAAレコードで通信できるようにする

Synology NASに割り振られたIPv6アドレスに、接続先のNASからインターネットを通して通信が届くようにすればいいです。
ルータで弾いてたりする場合は、それを通すように設定します。必要なプロトコルやポートだけにしたほうがいいです。

(これでSnapshot Replicationで使えるか確かめてませんがいけるはず)

さいごに

Synologyでもこういうわかりにくいところあるんだな〜って感じです。QNAPなら通常運転かもしれませんけども。
(NASを初期化したり別なネット回線から試したりしたわけじゃないので、自分の環境のせいだったということもあり得ますが…。)

コメント