【メモ】CentOS6でIPv6を無効化するには

【メモ】CentOS6でIPv6を無効化するには はてなブックマーク - 【メモ】CentOS6でIPv6を無効化するには


■概要

CentOS 6.x 上で LVS (ipvsadm) を有効にしようとしたが、手許のメモの方法では「FATAL: Error inserting ip_vs」と表示されて、ipvsadm コマンドを実行できなかった。無効化するためには複数の指定方法があるが、ipvsadm を有効にするには、 ipv6.conf で kernel モジュールを無効化する方法だった。

■状況

IPv6を無効化するため、CentOS の FAQ に記載されている手法 ( /etc/sysctl.conf にエントリを追加する方法 )を試みる。しかし、コマンドを実行した結果は、

# ipvsadm –help
FATAL: Error inserting ip_vs (/lib/modules/2.6.32-279.19.1.el6.x86_64/kernel/net/netfilter/ipvs/ip_vs.ko): Unknown symbol in module, or unknown parameter (see dmesg)
Can’t initialize ipvs: Protocol not available
Are you sure that IP Virtual Server is built in the kernel or as module?

このように ipvsadm コマンドが実行できない。

■有効な対処法

/etc/modprobe.d/ipv6.conf ファイルに、以下の記述を追加する。

options ipv6 disable=1

この記述があると、ipv6関連のモジュールは読み込まれるものの、OS上の動作としては無効化される。従って、ipvsadm コマンドも正常に実行できるようになる。

参考:How do I disable or enable the IPv6 protocol in Red Hat Enterprise Linux? – Red Hat Customer Portal
https://access.redhat.com/site/solutions/8709

■失敗した方法

/etc/modprobe.d/disable-ipv6.conf ファイルに、以下の記述を追加する。

install ipv6 /bin/true
blacklist ipv6

この方法でも ipv6 を無効化することは可能である。ただし、baacklist にするとモジュールをロードしないため、先の ipvsadm 実行時( Can’t initialize ipvs: Protocol not available ) や、一部ボンディング関係の設定でエラーが出ることが確認されている。

参考:Bug 531873 – bonding driver 3.4.0 requires ipv6 kernel modules
https://bugzilla.redhat.com/show_bug.cgi?id=531873

■結論

とにかく IPv6 を無効化したいのであれば、blacklist 記述でも良いが、ipvsadm 等で支障が出る場合がある。Red Hat Enterprise Linux の場合は、ipv6.conf において、

options ipv6 disable=1

このように記述する事が望ましい。