LinuxでIPv6を無効化する(意外と苦戦)

8月 15, 2010

Linuxカーネル2.6は、デフォルトでIPv6が有効となっている。
(IPv6を)利用していないのにマシン上でIPv6が有効な状態になっていると、DNS絡み
で余計な問合せを行ってしまうため、通信速度が低下する場合があるらしい。

ちなみにOSインストール時にIPv6オフを選択していると、 /etc/sysconfig/networkに
その設定が入っているが、/etc/modprobe.confでは無効化されていないものらしい。
以下コマンドを実行してIPv6の有効/無効状態を確認できる。

# lsmod | grep ipv6
ipv6モジュールが表示される→有効

# netstat -an
:ffff:で始まるIPアドレスがある→有効

# ifconfig
inet6 addrで始まる箇所がある→有効

# modprobe -c | grep net-pf-10
net-pf-10 offがヒット→無効
※ヒットしなくても無効な場合がある


それとIPv6が有効だと、LogwatchにエラーMsgが出力されることがある。
XNTPDで”…..Cannot assign requested address:1 time(s)”とか。
DNSサーバだとNamedで”network unreachable resolving….”とか。

無効化の対応
一般的には概ね以下の対処方となるようだが、ディストリやそのバージョンによって
変わってくるようで、いろいろ見てたら訳がわからなくなった・・・

/etc/modprobe.conf or /etc/modprobe.d/modprobe.distに以下を記述する。

alias net-pf-10 off
alias ipv6 off  →ディストリのVerによっては不要っぽい


/etc/sysconfig/networkに以下を記述。
が、modprobeで設定されていれば不要らしい。念のため書いておくが。

NETWORKING_IPV6=no


設定ファイル編集後、OS再起動。
ネットワークの再起動でOKとされていることがあるが、環境によっては駄目っぽい。
(OS再起動は避けたいケースもあるよね・・・)

上記の設定でNGの場合に、以下で成功した例も見つけた。
CentOS5やRedHatLinux ES5ではこうなる??

install ipv6 /sbin/modprobe -n -i ipv6


参考
↓ ↓ ↓
IPv6の停止
どうすればIPv6を無効化できるか

IPv6の無効化、意外と苦戦、、、

追記
CentOS5のケース。”alias net-pf-10 off”でも”install ipv6 /sbin/modprobe -n -i ipv6″、
どっちでもイケるみたいだ。
“NETWORKING_IPV6=no”もいらないですね。

さらに追記
IPv6無効の設定を行いマシン再起動すると、Logwatchに以下のようなエラーが
吐き出されるかもしれない。

Errors
getaddrinfo:”::1″ invalid host address, ignored: 1 time(s)


これはntpサービス起動時に一度だけ発生するようだ。
IPv6は無効になったものの、関連の設定がntp.confに残っているためらしい。
対策は、/etc/ntp.conf内の”restrict -6 ::1″の行をコメントアウトする。

しつこく追記
上記の対応を行っていても、yum updateでOS全体のアップデートをかけると
上書きされてしまい、もとに戻ってしまう!(modprobe.distが書き換えられてしまうのだ)
対策としては、アップデート時にIPv6関係のモジュールを無効にするか、
アップデート後に再びmodprobe.distに無効化の記述をして再起動するか、となる。

Categories: Linux

No Responses so far | Have Your Say!

Comments are closed.