如何获取在 Docker 中使用的 IPv6 子网?

如何获取在 Docker 中使用的 IPv6 子网?

我在运行 docker 的客户服务器上有一个 IPv6 IP

301b:e0d0:401:0348:lk19:7:0:2

配置在/etc/resolv.conf

domain my.domain

nameserver ::1
nameserver 301b:e0d0:401:0348:505:7:0:2
nameserver 301b:e0d0:401:0348:506:7:0:2

如何获取其子网?我们可以更改从右侧开始的第四个值。但保持其他值不变。

我尝试在我的网络中为其设置子网。在我的 docker-compose.yml 文件中进行设置

networks:
  default:
    driver: bridge
    enable_ipv6: true
    ipam:
      config:
        - subnet: 301b:e0d0:401:0348::/64

services:
  ipv6nat:
    container_name: ipv6nat
    restart: always
    image: robbertkl/ipv6nat
    privileged: true
    network_mode: host
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - /lib/modules:/lib/modules:ro

但不起作用。无法在这种格式的容器中使用 ping6 到其他网络

# ping6 301b:e0d0:401:0348:[DIFFERENT_VALUE_HERE]:7:0:2
unreachable

答案1

如何获取在 Docker 中使用的 IPv6 子网?

向您的提供商、ISP 或任何其他机构请求地址空间的委派。如果您只有一个,则地址空间/64不够。理想情况下,您应该能够请求一个/48,但如果他们吝啬,他们可能会给您一个类似的东西/56

我们可以将第四个值从右侧开始改变

不可以。您的网络是/64,这意味着一半的位用于主机地址。Docker 主机和您在该组合中创建的网络必须位于单独的子网中。

但你们两个网络都在同一个子网上。

301b:e0d0:401:0348:[DIFFERENT_VALUE_HERE]:7:0:2

地址的这一301b:e0d0:401:0348::部分定义了之后的所有内容的子网/64,我仅将其用于同一子网上的主机。

相关内容