split-brain DNSのトラブル事例|内部DNSと外部DNSの設計で起こる問題を理解する

split-brain DNSのトラブル事例

split-brain DNSのトラブル事例

企業ネットワークでは、社内利用者向けとインターネット利用者向けで異なるDNS応答を返したい場面があります。

例えば社内からアクセスした場合はプライベートIPアドレスを返し、社外からアクセスした場合はグローバルIPアドレスを返す構成です。

この仕組みはsplit-brain DNS(スプリットブレインDNS)と呼ばれています。

非常に便利な仕組みですが、設計や運用を誤ると複雑な障害を引き起こすことがあります。

本記事ではsplit-brain DNSの仕組みや導入目的、実際によくあるトラブル事例について解説します。

split-brain DNSとは

split-brain DNSとは、問い合わせ元によって異なるDNS応答を返す仕組みです。

例えば同じFQDNでも応答内容を変更します。


www.example.com

社内からの問い合わせです。


www.example.com
↓
192.168.60.20

社外からの問い合わせです。


www.example.com
↓
203.0.113.20

同じホスト名でも異なるIPアドレスが返されます。

なぜ利用されるのか

最も多い理由は内部通信の最適化です。

例えば社内サーバへアクセスする場合です。


社内PC
↓
内部DNS
↓
192.168.60.20

ローカルネットワーク内で通信できます。

インターネットを経由する必要がありません。

VPN環境でよく利用される

VPN利用時にもよく導入されます。

社内利用者には内部アドレスを返します。


vpn.example.com
↓
10.0.0.10

社外利用者には公開アドレスを返します。


vpn.example.com
↓
203.0.113.10

構成例

一般的な構成です。


Internal DNS
↓
192.168.60.x

External DNS
↓
203.0.113.x

それぞれ別のゾーンを管理します。

内部ゾーンの例

www.example.com IN A 192.168.60.20
mail.example.com IN A 192.168.60.30

外部ゾーンの例

www.example.com IN A 203.0.113.20
mail.example.com IN A 203.0.113.30

ホスト名は同じですが内容が異なります。

よくあるトラブル① VPN接続時だけ利用できない

非常によく発生する障害です。

利用者はVPN接続しています。


VPN接続
↓
内部DNS利用
↓
内部IP取得

しかしVPNルート設定が不足しています。

結果として接続できません。

よくあるトラブル② 社内だけアクセスできない

内部DNSと外部DNSの情報が一致していない場合です。

例えば外部DNSのみ更新します。


外部DNS
203.0.113.50

内部DNSは古いままです。


内部DNS
192.168.60.20

社内だけ旧サーバへ接続されます。

よくあるトラブル③ SSL証明書エラー

ロードバランサ構成で発生することがあります。

内部DNSは直接サーバを返します。


www.example.com
↓
192.168.60.20

しかし証明書はロードバランサ側にあります。

結果として証明書エラーになります。

よくあるトラブル④ メール配送異常

MXレコード管理ミスです。

内部DNSと外部DNSで異なる設定を持つ場合があります。


MX
↓
mail1

内部DNSだけmail2になっていると配送障害の原因になります。

よくあるトラブル⑤ キャッシュ問題

利用者がネットワークを移動した場合です。

社内で取得したDNS情報が残っています。


192.168.60.20

そのまま社外へ移動すると接続できません。

よくあるトラブル⑥ Active Directory連携

Active Directory環境ではDNS依存度が非常に高くなります。

内部DNS設定を誤ると次の問題が発生します。

  • ログオン失敗
  • グループポリシー適用失敗
  • LDAP接続失敗

トラブル発生時の確認方法

まず利用しているDNSサーバを確認します。

$ cat /etc/resolv.conf

またはWindowsです。


ipconfig /all

どのDNSが応答しているか確認する

$ dig www.example.com

出力を確認します。


SERVER: 192.168.60.10#53

どのDNSサーバが応答したか分かります。

内部DNSと外部DNSを比較する

実務で非常によく行う確認です。

$ dig @192.168.60.10 www.example.com

$ dig @8.8.8.8 www.example.com

結果を比較します。

TTLにも注意する

DNS変更後はキャッシュが残る場合があります。


www.example.com. 3600 IN A 192.168.60.20

TTL期間中は古い情報が利用される可能性があります。

split-brain DNSのメリット

  • 内部通信を最適化できる
  • VPN利用時に便利
  • 内部サーバを非公開にできる
  • セキュリティ向上につながる

split-brain DNSのデメリット

  • 管理対象が増える
  • 設定差異が発生しやすい
  • 障害調査が難しくなる
  • DNS同期管理が必要

実務でのベストプラクティス

運用時には次の点を意識します。

  • 内部DNSと外部DNSの差分を最小化する
  • ドキュメント化する
  • 定期的に比較確認する
  • TTLを適切に設定する
  • VPN経路も合わせて確認する

実務で覚えておきたいポイント

  • split-brain DNSは問い合わせ元で応答を変える仕組み
  • 内部DNSと外部DNSを分離する
  • VPN環境でよく利用される
  • 設定差異が障害原因になりやすい
  • digで内部・外部DNSを比較する
  • DNSキャッシュにも注意する

まとめ

split-brain DNSは、社内利用者と社外利用者に異なるDNS応答を返す便利な仕組みです。

内部通信の最適化やセキュリティ向上といったメリットがある一方で、内部DNSと外部DNSの設定差異による障害が発生しやすくなります。

実運用では両方のゾーンを適切に管理し、定期的な確認を行うことが重要です。

企業ネットワークやVPN環境では頻繁に利用される構成のため、DNS管理者は必ず理解しておきたい知識と言えるでしょう。