LinuCレベル1 ネットワークの基礎 問37
ネットワークの基礎/クライアント側のDNS設定/etc/resolv.conf に次のように記述した。glibcのリゾルバによる名前解決の動作として適切なものはどれか。 nameserver 192.0.2.53 nameserver 198.51.100.53
当サイトのオリジナル問題(LinuCレベル1の出題範囲「ネットワークの基礎」に対応。実際の試験問題ではありません)
- A記述した順に問い合わせ、応答が無くタイムアウトしたときに次のサーバーを試す
- B両方のサーバーへ同時に問い合わせ、先に返ってきた応答を名前解決の結果に使う
- C問い合わせのたびに2台から1台を無作為に選び、選んだサーバーだけに問い合わせる
- D最後に書いたnameserver行だけが有効になり、それより前に書いた行は無視される
正解:A
解説
resolv.conf の nameserver 行は複数書くことができ、glibcのリゾルバでは最大3つまで有効です。問い合わせは記述した順に行われ、あるサーバーから応答が無くタイムアウトした場合に次のサーバーを試します。なお、名前が存在しない(NXDOMAIN)という応答は正常な結果として扱われ、次のサーバーには問い合わせません。そのため、1台目が停止していると、タイムアウトを待つぶん名前解決が遅くなります。問い合わせ先を順番に振り分けたい場合は、options rotate を指定します。
選択肢ごとの解説
- A正しい。記述順に問い合わせ、応答が無い場合に次のサーバーへ切り替えます。
- B誤り。glibcのリゾルバは既定では記述順に1台ずつ問い合わせ、全サーバーへ同時には送りません。
- C誤り。無作為に選ぶ動作は既定ではありません。順番に振り分けたい場合は options rotate を指定します。
- D誤り。nameserver 行は複数書けて、glibcでは先頭から最大3つまでが使われます。