Debian / IPv6:默认路由在1800秒后过期,失去连接

我在vServer上运行Debian 8。 在安装docker和启用IPv6后,我注意到一些奇怪的东西。 我不知道docker是否与这个有关,只是在安装之后才发现这个问题。

我的默认路由configuration为在ca后过期。 1800secs。 我在这个超时之后实际上消失了。 这是当我(显然)宽松的IPv6连接。

root@wopr:~# ip -6 route xxxx:yyyy:zzz:xxxx::/64 dev eth0 proto kernel metric 256 fe80::/64 dev eth0 proto kernel metric 256 fe80::/64 dev br-5c1ce68ea951 proto kernel metric 256 fe80::/64 dev br-61f6bbfdbe87 proto kernel metric 256 [a lot more routed for my docker containers] default via fe80::1 dev eth0 proto ra metric 1024 expires 1259sec hoplimit 64 

为什么这个路由被configuration为在1800s后过期? 我可以在哪里configuration?

[edit 2016-05-14 16:08]

手动添加默认路由似乎工作得很好。 它保持放置。 但是我需要在启动后有一个不过期的路线。

[编辑于2016-05-14 16:13]

该机器正在由netcup.de托pipe的KVM主机上运行。 它正在使用我的提供商推荐的virtio驱动程序。

 root@wopr:~# cat /etc/network/interfaces auto lo iface lo inet loopback iface lo inet6 loopback auto eth0 iface eth0 inet dhcp iface eth0 inet6 static address xxxx:yyyy:zzz:xxxx::1 netmask 64 gateway fe80::1 

德尔说:

 root@wopr:~# virt-what kvm 

它看起来像我错过了net.ipv6.conf.default.autoconf被设置为1.现在我在/etc/sysctl.d中添加一个文件,以抑制在启动时:

 root@wopr:~# cat /etc/sysctl.d/ipv6.conf net.ipv6.conf.default.accept_ra=0 net.ipv6.conf.default.autoconf=0 net.ipv6.conf.all.accept_ra=0 net.ipv6.conf.all.autoconf=0 net.ipv6.conf.eth0.accept_ra=0 net.ipv6.conf.eth0.autoconf=0 

它看起来像我错过了net.ipv6.conf.default.autoconf被设置为1.在/etc/sysctl.d中添加一个文件来抑制这在开机解决了我的问题:

 root@wopr:~# cat /etc/sysctl.d/ipv6.conf net.ipv6.conf.default.accept_ra=0 net.ipv6.conf.default.autoconf=0 net.ipv6.conf.all.accept_ra=0 net.ipv6.conf.all.autoconf=0 net.ipv6.conf.eth0.accept_ra=0 net.ipv6.conf.eth0.autoconf=0 

现在我得到一个不会在启动时过期的defaualt路由。 问题解决了。 感谢您指引我正确的方向,桑德。

1800秒听起来像路由器广告的默认超时。

我的第一个猜测是,在接口上configuration了ipv6 nd ra suppress的networking上有一个Cisco路由器。 在这种模式下,路由器会在主机向RS请求一个RS时发送一个RA,但不会定期刷新。 主机在启动接口时发送一个RS,这可以解释为什么它在启动后得到默认路由。

这个设置是一个奇怪的无用的思科设置。 路由器要么定期询问+(Cisco的默认设置),要么根本不发送( ipv6 nd ra suppress all )发送RA。 中途设置ipv6 nd ra suppress导致这样的怪异行为,不应该使用。