IPv4の名前解決をIPv6に優先させたいとき

Webサーバが意味不明の挙動を示しているとき、

Resolving localhost (localhost)... ::1, 127.0.0.1
Connecting to localhost (localhost)|::1|:8000... connected.
    :

と、IPv6側から接続しに行っているのに気付いた。

「そもそもこの子は外からv6接続できないんだから意味ないし、変更しよう!」

ということで以下のようにして変更。メモ。

/usr/share/doc/glibc-common-2.17/gai.conf に設定サンプルがある。この中にデフォルトが記述されている。

    :
#precedence  ::1/128       50
#precedence  ::/0          40
#precedence  2002::/16     30
#precedence ::/96          20
#precedence ::ffff:0:0/96  10
    :

::ffff:0:0/96 の IPv4 コンパチブルアドレスがいちばん安く見積もられているので、これを 100 くらいにしとく。設定変更は /etc/gai.conf に書く。なお、CentOS 7の場合は標準ではこのファイルは存在しない。

# echo 'precedence ::ffff:0:0/96  100' >> /etc/gai.conf

こんな感じ。ちなみに再起動しないとダメとのこと。よろしく哀愁。