resolv.conf

domain と search について

man を読んでも大したこと書いてないし、日英ともに外部サイトは「ホントかよ」みたいな内容が多い。 とりあえず手元で動かしてどうなるか確認。 「これらのキーワードが 2 つ以上記述されている場合、最後に記述されているものが有効になる。」これが正しいかの再確認だろう。

▼ domain が下に来る resolv.conf

resolv.conf

search sear1.yokohei.corp sear2.yokohei.corp  
domain dom.yokohei.corp  

pcap 結果

17:12:36.971234 IP 172.31.0.26.59715 > 172.31.0.2.domain: 14689+ A? yokohei.dom.yokohei.corp. (42)
17:12:36.990460 IP 172.31.0.2.domain > 172.31.0.26.59715: 14689 NXDomain 0/1/0 (117)
17:12:36.990500 IP 172.31.0.26.35686 > 172.31.0.2.domain: 62761+ A? yokohei. (25)
17:12:36.991055 IP 172.31.0.2.domain > 172.31.0.26.40505: 46135 NXDomain 0/1/0 (129)

domain を下に書いてるので、 domain だけを利用。 search は使われない。

▼ search が下に来る resolv.conf

resolv.conf

domain dom.yokohei.corp  
search sear1.yokohei.corp sear2.yokohei.corp  

pcap 結果

search を下に書いてるので、 search だけを利用。 domain は使われない。

▼ domain と ndots について

domain オプションについても ndots は考慮される模様。 また、 ndots により先にサフィックスをつけたものを検索して、結果がなければ domain を考慮しないもとの問い合わせクエリを試行するようだ。

resolve.conf

curl yokohei.com 結果

attempts について

タイムアウトしてリトライし、 attempts 回目でも失敗した場合は search のサフィックスを付加して再度要領でクエリを投げる。

2 秒ごとに localdomain.test. の A レコードを問い合わせるクエリを 2 秒ごとに 5 回投げ、 5 回目で終了。 その後、引き続き 2 秒ごとに localdomain.test.search.yokohei.corp. へのクエリを 5 回。

pcap 結果

nameserver について

▼ 複数 nameserver

resolv.conf

pcap 結果

上の nameserver -> timeout 秒 -> 次の nameserver -> timeout 秒 -> ... といった流れになる。 nameserver 数 × attempts 回繰り返す。

resolv.conf

pcap 結果

上の 複数 nameserver のときのものを実施し、その後サフィックスを付けて同じ流れ。

rotate について

resolv.conf

この設定で、 2 つの terminal から curl yokohei-1st.comcurl yokohei-2nd.com を実施。 pcap 結果を見ると、最初に問い合わせるネームサーバがラウンドロビンになるように見える。 その後は、普通に nameserver を交互に。

pcap 結果