CentOS6で名前解決に時間がかかるとき
問題
CentOS6で、wgetやtelnetなどすると5,6秒待たされるんですけど、どうなってるんですか?
同じネットワーク内の CentOS5 のサーバーは問題ないのに。
答え
/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
コメント