在 docker 容器中启用 ipv6 转发

Enable ipv6 forwarding in docker container

我正在尝试使用 Docker 在两个网络之间为 IPv6 设置防火墙(我知道还有其他技术可以做到这一点,但我想使用 docker)。我 运行 遇到的主要问题是我找不到在防火墙容器内启用 IPv6 转发的方法。

从 dockerd 参考资料[1] 我知道有一些选项可以为 IPv4 启用此功能,但有 none 用于 IPv6。是这个功能还不被支持,还是我做错了什么?

我的 daemon.json 看起来像这样:

{
  "ipv6": true,
  "fixed-cidr-v6": "2001:db8:1::/64",
  "ip-forward": true
}

[1] https://docs.docker.com/engine/reference/commandline/dockerd/

在您的 docker-compose.yml 添加:

sysctls:
  net.ipv6.conf.all.disable_ipv6: 0
  net.ipv6.conf.all.forwarding: 1

在我修改我的 /etc/docker/daemon.json 以包含 experimentalip6tables 后,这对我有用,如下所示:

{
    "ipv6": true,
    "experimental": true,
    "ip6tables": true,
    "fixed-cidr-v6": "fd07:a:b:c::/64",
    ...
}