なんとIPv6を無効にするには、ネットワークインタフェース(eth0, loなど)の中の設定だけじゃだめなんだ。
以下の設定が必要だとわかった。
1. /etc/sysconfig/networkに以下を追加。
NETWORKING_IPV6=no
2. /etc/modprobe.d/disable-ipv6.confファイルを作成して以下を書く。
options ipv6 disable=1
3. 以下を実行。
chkconfig ip6tables off
4. 再起動。
WordPressのプラグインのアップデート操作がうまく動かないので気づいた。
これは同一サーバ内へのftp接続で行われるんだけど、接続できないといエラーが出た。ftpのログにはセッションの形跡がない。
全然原因が分からないのでtcpdumpでセッションを眺めると、なんとIPv6でセッションを張ろうとしているし。
ネットワークインタフェース(eth0, lo)のIPv6は無効にしてあるけど、これだけでは駄目らしい。
なんでIPv6が使われる場合とそうでない場合があるのかもよく分からず。コマンドラインからftpへセッションを張ってもIPv6にはならない。WordPressの中のPHPからのセッション(それもホスト名指定時だけで、直IPでは問題なし)がなぜIPv6になったのかはよく分からないけど、完全にIPv6を無効にすることで問題解決。