Page 1 of 1

IPV6 Support

Posted: Fri Sep 30, 2016 6:22 pm
by MangoFusion
Hey guys,

Just thought i'd let you guys know, i'm working on ipv6 support for the T3D (and T2D) networking.

Current progress is available at https://github.com/jamesu/Torque3D/tree/ipv6_support . For the master server, i'm just modifying PBMS (since the GG one seems to have been lost in torqueland), available at https://github.com/jamesu/PushButton-Ma ... 6_support/

What currently works:

- Connecting to ipv4 addresses (yes, this is backwards compatible)
- Connecting to ipv6 addresses
- Browsing for ipv6 servers on a LAN
- Working with ipv6 TCP sockets

What I'm currently working on:

- Reworking the master server protocol to return ipv6 addresses (hopefully in a backwards compatible fashion)
- Testing everything

What I might be working on:
- Improving the master server protocol to prevent obvious flood attacks

For testing, if you don't have an IPV6 ISP you can just setup a local IPV6 network (e.g. using 2012::1, 2012::2, etc). Currently it is only known to work on windows as I haven't tested elsewhere yet.

Re: IPV6 Support

Posted: Tue Oct 04, 2016 6:20 am
by deathbravo
seems nobody knows things in network layer at this moment.
I am just reply to say thanks for your effort.

Re: IPV6 Support

Posted: Tue Oct 11, 2016 10:23 am
by MangoFusion
Just an update on this...

What currently works:

- Connecting to ipv4 addresses (yes, this is backwards compatible)
- Connecting to ipv6 addresses
- Browsing for ipv6 servers on a LAN
- Working with ipv6 TCP sockets
- Returning IPV6 addresses from the master server
- Registering an IPV6 server with the master server

What I'm currently working on:

- Reworking the master server protocol so it uses challenge packets to prevent flood attacks
- Testing everything

Re: IPV6 Support

Posted: Tue Oct 11, 2016 11:59 am
by damik
the future is very useful for countries where most people are sitting at the NAT. good job!

Re: IPV6 Support

Posted: Tue Oct 25, 2016 2:35 pm
by Jay Copeland
Excellent, I look forward to see how far you get with this!

Re: IPV6 Support

Posted: Tue Oct 25, 2016 9:36 pm
by MangoFusion
Just another update on this...

I've submitted a PR for the main ipv6 code, https://github.com/GarageGames/Torque3D/pull/1817 - this covers core ipv6 functionality.

As before, the master server at https://github.com/jamesu/PushButton-Ma ... 6_support/ can be used to test returning ipv6 addresses.

Since i'm being cautious with regards to compatibility, I've set ipv6 to be disabled by default in the PR (i.e. the server won't listen on ipv6 and you won't be able to query ipv6 servers), though it can be enabled by setting $pref::Net::IPV6Enabled to 1 before setNetPorts is called.

I'm still working on the master server packet challenge code, though this will take more time to finish as I need to refactor parts of the serverQuery code to account for resending normal packets. A test client which implements challenge packets can be found at https://gist.github.com/jamesu/fc806fd0 ... 464ffd7334 .