Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

myxal

Networking questions - UPnP/PCP support?

Recommended Posts

myxal    314

Hi all.

The IPv4-pocalypse has appeared on the horizon, and my ISP is rolling out DS-Lite (What? Who's this "Nintendo" that spams my search results...) - opt-in, but who knows for how long. That means manually-configurable port mappings are going away, with people needing Internet reachability being instructed to use PCP. Searching for practical examples of using PCP turned up nothing, but according to this Cisco article, it should be possible for the home router to implement a translator between UPnP and PCP.

I dug up a thread where @MarkL mentions UPnP is supported, but that was 4 years ago...

  • Is UPnP (still) supported by the dedicated server?
  • Is PCP supported or planned?
  • And of course, is IPv6 support planned, so we can ditch these hacks altogether?

Share this post


Link to post
Share on other sites
kertinker    200

The... the heck does static port mapping have to do with running out of IPv4 addresses? The port is separate from the address! That's just blatant anti-server tactics. Of course, denying people IPv6 addresses is also blatant anti-server tactics, as is only selling service plans that choke upload bandwidth, so I guess we shouldn't be surprised...
I wonder if you could rig something up with route, or maybe iptables, to make an IPv6 address translate to an IPv4 address for progams like DST.

...should probably add that IPv6 support is usually as simple as duplicating the socket/sockaddr creation code but switching "in" for "in6." Just a simple search and replace (in theory). I'd guess adding it to DST'd take maybe an hour for someone with access to the source. So I can't imagine* it'd be too hard to do, but... donating $50 in the right place might do a lot for getting a privileged programmer to work on something for an hour...

* I can imagine, actually, if they did something like have serialized data structures store the address and require it be a sockaddr_in sized one. But who does that?

Share this post


Link to post
Share on other sites
myxal    314
14 hours ago, kertinker said:

The... the heck does static port mapping have to do with running out of IPv4 addresses? The port is separate from the address! That's just blatant anti-server tactics.

Ehh, not really. In DS-Lite setup, the number of public IPs is smaller than the number of subscribers - the price of those v4 addresses is going up, so a large ISP has a big incentive to move their subscribers to DS-Lite - if not to sell those addresses, than at least to be able to take on new subscribers without paying huge sums of money for new addresses.

14 hours ago, kertinker said:

...should probably add that IPv6 support is usually as simple as duplicating the socket/sockaddr creation code but switching "in" for "in6." Just a simple search and replace (in theory).

Sadly, this is not the case in general practice (a LOT of software and middleware can't grok the fact that an interface has multiple addresses with different scopes), and Raknet (network game library which I suspect is used by DST) in particular has some disturbingly-wrong misinformation on their IPv6 support page.

Quote

There is no default multicast address for IPV6, meaning LANServerDiscovery will not work without manual configuration by the end-user.

Say what? Yes, the workings of multicast have changed substantially, and discovering server of a particular game should be even easier than before - just pick a group ID for that game, and add it to ff12:: if you want to probe the local subnet (the only "multicast" that worked without special network configuration in IPv4).

Share this post


Link to post
Share on other sites
kertinker    200
8 hours ago, myxal said:

middleware

Yeah, even I've have had to fight with IPv6 support in stupid middleware (I'm looking at you, luasockets). You're right: by access to the source I mean the source as in modifying the source code of the middleware, which is trivially easy. Convincing the humans managing the source code of the middleware to allow this is... less trivially easy. It's funny how much of computer programming is actually more like politics.

8 hours ago, myxal said:

the number of public IPs is smaller than the number of subscribers

There are plenty of DHCP servers that allow for a pool of IP addresses smaller than the number of subscribers. Adding on limitations to what ports you're allowed to use is just ludicrous.

Unless you're suggesting that it's allowing for fewer IP addresses than there are subscribers currently online?

Share this post


Link to post
Share on other sites
myxal    314
On 10/03/2018 at 6:57 PM, kertinker said:

Unless you're suggesting that it's allowing for fewer IP addresses than there are subscribers currently online?

Yes. that's exactly the goal of CGN.

The number of open connections a single subscriber might use simultaneously is far lower than the 64k ports as per the standard, so the possibility to aggregate is there...

Share this post


Link to post
Share on other sites
kertinker    200
5 hours ago, myxal said:

Yes. that's exactly the goal of CGN.

The number of open connections a single subscriber might use simultaneously is far lower than the 64k ports as per the standard, so the possibility to aggregate is there...

Damn, that's just... stupid. We could be using IPv6 and have addresses for days. Instead they just keep tightening the noose. Man...

Share this post


Link to post
Share on other sites