无需重启即可重新启用 IPv6 吗?

无需重启即可重新启用 IPv6 吗?

/etc/modprobe.d/disable-ipv6我有一台运行 CentOS 5.8 的机器。通过创建包含以下内容的文件禁用了 IPv6 :

options ipv6 disable=1

删除文件并重新启动计算机应该会重新启用 IPv6。有没有无需重新启动即可启用 IPv6 的方法?


附加信息:

我发现了一些内容echo 0 > /proc/sys/net/ipv6/conf/interface/disable_ipv6,但是/proc/sys/net/ipv6这台机器上却不存在。

sysctl未显示任何有关 IPv6 的信息:

# sysctl -a | grep -i ipv6 | wc -l
0

ipv6内核模块加载:

#lsmod | grep ipv6
ipv6                  437857  1 cnic

尝试删除它会引发错误:

# modprobe -vnr ipv6
FATAL: Module ipv6 is in use.

# modprobe --show-depends ipv6
insmod /lib/modules/2.6.18-308.13.1.el5/kernel/crypto/crypto_api.ko 
insmod /lib/modules/2.6.18-308.13.1.el5/kernel/net/xfrm/xfrm_nalgo.ko 
insmod /lib/modules/2.6.18-308.13.1.el5/kernel/net/ipv6/ipv6.ko

Modprobe 表示crypto_api依赖于 ipv6 模块。在正在运行的 Web 服务器上卸载并加载该模块听起来并不是一个好主意。

rmmod按照@Zoredache 的建议尝试了:

# rmmod -v ipv6
ERROR: Module ipv6 is in use by cnic

答案1

无需重启即可重新加载 ipv6 驱动程序

$ /sbin/lsmod |grep ipv
ipv6                  438625  3 rdma_cm,ib_addr,cnic

# loop through all the dependent modules, and unload them 
$ rmmod cnic ...
$ rmmod rdma_cm

$ modprobe ipv6 disable=0

您可能需要关闭网络,但这可以避免重新启动。

答案2

看起来这是不可能的。我最终重启了机器以启用 IPv6。我希望有人能证明我错了,因为我有一大堆其他机器以同样的方式配置。

答案3

我已经让它工作了,

前:

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever

做这个 :

$ modprobe ipv6
$ sysctl net.ipv6.conf.all.disable_ipv6=0

后:

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever

希望这可以帮助

相关内容