Scenario:
Docker version 19.03.8, build afacb8b
Two docker nodes (east/west) in swarm as managers. Overlay network created with specified IPv6 and IPv4 subnets. Alpine containers spawned against custom network receive unique IPv4 addresses, but not IPv6 addresses.
Assume ipv6 support and daemon.json set correctly.
{
"ipv6": true,
"fixed-cidr-v6": "fc0c::/64"
}
Create network, visible on both nodes.
docker network create --attachable --driver overlay --ipv6 --subnet fc0c:1::/120 --subnet 10.10.10.0/24 --opt encrypted webserver-net
From node 1 (west) deploy Alpine
docker run -ti --name west1 -d --rm --network webserver-net alpine
docker run -ti --name west2 -d --rm --network webserver-net alpine
docker run -ti --name west3 -d --rm --network webserver-net alpine
From node 2 (east) deploy Alpine
docker run -ti --name east1 -d --rm --network webserver-net alpine
docker run -ti --name east2 -d --rm --network webserver-net alpine
docker run -ti --name east3 -d --rm --network webserver-net alpine
Now inspect the IP addresses. Note that ipv4 is unique and staggard, but ipv6 steps on one another :
East
[root@east project]# docker inspect east1 | egrep "IPv4Address|GlobalIPv6Address"
"GlobalIPv6Address": "",
"IPv4Address": "10.10.10.2"
"GlobalIPv6Address": "fc0c:1::3",
[root@east project]# docker inspect east2 | egrep "IPv4Address|GlobalIPv6Address"
"GlobalIPv6Address": "",
"IPv4Address": "10.10.10.4"
"GlobalIPv6Address": "fc0c:1::4",
[root@east project]# docker inspect east3 | egrep "IPv4Address|GlobalIPv6Address"
"GlobalIPv6Address": "",
"IPv4Address": "10.10.10.5"
"GlobalIPv6Address": "fc0c:1::5",
West
[root@west ~]# docker inspect west1 | egrep "IPv4Address|GlobalIPv6Address"
"GlobalIPv6Address": "",
"IPv4Address": "10.10.10.7"
"GlobalIPv6Address": "fc0c:1::3",
[root@west ~]# docker inspect west2 | egrep "IPv4Address|GlobalIPv6Address"
"GlobalIPv6Address": "",
"IPv4Address": "10.10.10.9"
"GlobalIPv6Address": "fc0c:1::4",
[root@west ~]# docker inspect west3 | egrep "IPv4Address|GlobalIPv6Address"
"GlobalIPv6Address": "",
"IPv4Address": "10.10.10.11"
"GlobalIPv6Address": "fc0c:1::5",
Notice how fc0c:1::3 , 4 , and 5 are double-assigned? On the node, each are able to ping6 eachother, but they are not able to ping6 across the fabric. IPv4 ping between containers is no problem, full mesh.
Any ideas? Is this a bug?