在 Windows 7 中,我的电脑可以自动获取 IPV6 全局地址并使用 IPV6 网络,但在 Ubuntu Natty 中,我找不到如何让无状态配置工作。我的网络是大学校园网,所以不需要隧道。我认为如果一件事可以在 Windows 中悄无声息地成功完成,那么在 Linux 中也应该不是不可能的。
我尝试手动编辑 /etc/network/interfaces 并使用静态 IPV6 地址,我可以通过这种方式使用 IPV6,但我只想使用自动配置。
我找到了这个帖子: https://superuser.com/questions/33196/how-to-disable-autoconfiguration-on-ipv6-in-linux
并尝试过
sudo sysctl -w net.ipv6.conf.all.autoconf=1
sudo sysctl -w net.ipv6.conf.all.accept_ra=1
但没有任何运气。
我在 dmesg 中收到此信息:
root@natty-150:~# dmesg |grep IPv6
[ 26.239607] eth0: no IPv6 routers present
[ 657.365194] eth0: no IPv6 routers present
[ 719.101383] eth0: no IPv6 routers present
[32864.604234] eth0: no IPv6 routers present
[33267.619767] eth0: no IPv6 routers present
[33341.507307] eth0: no IPv6 routers present
我不确定这是否重要,但后来我设置了一个静态 IPv6 地址(带网关)并重新启动网络,我 ping6 ipv6.google.com 并且 ipv6 网络正常。这次在 dmesg 中添加了一个条目
[33971.214920] eth0: no IPv6 routers present
所以我猜没有 IPv6 路由器的抱怨无关紧要?
这是 ipv6 转发设置。但我猜转发是用于 radvd 的东西?
root@natty-150:/# cat /proc/sys/net/ipv6/conf/eth0/forwarding
0
在 ajmitch 提到转发设置之后,我将其添加到 sysctl.conf 文件中:
net.ipv6.conf.all.autoconf = 1
net.ipv6.conf.all.accept_ra = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.lo.forwarding = 1
net.ipv6.conf.eth0.forwarding = 1
然后运行 sysctl -p /etc/init.d/networking restart 但这仍然不起作用。
答案1
禁用转发应该可以解决您的问题。
暗示:只有路由器需要转发。
另一个提示:启用转发 = 禁用无状态自动配置
答案2
一种选择是升级到 Oneiric(Ubuntu 11.10)并使用其 IPv6auto
方法/etc/network/interfaces
iface eth0 inet6 auto
您还需要一个auto eth0
子句,因此最小可行 IPv6 配置将如下所示:
auto eth0
iface eth0 inet6 auto