SOAレコードでドットを忘れるとこうなる

現在私の所有しているサーバーの一部ではPowerDNSでDNSサーバーを立てているのですが設立当初からマスタ・スレイブの同期が怪しかったのですが、DNSレコードはあんまり書き換えないからいいやという事で放置してきました。

しかしあまり放置プレイするのも良くないのでいい加減に調べてみる事にしました。

症状はマスターを更新してもスレイブの転送されないという物だったのですが、スレイブのDNSサーバーで下記のようなメッセージが出力されている事に気づきました。

※wakegawakaranaiyo.infoは架空のドメインです。


エラーメッセージではスレイブのシリアルがマスタよりも新しいと出ています。試しにdigで確認してみるとマスターとは全く違うシリアルに化けていました。

マスターDNSのSOAレコードは下記のようになっていました。

実はこの時、SOAレコードのMNAME、RNAMEの最後にドットを忘れていたのです。
ドットを追加した所無事に動き始めました。
という事でSOAレコードでドットを忘れるとレプリケーションが狂う要因になるようです。

ただしこのドットですが、動いた後に再現する為にわざと忘れてみたりしたのですが、今度はなぜかシリアルが化ける現象は再現しませんでした。後シリアルの書式はYYYYMMDDnnが良いみたいです。初めYYYYMMDDHHMMなどという書式でやっていたのですが、これでもシリアルが化けてうまく同期できませんでした。ただしこちらは別の要因かもしれません。

とりあえず解決はしたもののはっきりしない点がいくつか残ったのでもう少し暇がある時に調べてみる必要がありそうです。