きっかけ#
まじか!と思い、conohaからdigって見るものの、REFUSEDになってしまいました。「ちぇー、ちゃんアクセス制限してんのかー」と思っていたところ、@tss_ontapさんから「繰り返し聞いてみましょう」とのアドバイスをいただきました。
言われた通り何度もdigった結果、、、
アクセス制限しているにも関わらず、何回かに1回、応答を返すという謎動作。「このDNS、ロードバランサか?」ということで、どんな構成なのか調べてみました。
調べかた#
- DTIが提供する以下のキャッシュDNSサーバ(202.216.224.30、202.216.229.30)にServersMans VPSから再帰問い合わせ行う。(このためだけにVPSを借りた。)
- 問い合わせで利用するFQDNは、絶対にキャッシュされていないドメイン(自ドメインのNXDOMAINになるもの)を使う
- 自ドメインの権威DNSはIPv4アドレスのみでListenする。
- 自ドメインの権威DNSのクエリログを確認し、問い合わせで使ったFQDNを問い合わせに来たDNSサーバをチェックする。
- 問い合わせに来たDNSサーバに、ConohaVPSから再帰問い合わせを行い、オープンリゾルバかどうかチェックする。
- 面白そうなので、問い合わせに来たDNSサーバに、ServersManからversion.bindを問い合わせる。
202.216.224.30#
202.216.224.30は13台中2台がオープンリゾルバでした。version.bindを信じるのであれば、ソースからコンパイルしたbindはちゃんとしていて、RHELのパッケージを使っているbindはオープンリゾルバのようです。
|
VIP
|
<th>
Real server
</th>
<th>
Open Resolver
</th>
<th>
Version bind
</th>
|
202.216.224.30
|
<td>
202.216.224.10
</td>
<td>
Yes
</td>
<td>
9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1
</td>
|
|
<td>
202.216.224.11
</td>
<td>
</td>
<td>
9.10.0-P1
</td>
|
|
<td>
202.216.224.12
</td>
<td>
</td>
<td>
9.10.0-P1
</td>
|
|
<td>
202.216.224.13
</td>
<td>
</td>
<td>
9.10.0-P1
</td>
|
|
<td>
202.216.224.14
</td>
<td>
</td>
<td>
9.10.0-P1
</td>
|
|
<td>
202.216.224.15
</td>
<td>
</td>
<td>
9.10.0-P1
</td>
|
|
<td>
202.216.224.16
</td>
<td>
</td>
<td>
9.10.0-P1
</td>
|
|
<td>
202.216.224.17
</td>
<td>
</td>
<td>
9.10.0-P1
</td>
|
|
<td>
202.216.224.18
</td>
<td>
</td>
<td>
9.10.0-P1
</td>
|
|
<td>
202.216.224.19
</td>
<td>
</td>
<td>
9.10.0-P1
</td>
|
|
<td>
202.216.224.34
</td>
<td>
Yes
</td>
<td>
9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1
</td>
|
|
<td>
202.216.224.60
</td>
<td>
</td>
<td>
9.10.0-P1
</td>
|
|
<td>
202.216.224.61
</td>
<td>
</td>
<td>
9.10.0-P1
</td>
202.216.229.30#
202.216.229.30は8台中5台がオープンリゾルバでした。version.bindを信じるのであれば、202.216.224.30と同様、ソースからコンパイルしたbindはちゃんとしていて、RHELのパッケージを使っているbindはオープンリゾルバのようです。
|
VIP
|
<th>
Real server
</th>
<th>
Open Resolver
</th>
<th>
Version bind
</th>
|
202.216.229.30
|
<td>
202.216.229.6
</td>
<td>
Yes
</td>
<td>
9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1
</td>
|
|
<td>
202.216.229.10
</td>
<td>
Yes
</td>
<td>
9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1
</td>
|
|
<td>
202.216.229.11
</td>
<td>
</td>
<td>
9.10.0-P1
</td>
|
|
<td>
202.216.229.13
</td>
<td>
</td>
<td>
9.10.0-P1
</td>
|
|
<td>
202.216.229.14
</td>
<td>
</td>
<td>
9.10.0-P1
</td>
|
|
<td>
202.216.229.41
</td>
<td>
Yes
</td>
<td>
9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1
</td>
|
|
<td>
202.216.229.135
</td>
<td>
Yes
</td>
<td>
9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1
</td>
|
|
<td>
202.216.229.146
</td>
<td>
Yes
</td>
<td>
9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1
</td>
- ロードバランサの配下に置くサーバは、設定を合わせた方がいいと思います。。。
- DNSサービスって、リアルサーバが沢山必要なのね。。。
- BINDのバージョンをあわせないのは、脆弱性対策なのかなあ。。。全部同じバージョンだと、ひとつの脆弱性で全部死ぬから。
- でも、全部BINDだから、新BINDコロリが出たら全滅だよなぁ。。。
- LBの配下で異なるキャッシュDNSサーバ(e.g.unboundとBIND)を動かすと強いDNSサービスが作れそう。