kazmax - Linux で自宅サーバー

resolv.conf - ファイルのフォーマットと規約の説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. ファイル
  5. 関連項目

名前

resolv.conf - レゾルバ設定ファイル

書式

/etc/resolv.conf

説明

resolver は、インターネットドメインネームシステム (DNS) へのアクセスを提供する C ライブラリのルーチン群である。 レゾルバ設定ファイルには、レゾルバルーチンがプロセスによって起動されたときに 始めに読み込まれる情報が含まれる。 このファイルは人間に可読なように設計されている。 キーワードと値のリストが含まれ、いろいろなタイプのレゾルバ情報を提供する。

普通に設定されたシステムでは、このファイルは必要ない。 問い合わせをされる唯一のネームサーバはローカルマシン上にある。 ドメイン名はホスト名から決定され、 ドメインの検索パスはドメイン名から作成される。

この状態を変更するための設定オプションには、以下のようなものがある。

nameserver ネームサーバの IP アドレス
レゾルバが問い合わせをするネームサーバの (ドット表記の) インターネットアドレス。 このキーワード 1 つごとに 1 台づつ、 MAXNS 台 (現状では 3 台、<resolv.h> を参照) までのネームサーバをリストできる。 複数のサーバが指定された場合、レゾルバライブラリは リストされた順に問い合わせを行う。 nameserver エントリがない場合、 デフォルトではローカルマシン上のネームサーバが使われる。 (ここで使われるアルゴリズムは以下のようなものである。 はじめにネームサーバに問い合わせを試みる。 この問い合わせがタイムアウトになった場合、 次のネームサーバに問い合わせを試みる。 これをネームサーバがなくなるまで続ける。 それでも応答がない場合は、リトライ最大回数に達するまで 全てのネームサーバに問い合わせを繰り返す。)
domain ローカルドメイン名
このドメインにある名前の問い合わせのほとんどに、 このローカルドメインにおける短い名前を使用することができる。 domain エントリがない場合、ドメイン名は gethostname () で返されるローカルホスト名から決定され、 最初の `.' 以降の全ての部分がドメイン名とされる。 このホスト名にもドメイン部を含んでいない場合、ルートドメインが仮定される。
search ホスト名ルックアップのための検索リスト
検索リストは通常ローカルドメイン名から決定される。 デフォルトでは、検索リストはローカルドメイン名のみである。 これを変更するには、search キーワードの後に 希望するドメイン検索パスをスペースまたはタブで区切ってリストすればよい。 ドットの数が ndots (デフォルトでは 1) より少ないレゾルバの問い合わせは、 一致するものが見つかるまで検索パスの各要素を順に使って試す。 複数のサブドメインを持つ環境では、 第三者による攻撃 (man-in-the-middle attack) と ルート DNS サーバへの不必要なトラフィックを避けるために、 以下の options ndots: n を読んでほしい。 このプロセスは遅く、リストされたドメインがローカルのものでない場合、 多大なネットワークトラフィックを発生させることに注意すること。 さらに、これらのドメインのいずれかひとつにでも適切なサーバがない場合、 問い合わせがタイムアウトになる点にも注意すること。
現状では、検索リストは 6 ドメイン・計 256 文字に制限されている。
sortlist
sortlist により、gethostbyname で返される アドレスをソートさせることができる。 sortlist は IP アドレスとネットマスクのペアで指定される。 ネットマスクは省略可能であり、 デフォルトではネットに対するデフォルトのネットマスクである。 IP アドレスとオプションのネットマスクのペアはスラッシュで区切る。 最大 10 組のペアを指定できる。 例:

sortlist 130.155.160.0/255.255.240.0 130.155.0.0

options
options により、レゾルバの内部変数を変更することができる。 書式は以下の通りである。

options option ...

ここで option は次のうちのいずれかである。

debug
_res.options を RES_DEBUG に設定する。
ndots: n
最初の完全な名前での問い合わせ が実行される前に、res_query ( resolver (3)を参照) に与えられる名前に含まれているべきドットの数の閾値」を設定する。 n のデフォルトは ``1'' である。 これは、名前にドットがある場合、search list の要素が付加される前に、 その名前が完全な名前として最初に試されるということを意味している。
timeout: n
「レゾルバが他のネームサーバで問い合わせをリトライする前に、 リモートネームサーバからの応答を待つ時間」を設定する。 単位は秒で、デフォルトは RES_TIMEOUT である (現状では 5 秒、<resolv.h> を参照)。
attempts: n
「レゾルバが諦めて呼び出し元のアプリケーションにエラーを返すまでに、 ネームサーバに問い合わせを行う回数」を設定する。 デフォルトは RES_DFLRETRY 回である (現状では 2 回、<resolv.h> を参照)。
rotate
_res.options を RES_ROTATE に設定する。 リストされているネームサーバから選ぶときに、 ラウンドロビン (round robin) 選択を行わせる。 リストされている全てのサーバで問い合わせの負荷を分散する効果があり、 最初にリストされたサーバに全てのクライアントが 毎回最初に問い合わせを行うわけではなくなる。
no-check-names
_res.options を RES_NOCHECKNAME に設定する。 入ってくるホスト名とメールアドレスに、 アンダースコア (_)・ASCII 以外の文字・制御文字といった 不正な文字が含まれていないかを調べる 最近の BIND のチェックを無効にする。
inet6
_res.options を RES_USE_INET6 に設定する。 gethostbyname ()関数の内部で A レコードの問い合わせを行う前に AAAA レコードの問い合わせを行わせたり、 AAAA レコードは見つからないが A レコードセットが存在する場合に、 IPv4 の応答を IPv6「トンネル形式」にマップさせたりする。

domainsearch キーワードは、互いに排他的である。 これらのキーワードが 2 つ以上記述されている場合、 最後に記述されているものが有効になる。

システムの resolv.conf ファイルにある search キーワードは、 スペースで区切った検索ドメインのリストを 環境変数 ``-1LOCALDOMAIN+1'' に設定することにより、 各プロセス毎に上書きすることができる。

システムの resolv.conf ファイルにある options キーワードは、 上の options セクションで説明したように、 スペースで区切ったレゾルバオプションのリストを 環境変数 ``-1RES_OPTIONS+1'' に設定することにより、 各プロセス毎に修正することができる。

キーワードと値は同じ行に書かなければならない。 また、(nameserver のような) キーワードが行の先頭になければならない。 値はキーワードの後にスペースで区切って続ける。

ファイル

/etc/resolv.conf , <resolv.h>

関連項目

  gethostbyname (3),   resolver (3),   hostname (7),   named (8) 
BIND のネームサーバオペレーションガイド