Testing IPv6 support in Roon (for users locked out of ARC due to ISP reliance on IPv6 or CGNAT)

Hello @connor ,
It makes no difference if I enable UPnP or configure port forwarding manually. If I use UPnP exclusively only the IPv4 port is opened and active. If I configure port forwarding manually both IPv4 and IPv6 ports are opened and active. If I use UPnP and manual configuration simultaneously the result is the same as when I configure port forwarding manually alone.
You can keep me on earlyaccess so I can help where possible to get Roon and IPv6 working.
The new Advanced drop down menu in Roon ARC settings shows the correct IPv4 and IPv6 address of the Roon server.

I use Roon ARC only with Android Auto, so maybe that’s useful information too. Roon ARC does everything, except playing music. I can connect, I can select a playlist, artist or album. But after selecting there’s nothing playing and the progress bar just keeps moving from the beginning to the end of the song rapidly.

2 Likes

Hi @Dennis_Mutsaers,

Thank you for providing these details to the team! Do you have a second router in your setup in addition to the Fritz!Box you’ve been using for testing, or any managed switches in your setup? We’re curious if there’s something else in addition to the DS-Lite implementation that might be touching your Core’s connection to ARC within the network.

Also, do you see an option anywhere similar to @Daniele_Piancastelli’s, “Use IPv6 with tunneling protocol”? It’s likely your ISP has a different tunneling protocol or DS-Lite implementation.

I don’t have any additional router, the Fritz!Box is the only router. There are multiple switches because I need support for IGMP snooping. My ISP however doesn’t provide any tunneling protocol, the ISP provides full dual-stack support.

What Is It?
Dual stack means that devices are able to run IPv4 and IPv6
in parallel. It allows hosts to simultaneously reach IPv4 and
IPv6 content, so it offers a very flexible coexistence strategy.
Benefits
• Native dual stack does not require any tunneling
mechanisms on internal networks
• Both IPv4 and IPv6 run independent of each other
• Dual stack supports gradual migration of endpoints,
networks, and applications

My host providing https web services on port 443 (not Roon) is accessible on IPv4 and IPv6 from external networks.

1 Like

Thank you all for your help! I changed the setting in the android app to Early Access using these instructions:

Updating Android apps to earlyaccess

Access to Roon’s Early Access releases on Android is via the Play Store’s public beta program. You can join Roon’s public beta by following these steps:

Important: To get the beta version of an app, the app must already be installed on your device.

  1. Open the Play Store.
  2. At the top right, tap the profile icon.
  3. Tap Manage apps & devices → Installed.
  4. Tap the Roon app to open its detail page.
  5. Under “Join the beta,” tap Join → Join.
  6. Repeat steps 4 and 5 for the Roon ARC app if installed on your device

I am also using Tailscale for a VPN. I disabled Tailscale and was not able to reach Roon from my phone.

So, Starlink appears to work using the Early Access client on Windows 10, the Early Access switch in the android app and Tailscape VPN.

Thank you!

One thing, the Arc test in the Windows app still says Roon Arc is unavailable and Roon ARC is unable to securely access your Roon Core.

Please share the diagnostic message along with details of your network.

{
“ipv4_connectivity”: {“status”:“NetworkError”,“status_code”:504,“error”:“error: Error: ETIMEDOUT, response code: undefined, body: undefined connected? undefined”},
“external_ip”: {“actual_external_ip”:“98.aaa.bbb.ccc”,“actual_external_ipv6”:“null”,“router_external_ip”:“null”},
“natpmp_autoconfig”: {“status”:“NotFound”},
“upnp_autoconfig”: {“status”:“NotFound”}
}

1 Like

Hi @Jason_Oxford,

Thank you for providing these additional details and volunteering your time and energy to contribute to the Early Access program and IPv6 testing.

Do you have a second router in your setup beyond the Starlink-provided unit? The external IP address reported in diagnostics remains in IPv4 format, so we’re curious about which router has that number assigned.

If you have only one router in your setup, and since it appears you’re using a Windows Core - what happens if you enable IPv6 on that computer? Steps are below, if you’re willing to give it a shot:

  • Click Start, click Control Panel, and then double-click Network Connections.
  • Right-click any local area connection, and then click Properties.
  • Click Install.
  • Click Protocol, and then click Add.
  • Click Microsoft TCP/IP version 6, and then click OK.
  • Click Close to save changes to your network connection.

We’ll keep a lookout here for your response.

@Dennis_Mutsaers, thank you for the clarification. Do you mind elaborating on the make/model of managed switch here? Feel free to PM if you’d prefer. Thank you!

@connor UniFi Switch Lite 16 PoE/Switch Lite 8 PoE

1 Like

Tried early access with IPV6 compatibility as I would like to be able to use ARC, currently behind CGNAT with Community Fibre in the UK but I have confirmation that I am connected by ipv6 test sites. Apparently I have native IPv6. I’m using a Unifi 3G-pro router behind a fibre modem. I’m using IPv6 DCHP, Prefix Delegation.

The result is similar to many I’ve seen in this thread.

{
“ipv4_connectivity”: {“status”:“NetworkError”,“status_code”:504,“error”:“error: Error: ETIMEDOUT, response code: undefined, body: undefined connected? undefined”},
“ipv6_connectivity”: {“status”:“NetworkError”,“status_code”:504,“error”:“error: Error: ETIMEDOUT, response code: undefined, body: undefined connected? undefined”},
“external_ip”: {“actual_external_ip”:“147.ddd.eee.fff”,“actual_external_ipv6”:“2a02:ggg:hhh:iii:jjj:kkk:lll:mmm”,“router_external_ip”:“100.aaa.bbb.ccc”},
“status”: “status”: MultipleNatFound
,
“natpmp_autoconfig”: {“server_ip”:“192.168.1.1”,“found_natpmp”:true},
“upnp_autoconfig”: {“server_ip”:“192.168.1.1”,“found_upnp”:true}
}

