Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Steam doesn't work on IPv6-only (NAT64/DNS64) networks #3372

Open
oerdnj opened this issue Jun 23, 2014 · 88 comments
Open

Steam doesn't work on IPv6-only (NAT64/DNS64) networks #3372

oerdnj opened this issue Jun 23, 2014 · 88 comments

Comments

@oerdnj
Copy link

oerdnj commented Jun 23, 2014

I understand that my request might look like coming from Mars :), but there's an issue in the official steam client using a way to connect to steam servers the is not Internet Protocol compatible. (Yeah, I am not speaking about legacy IP ;)).

I am running on IPv6-only + NAT64/DNS64 network and Steam fails to connect to the servers although the connectivity works as expected - the IPv4 gets remapped to IPv6 addresses, so every application should not notice the difference unless:

a) you use some strange/ancient API to connect to TCP sockets
b) you use IP addresses instead of domain names to connect to steam servers

The fix is obvious:

a) add native support for IPv6 into steam and prefer IPv6 if found
b) use DNS to resolve the names of steam servers or have IPv6 address that gets used when IPv6 is detected.

I do not expect this to be solved quickly, but a record in internal tracker with some future fix would be nice.

DNS64 example:

$ dig IN AAAA store.steampowered.com @2001:1488:fffe:20::34

; <<>> DiG 9.9.5-4-Ubuntu <<>> IN AAAA store.steampowered.com @2001:1488:fffe:20::34
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64038
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 6, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;store.steampowered.com.        IN  AAAA

;; ANSWER SECTION:
store.steampowered.com. 5   IN  AAAA    2001:1488:fffe:30:ffff:ffff:173f:40c0

;; AUTHORITY SECTION:
steampowered.com.   9320    IN  NS  a8-66.akam.net.
steampowered.com.   9320    IN  NS  a24-64.akam.net.
steampowered.com.   9320    IN  NS  a1-164.akam.net.
steampowered.com.   9320    IN  NS  a11-67.akam.net.
steampowered.com.   9320    IN  NS  a26-65.akam.net.
steampowered.com.   9320    IN  NS  a9-67.akam.net.

;; Query time: 1 msec
;; SERVER: 2001:1488:fffe:20::34#53(2001:1488:fffe:20::34)
;; WHEN: Mon Jun 23 10:08:09 CEST 2014
;; MSG SIZE  rcvd: 211
@mxdpeep
Copy link

mxdpeep commented Feb 9, 2015

I am testing Steam over IPv6 only (using HE.NET tunnel), chat is working, no images or Steam news, updater does not work either

that means = there's some basic functionality within Steam for IPv6??

@cheako
Copy link

cheako commented Apr 7, 2015

[0406/210657:WARNING:dns_config_service_posix.cc(292)] Failed to read DnsConfig.
nameserver 2001:4860:4860::8888
nameserver 2001:4860:4860::8844

@gangsta2oo9
Copy link

Why is Steam dont updating to ipv6 ? -.-

@fiveghz
Copy link

fiveghz commented Feb 28, 2016

I can confirm that the Steam client does not operate on an IPv6 only network, using NAT64/DNS64. This is on Mac OS 10.11.3 and Steam client built Feb 4 2016.

@vician
Copy link

vician commented Apr 11, 2016

Please fix it. Steam still doesn't work on IPv6 only network (with NAT64/DNS64).

@palaughton
Copy link

Strictly speaking, I'm not sure I'd consider this a Linux-specific issue, given that the Windows installer doesn't work behind NAT64, either: "Steam needs to be online to update. Please confirm your network connection and try again."

20160430 1 steam-ipv6

@pHr34kY
Copy link

pHr34kY commented Oct 22, 2016

I'm also unable to connect on my NAT64 setup. Even in after selecting offline mode, Portal2 throws a "STEAM validation rejected" error even when attempting single player mode. The source engine probably needs to have its socket code inspected as well.

Also, this ticket appears to be a duplicate of #2912.

@hsaito
Copy link

hsaito commented Sep 3, 2017

This also started affecting double-stack setting (e.g. Comcast, etc.) on Linux. The client loads sometimes, but the game fails to download.

@mikaabra
Copy link

