AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 776770
Accepted
lajuette
lajuette
Asked: 2016-05-15 05:40:32 +0800 CST2016-05-15 05:40:32 +0800 CST 2016-05-15 05:40:32 +0800 CST

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

  • 772

我在虚拟服务器上运行 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 秒后过期?我在哪里可以配置这个?

[编辑 2016-05-14 16:08]

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

[编辑 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

[编辑 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
routing networking debian ipv6 docker
  • 3 3 个回答
  • 4816 Views

3 个回答

  • Voted
  1. Best Answer
    lajuette
    2016-05-15T07:59:10+08:002016-05-15T07:59:10+08:00

    看起来我错过了 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
    

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

    • 9
  2. Sander Steffann
    2016-05-15T06:20:21+08:002016-05-15T06:20:21+08:00

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

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

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

    • 5
  3. oerdnj
    2018-03-14T02:29:41+08:002018-03-14T02:29:41+08:00

    实际上,标记的答案是错误的。问题是 docker 在接口上启用转发,这使得 Linux 内核忽略该特定接口上的 RA,请参阅:https ://www.mattb.net.nz/blog/2011/05/12/linux-ignores -ipv6-router-advertisements-when-forwarding-is-enabled/

    因此,在这种情况下,正确的解决方案是设置accept_ra为2:

    # cat /etc/sysctl.d/ipv6.conf
    net.ipv6.conf.default.accept_ra=2
    net.ipv6.conf.all.accept_ra=2
    net.ipv6.conf.eth0.accept_ra=2
    

    而不是完全禁用路由发现。

    • 1

相关问题

  • 无法通过 Ubuntu VPN 访问外部网络

  • 将路由永久添加到 Solaris 10

  • Quagga 套件中的 ./configure --disable-zebra 代表什么?

  • 使用特定接口进行出站连接(Ubuntu 9.04)

  • Linux TC/策略路由工具

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve