Jump to content
bcjenkins

How to Enable IPv6 in Dockers [Solved]

9 posts in this topic Last Reply

Recommended Posts

Hi all, 

 

I am using 6.4.0-rc14. I am hoping someone can share how to enable IPv6 in a Docker using the br0 interface. I have a few dockers running and none of them seem to have IPv6 addresses or support DHCPv6. I wasn't able to find this information in my searches. 

 

Additional info - docker network inspect br0 shows an IPv6 address assigned to the container. If I exec into the Docker images, I do not see the IPv6 info in /etc/hosts. 

Edited by bcjenkins

Share this post


Link to post

Does your br0 interface have an IPv6 address?

Upon startup of Docker in unRAID 6.4 it will make automatically both IPv4 and IPv6 available to containers for those interfaces which have an IPv4 and/or IPv6 address assigned.

Docker will use its own address manager to assign an IPv6 address to containers.

docker inspect Plex
...
...
"NetworkSettings": {
    "Bridge": "",
    "SandboxID": "6edeedd5c9eaaf3958de4bbc44e0647ec2e207c1de3382abe11953e3189d003c",
    "HairpinMode": false,
    "LinkLocalIPv6Address": "",
    "LinkLocalIPv6PrefixLen": 0,
    "Ports": {},
    "SandboxKey": "/var/run/docker/netns/6edeedd5c9ea",
    "SecondaryIPAddresses": null,
    "SecondaryIPv6Addresses": null,
    "EndpointID": "",
    "Gateway": "",
    "GlobalIPv6Address": "",
    "GlobalIPv6PrefixLen": 0,
    "IPAddress": "",
    "IPPrefixLen": 0,
    "IPv6Gateway": "",
    "MacAddress": "",
    "Networks": {
        "br0.5": {
            "IPAMConfig": {
               "IPv4Address": "10.0.105.81"
            },
            "Links": null,
            "Aliases": [
                "7d9ecd1d8bcf"
            ],
            "NetworkID": "f5dc003547e8642d7b8d0314a20daf30528fe78ecb3271d1a71e9e0944b49717",
            "EndpointID": "7131f80c3a527f595f87b4e7fdb0194737e44bb49362425c77a58b5ad7896872",
            "Gateway": "10.0.105.1",
            "IPAddress": "10.0.105.81",
            "IPPrefixLen": 24,
            "IPv6Gateway": "2a02:a448:32d5:105::1",
            "GlobalIPv6Address": "2a02:a448:32d5:105::7",
            "GlobalIPv6PrefixLen": 64,
            "MacAddress": "02:42:0a:00:69:51",
            "DriverOpts": null

 

Share this post


Link to post

It does - 

 

Quote

"NetworkSettings": {
            "Bridge": "",
            "SandboxID": "437f1dc07741a7ef2c4c65a1563530502fd62e217419a4a4805c5f8d084f638d",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/437f1dc07741",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "br0": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": [
                        "14de42dd79bb"
                    ],
                    "NetworkID": "d1883577af3eafb11dd42bd844845968b53480bae0839d4b645f431fd34e84cf",
                    "EndpointID": "35aa39e1d6fd14ffc68a78cd7837fcb8a8fee8bc3383280feb80332ce645801d",
                    "Gateway": "192.168.43.1",
                    "IPAddress": "192.168.43.2",
                    "IPPrefixLen": 24,
                    "IPv6Gateway": "2605:a000:IPv6",
                    "GlobalIPv6Address": "2605:a000:IPv6",
                    "GlobalIPv6PrefixLen": 64,
                    "MacAddress": "02:42:c0:a8:2b:02",
                    "DriverOpts": null
                }
            }
        }

IPv6 changed on purpose. 

Share this post


Link to post
2 minutes ago, bcjenkins said:

  "IPv6Gateway": "2605:a000:IPv6",
  "GlobalIPv6Address": "2605:a000:IPv6",

 

These are not valid IPv6 addresses. How is your br0 configured for IPv6?

 

Share this post


Link to post
1 minute ago, bonienl said:

 

These are not valid IPv6 addresses. How is your br0 configured for IPv6?

 

I changed them in the post because they are publicly routable and I wished to obfuscate them. They are valid in the output. 

Edited by bcjenkins

Share this post


Link to post

I see :)

 

The above shows your container has an IPv6 address assgined. Try the following with your container:

docker exec -it Nginx /bin/bash

root@0fdb8f0f70bc:/$ ping -6 www.google.com
PING www.google.com (2a00:1450:400e:802::2004): 56 data bytes
64 bytes from 2a00:1450:400e:802::2004: seq=0 ttl=56 time=10.525 ms
64 bytes from 2a00:1450:400e:802::2004: seq=1 ttl=56 time=10.364 ms
64 bytes from 2a00:1450:400e:802::2004: seq=2 ttl=56 time=11.045 ms

 

Share this post


Link to post

I am an idiot. Ping is not available in the container, and I didn't see the IPv6 in the /etc/hosts file. I could not ping the IPv6 from the unRAID, but just discovered I could from my Mac and can also hit the webpage for the container on my Mac using the IPv6 address. 

 

I don't know why the unRAID server can't communicate, but I don't care. I won't be interacting with this container from the server. 

 

Thanks for the replies. I should also add that the changes in Docker in 6.4.0-rc14 seemed to have resolved my lockups with containers and using br0. I haven't had a crash in over a week with them reenabled. 

Edited by bcjenkins

Share this post


Link to post
6 minutes ago, bcjenkins said:

I don't know why the unRAID server can't communicate,

 

This is by (security) design for Docker. A container can not communicate with the host, but communication to other systems is allowed.

Share this post


Link to post
Posted (edited)

I have an issue that docker doesn't have IPv6, this is one of my containers

 

# docker inspect 433692b3e691 | grep -i IPv6Gateway
            "IPv6Gateway": "",
                    "IPv6Gateway": "",
 

Looking at my docker networks, I see:

 

# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
224d0c66e092        bridge              bridge              local
bb9929d48bc0        host                host                local
19eea3a1aa0b        none                null                local

 

THE BRIDGE

# docker inspect  224d0c66e092 | grep -i IPv6
        "EnableIPv6": false,
                "IPv6Address": ""
                "IPv6Address": ""
                "IPv6Address": ""
                "IPv6Address": ""
 

THE HOST

# docker inspect bb9929d48bc0 | grep -i IPv6
        "EnableIPv6": false,
                "IPv6Address": ""
                "IPv6Address": ""
                "IPv6Address": ""

 

However on the GUI and the command line, the bridge is enabled and has IPv4+IPv6 and the tower itself has an IPv6 address

 

image.png.aa17644d06adfb7e5cfb1c4f8e6d36a8.png

 

image.thumb.png.def06965bffce9250fc1737473dacaf8.png

 

 

Any help enabling docker to have IPv6 instead of "EnableIPv6": false will be appreciated

Edited by phoenixcoder

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.