最終更新: megaron_sanders 2016年03月14日(月) 01:17:59履歴
ひょんなことから resolv.conf ってどう設定されてるの? を確認したので以下メモ。
複数のnameserverが定義されてあった場合の動きは以下の内容(man pageから)
ここで使われるアルゴリズムは以下のようなものである。
はじめにネームサーバに問い合わせを試みる。 この問い合わせがタイムアウトになった場合、 次のネームサーバに問い合わせを試みる。
これをネームサーバがなくなるまで続ける。 それでも応答がない場合は、リトライ最大回数に達するまで 全てのネームサーバに問い合わせを繰り返す。
つまり、ABCのnameserverを定義していた場合は、
Aがタイムアウト⇒Bがタイムアウト⇒Cがタイムアウト⇒A⇒B⇒C....
のようにアクセスしていくことになりますね。
- resolv.conf の設定は /usr/include/resolv.h で確認可能
- MAXNS の値が nameserver で設定可能な上限 (デフォルトは3)
- RES_TIMEOUT の値がタイムアウト値 (最初に「min」で始まるので5分!? と思ったがデフォルト5秒でした)
- RES_MAXRETRY の値がリトライ上限数 (デフォルト5回)
複数のnameserverが定義されてあった場合の動きは以下の内容(man pageから)
ここで使われるアルゴリズムは以下のようなものである。
はじめにネームサーバに問い合わせを試みる。 この問い合わせがタイムアウトになった場合、 次のネームサーバに問い合わせを試みる。
これをネームサーバがなくなるまで続ける。 それでも応答がない場合は、リトライ最大回数に達するまで 全てのネームサーバに問い合わせを繰り返す。
つまり、ABCのnameserverを定義していた場合は、
Aがタイムアウト⇒Bがタイムアウト⇒Cがタイムアウト⇒A⇒B⇒C....
のようにアクセスしていくことになりますね。
コメントをかく