从一个接口禁用 inet6 链路本地地址

从一个接口禁用 inet6 链路本地地址

有人知道我如何才能在 CentOS 5.6 上仅从一个接口禁用链路本地地址吗?这是我尝试过的:

root-> egrep -i ipv6 /etc/sysconfig/network-scripts/ifcfg-eth0
IPV6INIT=no
IPV6_AUTOCONF=no
IPV6_ROUTER=no

root-> egrep -i ipv6 /etc/sysctl.conf 
#disable ipv6 from eth0
net.ipv6.conf.eth0.disable_ipv6 = 1
net.ipv6.conf.eth0.autoconf = 0

root-> ip -f inet6 a show dev eth0
 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 fe80::20c:29ff:fe3c:16af/64 scope link 
       valid_lft forever preferred_lft forever


root-> ip -f inet6 a del fe80::20c:29ff:fe3c:16af/64 dev eth0

root-> ip -f inet6 a show dev eth0

这里没有什么

但随后地址返回:

root-> ifdown eth0 && ifup eth0

root-> ip -f inet6 a show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 fe80::20c:29ff:fe3c:16af/64 scope link 
       valid_lft forever preferred_lft forever

谢谢。

答案1

CentOS 网络脚本会执行一些与你尝试执行的操作相反的操作。我的猜测是,如果你按照之前的步骤操作,直到:

ifdown eth0 && ifup eth0

而是运行:

ifconfig eth0 down && ifconfig eth0 up

你应该没问题。ifdown 和 ifup 是系统脚本,它们的作用远不止打开和关闭接口。我建议编写自己的自定义脚本来修改接口的属性,而不是使用 ifdown/ifup。

或者将其作为 CentOS 的错误提出,因为在这种情况下,很可能他们的系统脚本并没有严格执行他们应该做的事情。

相关内容