SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

CentOS6で名前解決に時間がかかるとき

問題

CentOS6で、wgetやtelnetなどすると5,6秒待たされるんですけど、どうなってるんですか?

同じネットワーク内の CentOS5 のサーバーは問題ないのに。

clock DNS timeout

答え

/etc/resolv.conf に、以下のように、options single-request もしくは single-request-reopen を設定すると解決するでしょう。

nameserver 111.22.333.444 ← これは環境に応じて
nameserver 555.666.777.888 ← これは環境に応じて
options single-request-reopen

理由

glibc 2.10 news にあるように、glibc 2.9 で v4/v6 並列リクエストが実装された。

並列リクエストは賢くて高速になるのであろうが、それに対応できないFirewallがあるらしく、並列リクエストの片方の応答が捨てられてしまうなどの現象が発生し、かえって名前解決に時間がかかる。

glibc 2.10 で問題回避のためのオプション single-request が実装された。
glibc 2.11 で問題回避のための 2 つ目のオプション single-request-reopen が実装された。
問題のある環境では、このオプションを使いたまえと。

問題ない環境で稼働しているサーバーには関係のない話でした。

参考

glibc 2.10 news – http://udrepper.livejournal.com/20948.html

http://www.kunitake.org/chalow/2012-11-02-1.html

http://eyes.hatenablog.jp/entry/2012/03/19/104224

関連するメモ

コメント