ゾーンファイルのIPアドレスの間違えを修正したもののDNSサーバに繋がらない時の対処


ゲストOS:centos7
ホストOS:MacOs
webサーバ:apache
DNSサーバ:BIND

インフラ関連について自主学習している初学者です。サーバ構築中に上手く動作せず、少し苦労したので備忘録として投稿します。
用語の使い方など間違っていたらすいません。

 問題発生の流れ

virtualbox上のcentos7上でwebサーバを立ち上げDNSで名前解決させる。
BINDでDNSサーバ構築し、apacheでwebサーバを構築した。
ブラウザから接続確認するために、ホストOSのDNSサーバをcentosの/etc/resolv.confに記述しているIPアドレスに設定。curlコマンドでアクセスするも繋がらない。

 解決までの道なり

上手く動作しない場合、レイヤ層順に調べて原因追究すべし!と以前会社で習ったので、その通り調べました。

①ホストOS上からゲストOSへ通信できるのかを確認

ターミナル 上(MacOS)で以下のコマンドを実行。
ping (centosのIPアドレス)
PING centosのIPアドレス (centosのIPアドレス): 56 data bytes
64 bytes from (centosのIPアドレス): icmp_seq=0 ttl=64 time=0.431 ms
64 bytes from (centosのIPアドレス): icmp_seq=1 ttl=64 time=0.390 ms
64 bytes from (centosのIPアドレス): icmp_seq=2 ttl=64 time=0.543 ms
^C
--- (centosのIPアドレス) ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.390/0.455/0.543/0.065 ms
以上からつながっていることを確認。

②firewallが止まっているかを確認。

systemctl status firewalld
止まっていた。

③DNSサーバに問題があるのか確認。

ターミナル 上で(MacOS)以下のコマンドを実行。
nslookup www.example.com ←設定したドメイン
設定したIPアドレスが出てこなかった。

DNSサーバに問題があると確認が取れたため、ゾーンファイルを再度見直すとAレコードのIPアドレスが間違っていた。修正して、serviceを再起動。
nslookup www.example.com
再度上のコマンドを入力するとIPアドレスが表示されたため、DNSサーバが上手く動作した。

④さらに問題。

最終確認のためcurlコマンドでアクセスするも繋がらない。問題は他にもあると考えて次にwebサーバを確認する。
http.confなどの設定ファイルを全て確認するも問題はない。
再度繋がるか確認。
・curl www.example.com
このコマンドは繋がらない
・curl (centosのIPアドレス)
このコマンドでは繋がることが出来た。

⑤MacのDNSにキャッシュが残っているのではないかと思い、キャッシュを削除することに。

以下のコマンドを実行。
sudo killall -HUP mDNSResponder

再度確認。
curl www.example.com
webサーバに用意していたhtmlファイルを表示することができた!!

まとめ

今回の場合、MacのDNSにキャッシュが残っていることを気づかなかったため、レイヤ層順が少し前後してしまい原因追究が遅れてしまった。この一件でレイヤ層を意識して一つずつ着実に原因を無くしていくことでスピーディな解決ができると学んだ!次にいかす!!