Even having read the this thread I’m really struggling to understand the principals at work and this seems far from plug and play.

I don’t even know how to get the IPv6 address for my NUC core.

Couple of screenshots showing Ipv6 test results and router settings.

Screenshot 2023-03-30 at 14.05.33

1 Like

If this is T-Mobile it is not working yet.

Hi @Andy_Jones,

Prefix delegation might be the culprit in this case, since you have an additional Unifi router in the setup. What happens if you set IPv6 Interface Type to Static in the above screenshot?

Thank you for volunteering your time. If you’re eager to get access to ARC, since you’ve been stranded so far, we recommend the TailScale workaround in the meantime: Success with Tailscale VPN

It’s not as simple as trying static though is it. I think my isp uses DHCP for ipv6.

@connor This won’t work. If Roon detects multiple nat for v4 but then determines there is v6 available it needs to stop doing UPnP for v4 and only try 6. (my opinion of course but I think that makes sense especially if your goal is to make this work with CGNAT)

For v6, the address Core binds to is also the “actual_external_ipv6” since there is no NAT in v6. All your debug is mixing 6 and 4 which is confusing (is that also confusing your connectivity test?). It’s ok, good maybe, to try and use both but the above output from @Andy_Jones really shows why you need v6 debug and test and v4 debug and test separated out and especially this early on. I assume v6 might actually be “good” in this case but then upnp for 4 should give-up and not request port forward. And then Roon should test just the v6.

There isn’t really such thing as static in v6. If PD is supported, and configured correctly, then Roon will work fine with it. It’s just additional routed, using public space, networks in the home.

1 Like

I have downloaded earlyaccess and ARC is finally connected! I am with Starlink and use a MacBook Pro as the core.

But I am still getting this message on my MacBook Pro (core):
Roon ARC will not be able to access your Roon Core.

And the following message:
{
“ipv4_connectivity”: {“status”:“NetworkError”,“status_code”:504,“error”:“error: Error: ETIMEDOUT, response code: undefined, body: undefined connected? undefined”},
“external_ip”: {“actual_external_ip”:“145.aaa.bbb.ccc”,“actual_external_ipv6”:“null”,“router_external_ip”:“null”},
“natpmp_autoconfig”: {“status”:“NotFound”},
“upnp_autoconfig”: {“status”:“NotFound”}
}

I am new to Roon today so any advice gratefully received. :slight_smile:

Thank you @ipeverywhere for succinctly expressing the information it has taken me many hours to decode.

It would be difficult for me to express my frustration with the process without seeming very irate. As it is I’ve decided to go back to ignoring ARC despite having provided a fairly complete description of how to implement tailscale last October.

In fact @connor sent 12 people to that thread for advice on how to circumvent CGNAT issues, so I was a little bit surprised by his boilerplate reply.

At the moment it appears that you are not using ipv6. It’s possible you need to switch on ipv6 for your network. That would happen in your router. It could also be that your ISP doesn’t support ipv6.

You can test ipv6 connectivity through a site like https://ipv6-test.com/

When you say ARC is finally connected, is it possible that you mean it connects when your phone is on the same home network as your core. That is normal, the IPv6 support being tested here is to allow ARC to work away from the home network.

I could just add though that my advice would be ignore ARC until a generally workable solution has been found, and in any case there are still some issues with the ARC app itself.

1 Like

@connor @ipeverywhere just got back on Roon early access. I see some new settings. But I get this message

{
“ipv4_connectivity”: {“status”:“NetworkError”,“status_code”:504,“error”:“error: Error: ETIMEDOUT, response code: undefined, body: undefined connected? undefined”},
“external_ip”: {“actual_external_ip”:“172.aaa.bbb.ccc”,“actual_external_ipv6”:“null”,“router_external_ip”:“192.168.12.218”},
“status”: “status”: MultipleNatFound
,
“natpmp_autoconfig”: {“server_ip”:“192.168.68.1”,“found_natpmp”:true},
“upnp_autoconfig”: {“server_ip”:“192.168.68.1”,“found_upnp”:true}
}

I think this is a different message from the initial one.

1 Like

I only get Roon ARC in a working state when I remove any trace of IPv6 open ports, i.e. only open IPv4 ports.

My city does not provide public IPv4 addresses, and can only use IPv6 addresses to implement ARC functions. However, it is still in a Not Ready state.

Diagnostic data for Roon Support :

{
“ipv6_connectivity”: {“status”:“NetworkError”,“status_code”:502,“error”:“error: Error: connect ECONNREFUSED 2408:8a10:9b03:eh20:1428:5d9c:d409:4cc3:55002, response code: undefined, body: undefined”},
“ipv4_connectivity”: {“status”:“NetworkError”,“status_code”:504,“error”:“error: Error: ETIMEDOUT, response code: undefined, body: undefined connected? undefined”},
“external_ip”: {“actual_external_ip”:“112.hhh.kkk.lll”,“actual_external_ipv6”:“2408:aaa:bbb:ggg:mmm:nnn:ooo:ppp”,“router_external_ip”:“null”},
“natpmp_autoconfig”: {“server_ip”:“192.168.1.1”,“found_natpmp”:true},
“upnp_autoconfig”: {“server_ip”:“192.168.1.1”,“found_upnp”:true,“error”:“doaction request return statuscode: ConnectFailure”}