У моего хоста есть ipv6, который отлично работает. Но мои контейнеры не могут подключиться к ipv6.
Docker версии 18.03.1-ce, сборка 9ee9f40
/ etc / network / interfaces (host)
iface eth0 inet6 static
address 2001:xxxx:5000:20::0010
netmask 64
gateway 2001:xxxx:5000:20::1
/etc/docker/daemon.json
{
"ipv6": true,
"fixed-cidr-v6": "2001:xxxx:5000:20::/64",
"default-gateway-v6": "2001:xxxx:5000:20::1"
}
sysctl ( host)
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding=1
docker run -it alpine ash -c "ip -6 addr show dev eth0; ip -6 route show; ping6 google.com"
259: eth0@if260: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 state UP
inet6 2001:xxxx:5000:20::242:ac11:2/64 scope global flags 02
valid_lft forever preferred_lft forever
inet6 fe80::42:acff:fe11:2/64 scope link tentative
valid_lft forever preferred_lft forever
2001:xxxx:5000:20::/64 dev eth0 metric 256
fe80::/64 dev eth0 metric 256
default via 2001:xxxx:5000:20::1 dev eth0 metric 1024
ff00::/8 dev eth0 metric 256
PING google.com (2a00:1450:4009:801::200e): 56 data bytes
Пинг просто зависает
Попробуйте передать - сетевой хост
в команду запуска докера. Это даст вашему контейнеру доступ ко всем интерфейсам на хосте.
Из докеров:
Примечание: --network = "host" дает контейнеру полный доступ к локальным системным службам, таким как D-bus, и поэтому считается небезопасным.
Измените / 64 на /80.[12173 impression/etc/docker/daemon.json[12174 sizes Возможно, вам потребуется включить
sysctl -w net.ipv6.conf.all.proxy_ndp=1