I tried again now with all-updated steam on fully updated Win10 with yesterdays fall creators update. On an IPv6 only network (with NAT64+DNS64), Steam won't even start. After trying this, it won't even start if I go back to dual stacked network. I actually have to reboot Win10 on the dual stack network for Steam to start again.

Microsoft has fixed Win10 so multiple normal functions now work on an NAT64+DNS64 network, software updates work nowadays for instance. But, Steam is a complete blocker. It won't even start and give an error message on an IPv6 only network (again, with IPv4 reachability through NAT64+DNS64).

@GroverChouT
Copy link

It has been four years ago, still no any actions?

@cheako
Copy link

cheako commented Jun 4, 2018

Thus no solution to the high price of address blocks.

@No0ne
Copy link

No0ne commented Sep 27, 2018

+1 ... 2019 is approaching!

@boospy
Copy link

boospy commented Nov 4, 2018

IPV6 YEAH!!! 🥇

@tambry
Copy link

tambry commented Dec 18, 2018

@tambry
Copy link

tambry commented Jan 20, 2019

Steam Client Beta has received an update to support downloads over IPv6.
Another protobuf update has added support for an IPv6 address in one of the messages.

@boospy
Copy link

boospy commented Jan 20, 2019

Nice but how can i enable ipv6? I've changed to Beta and clicked on Download on a game. But it was loaded only with ipv4. So i think there is some changing of option necessary.

@bernhardschmidt
Copy link

I don't think the servers are IPv6-enabled yet, but I do see the beta client doing AAAA lookups now. For a normal dualstacked client this won't change anything (downloads still go through IPv4 as long as no IPv6-enabled steam content server is available), but for NAT64/DNS64 clients they finally stand a chance. Will test soon.

@boospy
Copy link

boospy commented Jan 21, 2019

Ah ok, thank you 👍

@tambry
Copy link

tambry commented Jan 21, 2019

Actually two content servers now have IPv6 addresses – valve700.steamcontent.com and valve705.steamcontent.com. Although I'm unable to ping either of them over IPv6. They're of course just a few of very many and only used in select regions (cells).

Combined with 6 new IPv6 prefix announcements in the past week, I hope we'll be seeing more progress on this soon.

@tambry
Copy link

tambry commented Feb 3, 2019

Another IPv6 related Steam Client Beta update:

Fixed issue "Servers content unreachable" related to some IPv6 configurations

@myxal
Copy link

myxal commented Feb 16, 2019

Got around to testing current Steam client (Built Feb 2 2019, 09:29:56) on NAT64, no dice - according to log, the WebSocket is bound to 0.0.0.0 (V4-only). But hey, at least, the server is no longer an IPv4 literal, so that's something...

