今やってる仕事で、外部公開 DNS サーバを SLB の下に置くってのがあります。
SLB の代表アドレスのネットワークと、DNS サーバ自身が置かれるネットワークは別で、SLB はルータイメージで接続されることになります。
┌───┐ ┌─┤DNS#1 │master ┌───┐ │ └───┘ 代表アドレス─┤ SLB ├─┤(private) (global) └───┘ │ ┌───┐ └─┤DNS#2 │slave └───┘
こんな感じになるんですが、この場合、ゾーン定義のNSレコードをどう書けばいいのか... と悩んでしまったのでした。
ゾーン定義のNSレコードで定義したFQDNのAレコードは、当然globalアドレスとする必要があります。この状態でmasterのゾーン情報が変更になった時、slaveに通知(notify)をしたいのですが、globalなアドレスに対して変更通知を送っても、まともに届くとは思えません。
DNS#1とDNS#2でviewを定義して、localhostからのアクセスをprivateなアドレスになるよう、両方をmasterで定義してみたところ、ゾーン情報の転送は上手くいきました。が、DNS#1からの変更通知をDNS#2が受けると、SOAが不当だってことで拒否してしまいます。そりゃそうです。DNS#1から受けた変更通知ドメインのSOAは、DNS#2では自分自身になるんですから。
で、いろいろ調べてみたら、答えは簡単でした。view定義なんか不要で、単に変更を通知したいアドレスを also-notify に定義すればいいだけでした。
なんてことを、今日は休日出勤して実験してました。
おお~ <br>休日出勤をして <br>そんなことをしているんだ~(@0@) <br>