Description
Running a BEACON node on Docker Desktop (Windows 11) results in persistent IPv6 registration failures. The control-proxy container cannot resolve controller6.orc8r.blockcast.net via Docker's embedded DNS, causing repeated 502 Bad Gateway errors every ~5 minutes.
Environment
- OS: Windows 11 Build 26200
- Docker Desktop: v29.3.1 (WSL2 backend)
- Blockcast Image:
blockcast/cdn_gateway_go:stable (latest)
- Compose File: Official from this repo (main branch)
- Docker Network:
compose_default with enable_ipv6: true
- Docker Daemon Config:
"ipv6": true, "fixed-cidr-v6": "2001:db8:1::/64"
Error Logs
control-proxy (every ~5 min):
"cloud proxy error","cloud_address":"controller.orc8r.blockcast.net","path":"/magma.orc8r.SyncRPCService/RegisterIPAddress","error":"dial tcp6: lookup controller6.orc8r.blockcast.net on 127.0.0.11:53: no such host"
blockcastd (every ~5 min):
[IPv6Reg] RegisterIPAddress failed: rpc error: code = Unavailable desc = unexpected HTTP status code received from server: 502 (Bad Gateway)
Root Cause Analysis
-
controller6.orc8r.blockcast.net only has an AAAA record (IPv6: 2602:f74d:1::202), no A record (IPv4)
-
Docker containers receive ULA IPv6 addresses (fdf0:e553:f4f2::/64) which are not globally routable — they cannot reach the global IPv6 address 2602:f74d:1::202
-
Docker's embedded DNS (127.0.0.11) does not properly forward AAAA queries for this hostname, returning "no such host"
-
Go's net resolver in control-proxy explicitly uses dial tcp6 (IPv6-only), with no IPv4 fallback attempted
Attempted Fixes (all failed)
extra_hosts in docker-compose.yml — Docker Desktop YAML anchor bug prevents entry from appearing in /etc/hosts
dns: [1.1.1.1, 1.0.0.1] — Docker embedded DNS still intercepts and fails AAAA queries
- Both combined — Same error persists
Impact
- IPv4 traffic and registration work normally
- IPv6 registration fails every ~5 minutes
- Node appears to still earn rewards (IPv4 path works)
- Log spam is significant (error every 5 min)
Questions
- Is IPv6 connectivity a hard requirement for BEACON nodes?
- Is there a way to disable IPv6-only routing in control-proxy and fall back to IPv4?
- Would adding an A record for
controller6.orc8r.blockcast.net resolve this?
- Is this a known limitation of Docker Desktop on Windows?
Workaround
Running on Linux native with global IPv6 support (e.g., a Linux VPS) would likely resolve this, as the container would get a globally routable IPv6 address.
Description
Running a BEACON node on Docker Desktop (Windows 11) results in persistent IPv6 registration failures. The
control-proxycontainer cannot resolvecontroller6.orc8r.blockcast.netvia Docker's embedded DNS, causing repeated 502 Bad Gateway errors every ~5 minutes.Environment
blockcast/cdn_gateway_go:stable(latest)compose_defaultwithenable_ipv6: true"ipv6": true, "fixed-cidr-v6": "2001:db8:1::/64"Error Logs
control-proxy (every ~5 min):
blockcastd (every ~5 min):
Root Cause Analysis
controller6.orc8r.blockcast.netonly has an AAAA record (IPv6:2602:f74d:1::202), no A record (IPv4)Docker containers receive ULA IPv6 addresses (
fdf0:e553:f4f2::/64) which are not globally routable — they cannot reach the global IPv6 address2602:f74d:1::202Docker's embedded DNS (
127.0.0.11) does not properly forward AAAA queries for this hostname, returning "no such host"Go's net resolver in control-proxy explicitly uses
dial tcp6(IPv6-only), with no IPv4 fallback attemptedAttempted Fixes (all failed)
extra_hostsin docker-compose.yml — Docker Desktop YAML anchor bug prevents entry from appearing in/etc/hostsdns: [1.1.1.1, 1.0.0.1]— Docker embedded DNS still intercepts and fails AAAA queriesImpact
Questions
controller6.orc8r.blockcast.netresolve this?Workaround
Running on Linux native with global IPv6 support (e.g., a Linux VPS) would likely resolve this, as the container would get a globally routable IPv6 address.