[2019-02-16 14:13:20] [1,3] Connect() starting connection (eNetQOSLevelHigh, CM03-STO.cm.steampowered.com:443, WebSocket)
[2019-02-16 14:13:20] [1,0] ConnectFailed('Connection Failed':0) (0.0.0.0:0, WebSocket

Needless to say, HTTPS-pinging this server over v6 works without issue:

$ LANG=en wget -6 -H https://CM03-STO.cm.steampowered.com
--2019-02-16 14:31:49-- https://cm03-sto.cm.steampowered.com/
Resolving cm03-sto.cm.steampowered.com (cm03-sto.cm.steampowered.com)... 64:ff9b::9b85:f208
Connecting to cm03-sto.cm.steampowered.com (cm03-sto.cm.steampowered.com)|64:ff9b::9b85:f208|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2019-02-16 14:31:50 ERROR 404: Not Found.

@treysis
Copy link

treysis commented Apr 13, 2019

Yep, still no IPv6, and of course also no NAT64. Can't log in. Didn't check which socket it uses.

@tambry
Copy link

tambry commented May 2, 2019

Local content caches/proxies seem to now support IPv6.

@RomanTruba
Copy link

RomanTruba commented May 14, 2019

5 years passed since this issue was reported, and still there is no way to login on IPv6-only network. Such a shame.

@0xE232FE
Copy link

0xE232FE commented Jun 28, 2019

Disable IPv4 28.06.2019 no connection to Steam Network available. Fix your Internet connection they say... WTF!

@wuodland
Copy link

Here I am at an APNIC conference trying to login to Steam via a v6 network. Nope, doesn't work. Incredible and appalling.

@No0ne
Copy link

No0ne commented Sep 16, 2019

+1 ... 2020 is approaching!

@TheFireKahuna
Copy link

This needed to be actioned 8 years ago, before IPv6 only makes this a major problem for users

@AesaraB
Copy link

AesaraB commented Aug 5, 2022

This issue is legitimately incredible, it's almost like a time capsule signifying Valve's total apathy

@No0ne
Copy link

No0ne commented Aug 5, 2022

This issue should at least be merged with #2912

@vbtwo31984
Copy link

This issue plagues the Steam Deck too. By default it's not even able to connect to an IPv6-only network. I was able to change some network settings in desktop mode and connect, and then everything in desktop mode works (except Steam client), but the regular non-desktop view shows that there's no Internet access...

@cherry-412
Copy link

cherry-412 commented Oct 8, 2022

also having this issue. my iphone hotspot produces a NAT64 network, making it impossible to bring the steam deck's gaming mode online while on the go. that's quite an inconvenience on you know.. a portable device

@rawhide-kobayashi
Copy link

rawhide-kobayashi commented Oct 9, 2022

my home internet recently went out for a bit, and I had to rely on a mobile hotspot with spotty ipv4 connectivity... shocked at how many sites still don't have ipv6 support. particularly ones that sell products. ebay, amazon, craigslist, indeed, reddit... GITHUB. there's non-zero customers out there, even in the US, who only have internet access through hotspots that are ipv6 only or have CGNAT strained by port exhaustion...

@No0ne
Copy link

No0ne commented Oct 28, 2022

Now MacOS Ventura automatically setups an integrated CLAT if it detects a NAT64/DNS64 network an Steam works!
(see https://www.youtube.com/watch?v=zQk6YMO-7fw)

@zajdee
Copy link

zajdee commented Oct 28, 2022

Now MacOS Ventura automatically setups an integrated CLAT if it detects a NAT64/DNS64 network

A small correction: macOS CLAT is only set-up by the operating system if you provide a DHCPv4 option 108 ("IPv6-only preferred") and a pref64 ("NAT64 prefix") option in IPv6 router advertisements. DNS64 is not necessary for the CLAT to work, but you do want it for the other apps running on your system. (I am the author of the radvd patch Ondrej mentions in his talk and am currently running an IPv6-mostly network at home. I need to give Steam a try on it!)

@No0ne
Copy link

No0ne commented Oct 28, 2022

@zajdee 🤔 I don't have dhcp-opt 108 (actually no dhcp at all) nor pref64 enabled and it still works. I think macos and ios resolv ipv4only.arpa for checking dns64? Its same on ios since version 16.

@zajdee
Copy link

zajdee commented Oct 28, 2022

@zajdee 🤔 I don't have dhcp-opt 108 (actually no dhcp at all) nor pref64 enabled and it still works. I think macos and ios resolv ipv4only.arpa for checking dns64? Its same on ios since version 16.

CLAT is available if you see 192.0.0.2 in the output of ifconfig and can e.g. ping 1.1.1.1 (I have double checked this right now). If you can't, then there's something else in Steam that makes it work on the NAT64/DNS64 networks, and that's exciting!

@No0ne
Copy link

No0ne commented Oct 28, 2022

noone@imac20 ~ % ifconfig | grep clat
	inet6 fdee::1439:bc88:d58d:59de prefixlen 64 clat46
noone@imac20 ~ % ifconfig | grep 192
	inet 192.0.0.2 netmask 0xffffffff broadcast 192.0.0.2
noone@imac20 ~ % ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1): 56 data bytes
64 bytes from 1.1.1.1: icmp_seq=0 ttl=57 time=24.911 ms

@zajdee
Copy link

zajdee commented Oct 28, 2022

@No0ne: oh, thanks. It looks like the behaviour I have described was active on macOS 12, but on macOS 13 the CLAT activates even when there's neither DHCPv4 Option 108 not pref64 in the router advertisements. (That's good news.)

@TeamLinux01
Copy link

It would be nice for Valve to support IPv6 gaming. I have multiple Steam gaming devices and I can open the firewall ports easily for each device via IPv6.

The limitation of IPv4 NAT would only allow me one device at a time to use those ports.

Please Valve, run a dual stack for your servers and ask game developers to support a dual stack; IPv6 preferred when both are available.

@cheako
Copy link

