首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用坞式组合设置IPv6

如何用坞式组合设置IPv6
EN

Server Fault用户
提问于 2019-04-25 08:54:48
回答 3查看 10K关注 0票数 3

我在DigitalOcean上使用Ubuntu18.04,打开IPv6:

代码语言:javascript
复制
PUBLIC IPV6 ADDRESS:
xxxx:xxxx:2:d0::216f:3001
PUBLIC IPV6 GATEWAY:
xxxx:xxxx:2:d0::1
CONFIGURABLE ADDRESS RANGE:
xxxx:xxxx:2:d0::216f:3000 - xxxx:xxxx:2:d0::216f:300f

根据这个页面:https://docs.docker.com/v17.09/engine/userguide/networking/default_网络/ipv6 6/#码头-ipv6 6-集群

这样放置16个IPv6地址是正确的吗?

代码语言:javascript
复制
{
  "ipv6": true,
  "fixed-cidr-v6": "xxxx:xxxx:2:d0::216f:3000/124"
}

或者,使用这些(就像192.168.0.x之类的东西)还好吗?

代码语言:javascript
复制
{
  "ipv6": true,
  "fixed-cidr-v6": "2001:db8::c008/125"
}

不管怎么说,我已经试过第一个了。

代码语言:javascript
复制
docker run -d --name ipv6test alpine ash -c "ping6 2606:4700:4700::1111"

我“码头检查”的IPv6地址。我创造了NDP的记录:

代码语言:javascript
复制
ip -6 neigh add proxy xxxx:xxxx:2:d0::216f:3004 dev eth0

在这种情况下,容器可以与外部世界通信。

测试结束。我想将IPv6应用到我的项目中。它从船坞-合成开始。

根据这个页面:https://docs.docker.com/compose/compose-file/#ipv4_地址-ipv6 6_地址

代码语言:javascript
复制
version: "3.7"

services:
  app:
    image: nginx:alpine
    networks:
      app_net:
        ipv6_address: xxxx:xxxx:2:d0::216f:3010

networks:
  app_net:
    ipam:
      driver: default
      config:
        - subnet: "xxxx:xxxx:2:d0::216f:3000/124"

在容器内,无法连接:

代码语言:javascript
复制
# ping6 2606:4700:4700::1111
PING 2606:4700:4700::1111 (2606:4700:4700::1111): 56 data bytes
ping6: sendto: Address not available

我错过了什么吗?

谢谢。

EN

回答 3

Server Fault用户

发布于 2021-01-03 19:21:17

可能有点晚了,但这是在DigitalOcean上对我起作用的设置:

  1. 创建/etc/docker/daemon.json
代码语言:javascript
复制
{
    "ipv6": true,
    "fixed-cidr-v6": "<Your IPv6 address range start in DO console>/124"
}
  1. sudo systemctl restart docker
  2. 添加到您的docker-compose.yml中:
代码语言:javascript
复制
    sysctls:
      - "net.ipv6.conf.all.disable_ipv6=0"

基本上,默认情况是禁用IPv6,我们需要在sysctl中启用它。

编辑:实际上,这允许码头容器获得一个IPv6地址并执行IPv6名称解析,但不知何故它无法发送数据(网络无法到达)。

虽然码头容器直接以docker启动,它运行在默认的bridge网络上,能够访问外部IPv6主机,但docker-compose启动的码头容器在其专用网络中运行,因此可能需要更多的路由工作。我的用例实际上是有限的(socat作为IPv4到IPv6代理),所以我只是直接使用主机网络,包括:

代码语言:javascript
复制
    network_mode: host
票数 3
EN

Server Fault用户

发布于 2021-02-26 11:49:54

我的个人设置,这很管用。它使用docker的内部默认桥,而不是用户提供的网络。

  1. /etc/docker/daemon.json
代码语言:javascript
复制
{
    "ipv6": true,
    "fixed-cidr-v6": "2a02:168:7a0e:11::/64"
}
  1. docker-compose.yml
代码语言:javascript
复制
version: '3.3'

services:
  shell:
    networks:
      - bridge
    image: centos:8

networks:
  bridge:
    external: true
  1. 测试
代码语言:javascript
复制
docker-compose run --rm shell
  1. 集装箱内
代码语言:javascript
复制
[root@dfeb2fe7917d /]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
218917: eth0@if218918: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 2a02:168:7a0e:11:0:242:ac11:2/64 scope global nodad 
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe11:2/64 scope link 
       valid_lft forever preferred_lft forever
[root@dfeb2fe7917d /]# ping6 -c 3 google.ch
PING google.ch(zrh04s15-in-x03.1e100.net (2a00:1450:400a:803::2003)) 56 data bytes
64 bytes from zrh04s15-in-x03.1e100.net (2a00:1450:400a:803::2003): icmp_seq=1 ttl=114 time=0.774 ms
64 bytes from zrh04s15-in-x03.1e100.net (2a00:1450:400a:803::2003): icmp_seq=2 ttl=114 time=1.12 ms
64 bytes from zrh04s15-in-x03.1e100.net (2a00:1450:400a:803::2003): icmp_seq=3 ttl=114 time=1.13 ms

--- google.ch ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 4ms
rtt min/avg/max/mdev = 0.774/1.008/1.128/0.165 ms
票数 3
EN

Server Fault用户

发布于 2021-01-26 18:16:12

ipv6_address: xxxx:xxxx:2:D0:216f:3010看起来不像处于同一子网:xxxx:xxxx:2:D0:216f:3000/124

尝试类似xxxx:xxxx:2:d0:216f:3000-f之类的东西。

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

https://serverfault.com/questions/964533

复制
相关文章

相似问题

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