Instiq
第2章 · ネットワークの基礎·v1.0.0·更新 2026/7/6·読了目安 約10分

変更要約: 初版(主題1.07・副主題1.07.1〜1.07.4に対応)

2.4クライアント側のDNS設定

この節の要点

ホストが名前解決に使う DNS クライアント設定を学びます。/etc/resolv.confnameserver・search)による問い合わせ先の指定、リモート DNS サーバーへの問い合わせ(hostdig)、/etc/hosts との関係、参照順序を試せる getent/etc/nsswitch.conf による順序変更を押さえます。

前節で「名前解決が怪しい」と切り分けたら、次はクライアント側の設定3点セット——どの順で引くか(nsswitch.conf)・静的対応(hosts)・どの DNS サーバーに聞くか(resolv.conf)——を確認します。この3ファイルの役割分担が本節の核心です。

2.4.1設定ファイル3点セット

  • /etc/resolv.conf問い合わせ先 DNS サーバーの指定(nameserver 8.8.8.8・最大3つ・上から順に試行)。search example.comドメイン補完(ホスト名だけで引いたとき補うサフィックス)。
  • /etc/hosts=静的な対応表。通例 DNS より先に引かれる(順序は nsswitch.conf 次第)。
  • /etc/nsswitch.confhosts: files dns の行が参照順序を決める(files=/etc/hosts)。順序を入れ替えれば DNS 優先にもできる。

2.4.2確認コマンドの使い分け

  • host=簡潔な正引き/逆引き(host www.example.comhost 192.0.2.1)。host 名前 8.8.8.8 のように問い合わせ先サーバーを指定できる。
  • dig=詳細表示(QUESTION/ANSWER セクション・TTL・応答コード)。dig @8.8.8.8 example.com MX のようにサーバー指定は @・レコード種別も指定可。
  • getentgetent hosts 名前nsswitch.conf の順序どおりに引いた結果を表示=「実際にアプリが見る答え」。host/dig は DNS だけに聞く(/etc/hosts を見ない)点が対照。
試験ポイント

「問い合わせ先の指定=resolv.conf の nameserver」「参照順序=nsswitch.conf」「hosts も含めた実際の解決結果=getent hosts」「dig でサーバー指定=@」 が定番です。host/dig は /etc/hosts を見ない——この非対称は「hosts に書いたのに dig で出ない」型の問題として頻出します。

3ファイル+3コマンドの関係を1つの物語にしましょう。アプリケーション(ブラウザや ssh)が名前を引くときは、nsswitch.conf の順序に従い、まず /etc/hosts を見て、無ければ resolv.confnameserver に UDP/53 で問い合わせます。だから「テスト用に hosts へ 192.0.2.10 www.example.com を書いた」場合、ブラウザ(と getent)はテストサーバーへ向かいますが、dig は DNS に直接聞くので本番の IP を返し続けます——両者の答えの食い違いこそが「hosts が効いている」証拠です。逆に「hosts に書いても無視される」なら nsswitch.conf の順序が dns 先行になっていないかを疑います。search example.comssh web01 のような短い名前を web01.example.com に補完する仕組みで、複数書けば順に試されます。クラウドや DHCP 環境では resolv.conf が自動生成・上書きされることが多い(手編集が消える)という運用注意も、トラブルの定番原因として覚えておきましょう。

道具/ファイル見るもの主な用途
getent hostsnsswitch 順(hosts→DNS)アプリが見る答えの確認
host / digDNS のみDNS サーバー自体の検証
resolv.confnameserver・search問い合わせ先の指定
nsswitch.confhosts: files dns参照順序の定義
注意

ひっかけ: 「/etc/hosts に追記した内容は dig の結果にも反映される」は誤りです。dig(と host)は DNS サーバーに直接問い合わせ、/etc/hosts を参照しません(hosts を含めて確認するのは getent)。また「resolv.conf は名前解決の順序を決める」も誤り=順序は nsswitch.conf の担当で、resolv.conf は問い合わせ先サーバーの指定です。

resolv.conf・nsswitch.conf/hosts・getent と dig の役割分担図。
dig は /etc/hosts を見ない

2.4.3この節のまとめ

  • 役割分担=nsswitch.conf(順序)・hosts(静的)・resolv.conf(nameserver/search)
  • 確認は getent hosts(実際の答え)/host・dig(DNS 直接・@ でサーバー指定)

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. ホストが名前解決の問い合わせ先にする DNS サーバーの IP アドレスを指定するファイルと記述はどれ?

Q2. テストのため /etc/hosts に www.example.com の対応を追記した。この設定を「含めた」実際の解決結果を確認できるコマンドはどれ?

Q3. 社内 DNS ではなく Google Public DNS(8.8.8.8)に直接、example.com の MX レコードを問い合わせたい。適切なコマンドは?

理解度を確認第2章「ネットワークの基礎」の問題を解く