Linux Bedrock Dedicated Server 1.26.52.3 — NetherNet advertises IPv6 but binds UDP socket to IPv4
Product: Minecraft Bedrock Dedicated Server
Version: 1.26.52.3
Build ID: 51798919
Operating system: Ubuntu 24.04 LTS (x86-64)
Transport: NetherNet
Client: Minecraft Bedrock for Windows
Errors: Codeword Door and Codeword Kelp
Description
I'm trying to host a Minecraft Bedrock Dedicated Server directly over IPv6 because my internet provider uses IPv4 CGNAT.
TCP signaling works over IPv6, but NetherNet appears to allocate its gameplay UDP socket using IPv4, even when an IPv6 address is explicitly advertised.
Windows clients send IPv6 UDP packets to the advertised address, but the server does not respond.
I can reproduce different connection behavior depending on whether Ubuntu has an active non-loopback IPv4 interface.
Steps to Reproduce
Install Minecraft Bedrock Dedicated Server 1.26.52.3 on Ubuntu 24.04.
Configure the server to use NetherNet and IPv6.
Disable IPv4 on the Ethernet interface while keeping IPv6 working.
Start the server and attempt to join from Windows using IPv6.
Observe Codeword Kelp and an initial SDP response without server ICE candidates.
Create a temporary dummy IPv4 interface with address
10.254.254.1/32.Restart the server and attempt to connect again.
Observe Codeword Door, an advertised IPv6 ICE candidate, and an IPv4-only UDP socket.
Relevant Configuration
The addresses below are anonymized. Replace fd00:1::10 with an IPv6 address assigned to the test server.
transport=nethernet
server-port=19132
server-ip=fd00:1::10
server-udp-ports=[fd00:1::10]:40000:40000I also tested multiple individual UDP mappings covering ports 40000–40004.
Actual Results
TCP signaling works over IPv6:
LISTEN [fd00:1::10]:19132The server advertises an IPv6 ICE candidate:
c=IN IP6 fd00:1::10
a=candidate:... fd00:1::10 40000 typ srflx raddr 10.254.254.1 rport 40000However, the actual Minecraft UDP socket is IPv4:
UNCONN 0 0 10.254.254.1:40000 0.0.0.0:* users:(("bedrock_server",pid=376814,fd=38))During a Windows connection attempt, tcpdump confirms repeated IPv6 UDP packets arriving at the advertised address on port 40000. No outgoing IPv6 UDP replies were observed.
When the temporary IPv4 interface is removed, the server's initial SDP answer contains:
c=IN IP4 0.0.0.0No server ICE candidates appear in that response.
Expected Results
Minecraft Bedrock Dedicated Server should establish native IPv6 UDP gameplay connections using NetherNet when valid IPv6 connectivity is available.
The advertised IPv6 ICE candidate should correspond to a working UDP transport path.
Troubleshooting Already Performed
Verified successful IPv6 TCP signaling.
Confirmed Ubuntu and Windows communicate over IPv6.
Confirmed native IPv6 UDP socket binding works independently using Python.
Verified UFW is inactive.
Verified nftables input policy is ACCEPT.
Confirmed IPv6 UDP packets reach Ubuntu through Ethernet.
Tested explicit IPv6
server-ipbinding.Tested both WireGuard and a dummy IPv4 interface.
Verified that the Minecraft server starts normally and signs in to the signaling service.
Suspected Cause
NetherNet may be allocating gameplay sockets using IPv4 while publishing IPv6 ICE candidates from the configured external mapping.
Candidate generation also appears to depend on the presence of a non-loopback IPv4 interface.
These are observations and hypotheses, not a confirmed root cause.
Request
Could Mojang investigate how the Linux Bedrock Dedicated Server allocates IPv6 UDP sockets and generates ICE candidates when using NetherNet?
Is native IPv6 UDP gameplay supported in BDS 1.26.52.3, and is there a supported configuration that avoids this behavior?
Environment
i am on ubuntu linux pc with starlink internet
Comments 0
No comments.