Networking

Debian / IPv6:預設路由在 1800 秒後過期,失去連接

  • March 13, 2018

我在虛擬伺服器上執行 Debian 8。安裝 docker 並啟用 IPv6 後,我注意到一些奇怪的事情。我不知道docker是否與此有關,只是我安裝後注意到了這個問題。

我的預設路由配置為在 ca 之後過期。1800 秒。我實際上在超時後消失了。這是我(顯然)失去 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

為什麼將路由配置為在 1800 秒後過期?我在哪裡可以配置這個?

$$ edit 2016-05-14 16:08 $$

手動添加預設路由似乎工作得很好。它保持不變。但是我需要在啟動後有一條不會過期的路線。

$$ edit 2016-05-14 16:13 $$

該機器在 netcup.de 託管的 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

virt 說:

root@wopr:~# virt-what
kvm

$$ edit 2016-05-14 15:34 $$ 看起來我錯過了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

現在我得到了一個不會在啟動時過期的預設路由。問題解決了。謝謝你指出我正確的方向,桑德。

引用自:https://serverfault.com/questions/776770