IPV6 Support

Expanding and utilizing the engine via C++.
6 posts Page 1 of 1
MangoFusion
Posts: 50
Joined: Wed Feb 04, 2015 12:00 am
by MangoFusion » Fri Sep 30, 2016 6:22 pm
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.
deathbravo
Posts: 50
Joined: Mon Feb 01, 2016 7:06 am
by deathbravo » Tue Oct 04, 2016 6:20 am
seems nobody knows things in network layer at this moment.
I am just reply to say thanks for your effort.
MangoFusion
Posts: 50
Joined: Wed Feb 04, 2015 12:00 am
by MangoFusion » Tue Oct 11, 2016 10:23 am
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
damik
Posts: 20
Joined: Thu Jun 23, 2016 12:02 pm
by damik » Tue Oct 11, 2016 11:59 am
the future is very useful for countries where most people are sitting at the NAT. good job!
Jay Copeland
Posts: 11
Joined: Thu Aug 11, 2016 11:13 am
by Jay Copeland » Tue Oct 25, 2016 2:35 pm
Excellent, I look forward to see how far you get with this!
MangoFusion
Posts: 50
Joined: Wed Feb 04, 2015 12:00 am
by MangoFusion » Tue Oct 25, 2016 9:36 pm
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 .
6 posts Page 1 of 1

Who is online

Users browsing this forum: No registered users and 1 guest