ネットワーク基礎4 択難易度 標準

状況

DNS を切り替える前に新サーバーを確かめるため、手元の PC の /etc/hosts に 203.0.113.20 www.example.com を追加した。ブラウザでは新サーバーのページが出るが、dig www.example.com は旧サーバーの 198.51.100.10 を返す。

このように結果が食い違う理由は?

正答

  1. dig は /etc/hosts を見ずに DNS サーバーへ直接問い合わせるから
  2. /etc/hosts の変更が DNS サーバーへ反映されるまで時間がかかるから
  3. ブラウザは DNS ではなく、HTTP のキャッシュから接続先の IP を決めるから
  4. dig は TTL が切れるまで、前回と同じ答えを表示し続けるから

解説

ブラウザや curl は OS の名前解決の仕組みを使い、多くの環境では DNS より先に /etc/hosts を見る。そのため www.example.com は 203.0.113.20 になる。一方 dig は DNS の調査用の道具で、/etc/hosts を読まず、DNS サーバーに直接問い合わせた答えを表示する。/etc/hosts はその PC の中だけの設定で、DNS サーバーには伝わらない(2 番目は誤り)。確認が終わったら必ずこの行を消すこと。消し忘れると、本番の DNS を切り替えた後も自分だけ古い(または違う)サーバーを見続け、障害の切り分けを誤る。

参考: man7.org

dnsetc-hostsdig

この問題を含む ネットワーク基礎 のテストを制限時間つきで解く

ネットワーク基礎クイズへ