ESXiに複数のDNSサーバを登録し、サーバ障害試験はnslookupは使えない


先日、会社でDNSサーバの障害試験をするという話があったんですが、そこで、障害試験をしてもプライマリからセカンダリに切り替わらないという話がありました。


以前もなんか経験したことがあるような話だったんですが、当時の自分のブログの備忘録をチェックしていると、、、以前は、セカンダリDNSの有効性を確認する際に、nslookupを使いました。


しかし、この方法は障害時には確認ができないです。通常、DNSは耐障害性を考えて、プライマリDNSセカンダリDNSを立てる事が多いと思います。そして、構築後、プライマリがダウンしても、継続してセカンダリが利用できる事を確認する必要があります。


以前、DNSの確認をした際は、運用中のものだった為、障害を起こすことができなかったので、以下の方法で確認をしました。

>nslookup
>server <セカンダリDNSのIP>


この方法だと、セカンダリDNSが利用できる事は確認できるのですが、きちんとフェイルオーバーしたかどうかを確認できません。また、nslookupは通常、優先度の高いDNSサーバーしか見に行きません。


ここの部分が重要ですね。nslookupって障害試験はできないのです。ちなみに、、、DNSサーバの指定をしていなくても、nslookupでサーバを指定できますので、余計に注意が必要です。


その為、プライマリDNSに疑似障害を起こして、セカンダリDNSサーバーにフェイルオーバーした事を確認したかったら、pingを使えば確認する事ができます。


例えば、DNSに登録されたサーバ(ESXiのホスト名)がいたら、、、

ping (ESXiのホスト名) -t
DNS#1をダウン
Pingが継続して応答があることを確認


といった感じでしょうか。


後、プライマリDNSをダウンさせた後、DNSを利用するシステムでも問題ないかどうかは確認しておいた方がいいかもしれませんね。もしかしたらLinuxの場合は、digを使えばテストができるかもしれませんが、障害テストはやり方をしっかりと検討しておく必要があります。