首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为停靠器中断启用IPv6主机IPv6连接,导致没有IPv6连接

为停靠器中断启用IPv6主机IPv6连接,导致没有IPv6连接
EN

Server Fault用户
提问于 2015-10-16 16:37:06
回答 1查看 1.2K关注 0票数 4

前言:我是码头和网络方面的新手,尤其是IPv6。是一个软件开发人员,而不是系统/网络管理员。

我正在Linode上运行Arch,并希望设置带有IPv6支持的Docker。我可以使用IPv4,虽然我还没有解决这个问题,但我仍然使用IPv4,但我真的很期待启用IPv6。

由于我使用的是systemd-networkd,所以我必须启用IPForward=kernel,我已经这样做了。

如果Docker没有运行,显然,IPv6为我的Arch工作。

如果我运行的是没有IPv6的Docker,Arch有IPv6连接。

现在,如果我在启用IPv6:docker daemon --ipv6 --fixed-cidr-v6="XXXXX/64" -H fd://的情况下运行Docker,它会破坏我的Arch的IPv6连接,并且它在容器中也不工作。

我发现的一个不同之处是,如果没有IPv6 for Docker,那么我的拱门上就有IPv6的默认路径:

代码语言:javascript
复制
[root@x ~]# ip -6 route show
2a01:7e00::/64 dev enp0s4  proto kernel  metric 256  pref medium
fe80::/64 dev enp0s4  proto kernel  metric 256  pref medium
fe80::/64 dev docker0  proto kernel  metric 256  pref medium
default via fe80::1 dev enp0s4  proto ra  metric 1024  expires 73sec hoplimit 64 pref medium

启用IPv6时,我将看到以下内容:

代码语言:javascript
复制
[root@x ~]# ip -6 route show
2a01:7e00::/64 dev enp0s4  proto kernel  metric 256  pref medium
2a01:7e00::/64 dev docker0  metric 1024  pref medium
fe80::/64 dev enp0s4  proto kernel  metric 256  pref medium
fe80::/64 dev docker0  proto kernel  metric 256  pref medium

但是,手动添加默认的IPv6路由:

代码语言:javascript
复制
ip -6 route add default via fe80::1 dev enp0s4

为我的主机启用IPv6,但仍然保留没有IPv6连接的容器。

信息和我尝试过的

  • 为了测试连接,我使用ping6
  • 充当我的测试虚拟的容器是base/archlinux
  • 手动添加默认的IPv6路由到主机后,重新启动坞-没有成功。
  • 通过IPv6进行默认的docker0路由会使主机和容器都没有连接性。
  • 在任何情况下,我都不能从容器中按主机的IPv6地址来平分主机。
  • 我跟踪了IPv6 6码头指南,并试图将我的停靠守护进程的IPv6子网更改为80,这并没有帮助(不过,考虑到我的专业知识,我可能做错了一些事情)。
  • 我还试图设置(如指南中所述) sysctl net.ipv6.conf.eth0.accept_ra=2,但是,在容器上设置错误时使用:sysctl: setting key "net.ipv6.conf.eth0.accept_ra": Read-only file system。在主机上什么都没变。
  • 事实上,在默认情况下,没有针对主机的IPv6路由,这使我认为这是从Docker的角度出发的。

启用IPv6时来自主机的IP配置:

代码语言:javascript
复制
[root@apitecture ~]# ip addr show dev enp0s4; ip addr show dev docker0; ip -6 route show
3: enp0s4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether f2:3c:91:ae:1a:0a brd ff:ff:ff:ff:ff:ff
    inet xxx.xxx.xxx.xxx/24 brd xxx.xxx.xxx.255 scope global enp0s4
       valid_lft forever preferred_lft forever
    inet6 2a01:7e00::xxxx:xxxx:xxxx:xxxx/64 scope global
       valid_lft 2590589sec preferred_lft 603389sec
    inet6 fe80::f03c:91ff:feae:1a0a/64 scope link
       valid_lft forever preferred_lft forever
13: docker0@NONE: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state LOWERLAYERDOWN group default
    link/ether 02:42:cd:3d:04:60 brd ff:ff:ff:ff:ff:ff
    inet 172.17.42.1/16 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:cdff:fe3d:460/64 scope link
       valid_lft forever preferred_lft forever
    inet6 fe80::1/64 scope link
       valid_lft forever preferred_lft forever
2a01:7e00::/64 dev enp0s4  proto kernel  metric 256  pref medium
2a01:7e00::/64 dev docker0  metric 1024  pref medium
fe80::/64 dev enp0s4  proto kernel  metric 256  pref medium
fe80::/64 dev docker0  proto kernel  metric 256  pref medium

启用IPv6时,容器中的IP配置:

代码语言:javascript
复制
[root@x ~]# docker run -it --rm base/archlinux bash -c "ip -6 addr show dev eth0; ip -6 route show"
24: eth0@if25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
    inet6 2a01:7e00::xxx:xxxx:2/64 scope global tentative
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe11:2/64 scope link tentative
       valid_lft forever preferred_lft forever
2a01:7e00::/64 dev eth0  proto kernel  metric 256
fe80::/64 dev eth0  proto kernel  metric 256
default via fe80::1 dev eth0  metric 1024

xxxx是隐藏的,希望我不必公开我的公开地址。

如何解决这个问题以启用IPv6 for Docker?

EN

回答 1

Server Fault用户

发布于 2022-02-11 04:06:21

我也遇到过类似的问题。我的设置是在Debian中运行的对接映像,它再次运行在Proxmox上。

/etc/docker/daemon.json的官方编辑方式对我来说从来都不管用。更糟糕的是,不管是否编辑这个文件,坞桥都会破坏我的主机的ipv6连接。

对于我的例子,ip -6 route add default via xxxx dev eth0,然后在docker-compose.yml中添加network_mode: "host",为主机和容器启用ipv6访问。

但是,对于添加ipv6路由部分,fe80::1并不适用于我。当码头守护进程关闭时,我必须采取任何默认的ipv6路由。唯一的缺点是,每次LXC重新启动时,都必须执行该命令。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/729488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档