Назад | Перейти на главную страницу

Как настроить подсеть IPv6 для использования в Docker?

У меня есть IP-адрес IPv6 на гостевом сервере, на котором работает докер.

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

Как настроить подсеть IPv6 для использования в Docker?

Спросите своего провайдера, интернет-провайдера или кого-либо еще о делегировании адресного пространства. Если у вас есть только /64 вам не хватает. В идеале вы должны иметь возможность запросить /48, хотя, если они будут скупы, они могут дать вам что-то вроде /56.

Мы можем изменить четвертое значение, начиная с правой стороны

Нет, не можешь. Ваша сеть - это /64, что означает, что половина битов используется для адреса хоста. Хост Docker и сеть, которую вы создаете в этой композиции, должны находиться в разных подсетях.

Но вы обе сети в одной подсети.

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

В 301b:e0d0:401:0348:: часть адреса определяет подсеть для /64 все после этого я использовал только для хостов в той же подсети.