cheako commented Dec 2, 2022

The servers don't need to be dual-stacked for clients to p2p over v6. It's up to the app/game developers to implement this.

@Leseratte10
Copy link

Leseratte10 commented Feb 17, 2023

It's up to the app/game developers to implement this.

Hard to do when many of Valve's APIs for game devs still assume an IP fits into a 32-bit integer, like in the ISteamGameServer interface and probably many others.

Some newer Steam APIs like this one are finally beginning to support IPv6, but definitely not all of them.

And the Steam Client is still either connecting to hardcoded IPv4 addresses or ancient library calls like gethostbyname instead of getaddrinfo. This is a far bigger issue than the servers not having IPv6.

If the client were implemented correctly, with no hardcoded IPs and using getaddrinfo everywhere, all you'd need would be a NAT64 to use Steam on an IPv6-only connection, even if Valve's servers don't support that yet.

This is definitely something that Valve needs to fix by A) making the Steam Client work behind an IPv6-only connection with NAT64, without CLAT; then B) providing IPv6-capable versions of all their developer APIs. Only once that has happened, is it useful that C) Valve servers get working IPv6 and D) game devs using Valve APIs finally start supporting IPv6 (and IPv6-only).

Also, independant from the client, Valve has a lot to do regarding IPv6 on the Steam Deck, too, ...

@cheako
Copy link

cheako commented Feb 22, 2023

I don't think games are stuck using the steam client for things like getaddrinfo, plus I doubt any p2p code is doing address lookups... I'm sure game devs have all the tools they need to use the full network stack regardless of what valve does.

@NiKiZe
Copy link

NiKiZe commented Feb 22, 2023

I don't think games are stuck using the steam client for things like getaddrinfo, plus I doubt any p2p code is doing address lookups... I'm sure game devs have all the tools they need to use the full network stack regardless of what valve does.

The Steam client don't work in in an NAT64 environment due to this bug, which is a oneline piece of code to change in the client. (Testing added on top of that might make the fix non trivial, but the code change itself should be)

@Leseratte10
Copy link

Leseratte10 commented Feb 22, 2023

Sure, if the game devs wanted, they could ignore all the features the Steam API offers, and just implement all of the p2p network logic themselves,, and also develop and host their own servers for matchmaking, then the game(s) would work over NAT64 / IPv6 just fine. But I don't think many devs are going to do that when Valve offers APIs that make that a whole lot easier.

@cheako
Copy link

cheako commented Feb 22, 2023

This is the issue with every framework, they swallow innovation making applications a clone with only the skin to differentiate them. I don't think you'll win any awards that way.

@frederictobiasc

This comment was marked as off-topic.

@tiiiko
Copy link

tiiiko commented Jun 8, 2023

It’s 2023 and still no support. I can’t use my steam deck because of this. Next time I’ll buy literally any other device. 8 years and still no fix?!

@cheako
Copy link

cheako commented Jun 8, 2023

@tiiiko Can't you deploy a router? I didn't think this was anything more than a nuisance, if there are unsurmountable effects those should be well documented in detail.

@tiiiko
Copy link

tiiiko commented Jun 8, 2023

@tiiiko Can't you deploy a router? I didn't think this was anything more than a nuisance, if there are unsurmountable effects those should be well documented in detail.

Thank you for your reply. It’s a bit different for me. I have a nice PC and screen at home so I’d virtually never use my steam deck there. I’d like to play on the go, but my phone’s hotspot is IPv6 and cannot be changed. This means I have to hope there’s a good public WiFi somewhere, which in my experience unfortunately is something of a rare find in Germany.

@growse

This comment was marked as off-topic.

@Mikaela

This comment has been minimized.

@UnderEu
Copy link

UnderEu commented Mar 13, 2024

March 12, 2024: Not working yet

@sgryphon
Copy link

Steam can't even merge duplicate issues for this same problem; one since 2013, one 2014 -- that's over 10 years!

#2912
#3372

In that time IPv6 usage has grown from 2% to 45% (varies by country, some at 80-90%). There are now many IPv6-only networks -- several major mobile carriers, several ISPs, and IPv6-only is also common on guest networks (as phones and tablets support it well).

Steam is one of the major reasons why I haven't been able to switch my network over to IPv6-only, for easier single-stack management.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests