IPv6 Support

What do you want to see in Armagetron soon? Any new feature ideas? Let's ponder these ground breaking ideas...
Post Reply
User avatar
Tank Program
Forum & Project Admin, PhD
Posts: 6709
Joined: Thu Dec 18, 2003 7:03 pm

IPv6 Support

Post by Tank Program »

We've never really properly discussed this before. What do we need to do to get IPv6 going? It'd be nice to participate in World IPv6 Day if we could. I've got at least some connectivity that we could use for testing. I think a quick hack might be to use the server_dns field with the [0add:4355::] (address ;)) in it. Then we'd just need to be sure to open the sockets at either end. (And get a master server listening too, which I can do for the two I run.)
Image

User avatar
Z-Man
God & Project Admin
Posts: 11331
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Re: IPv6 Support

Post by Z-Man »

We already support listening to several sockets, so the general operation shouldn't be that difficult to get right. What's needed is:
- parsing and printing of IPv6 addresses
- storage of the appropriate addrinfo structures (I thought a tiny bit ahead there, this shouldn't be difficult)
- opening a second socket for IPv6 if the ANY option (the default) is selected.
- servers need to be listed on the masters with both their v6 and v4 addresses. Or, alternatively, there need to be two entries for each server offering both. I guess that would be easier.
- masters need to only give out v6 servers when queried over v6. And we need to avoid duplicate list entries on the client. And all our persistent stuff (bookmarks, server ratings) need to be able to switch from v4 to v6 and back. Oh boy.
- testing.
Sadly, neither my ISP nor server operator seem to support IPv6 at the moment. So my testing would be restricted to my LAN.

User avatar
Tank Program
Forum & Project Admin, PhD
Posts: 6709
Joined: Thu Dec 18, 2003 7:03 pm

Re: IPv6 Support

Post by Tank Program »

It sounds like the responding with v6 servers only will be the toughest bit there, but that's just my impression. Overall, doable I think. I think I'll start looking at it next time i have some time free for programming.
Image

User avatar
killerbees19
Average Program
Posts: 58
Joined: Sat Jul 12, 2008 10:11 am
Location: Vienna/Austria
Contact:

Re: IPv6 Support

Post by killerbees19 »

Z-Man wrote:Sadly, neither my ISP nor server operator seem to support IPv6 at the moment. So my testing would be restricted to my LAN.
Setup a free IPv6 Tunnel (6in4) from SixXS or Hurricane Electric. It's really easy, especially on Linux :)


Regards,
Christian

Luke-Jr
Dr Z Level
Posts: 2246
Joined: Sun Mar 20, 2005 4:03 pm
Location: IM: [email protected]

Re: IPv6 Support

Post by Luke-Jr »

Z-Man wrote:- opening a second socket for IPv6 if the ANY option (the default) is selected.
At least on Linux, an IPv6 listener can accept IPv4 connections. There might also be a conflict if you try to bind both.
Z-Man wrote:- servers need to be listed on the masters with both their v6 and v4 addresses. Or, alternatively, there need to be two entries for each server offering both. I guess that would be easier.
- masters need to only give out v6 servers when queried over v6. And we need to avoid duplicate list entries on the client. And all our persistent stuff (bookmarks, server ratings) need to be able to switch from v4 to v6 and back. Oh boy.
Masters should probably give out both v4 and v6, but there does need to be some way to avoid duplication... Can they give multiple addresses per server?

Luke-Jr
Dr Z Level
Posts: 2246
Joined: Sun Mar 20, 2005 4:03 pm
Location: IM: [email protected]

Re: IPv6 Support

Post by Luke-Jr »

Z-Man wrote:Sadly, neither my ISP nor server operator seem to support IPv6 at the moment. So my testing would be restricted to my LAN.
Also, if you configure your router for 6to4, you can get IPv6 without tunnels or ISP support.

User avatar
Z-Man
God & Project Admin
Posts: 11331
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Re: IPv6 Support

Post by Z-Man »

Luke-Jr wrote:Can they give multiple addresses per server?
Not currently, but it's probably best to extend the protocol and storage that way. It would also potentially finally fully be able to solve the 'can't see my own server' problem: have the master store and transmit LAN addresses, too. The problem is still that the master needs to know a v4 and v6 address are from the same server. Is it possible to determine your own v6 address without tricks? If not, a random secret runtime token would be the way to go. The server generates it once on startup and keeps it for the session, and it's transmitted to the master when it makes itself known. Servers will have to talk to the master twice, then, once via v4 and once via v6.

Or, hah, just have dualstack servers additionally respond with 'by the way, I'm also on v6 address x' to v4 pings and have the clients sort duplicates out.

Sadly, the router is ISP-supplied and also doesn't know about v6. I'll try the tunnel thing.

Luke-Jr
Dr Z Level
Posts: 2246
Joined: Sun Mar 20, 2005 4:03 pm
Location: IM: [email protected]

Re: IPv6 Support

Post by Luke-Jr »

Windows 7 also sets up a Teredo tunnel by default, I hear.

Standard BSD sockets should be able to tell you what your IPv6 addresses are.

User avatar
kyle
Reverse Outside Corner Grinder
Posts: 1856
Joined: Thu Jun 08, 2006 3:33 pm
Location: Indiana, USA, Earth, Milky Way Galaxy, Universe, Multiverse
Contact:

Re: IPv6 Support

Post by kyle »

14 hours till the day :)
Image

User avatar
Mkay1
Shutout Match Winner
Posts: 1146
Joined: Mon Jun 01, 2009 4:35 pm
Contact:

Re: IPv6 Support

Post by Mkay1 »

Oops, I never saw this. My bad.

User avatar
killerbees19
Average Program
Posts: 58
Joined: Sat Jul 12, 2008 10:11 am
Location: Vienna/Austria
Contact:

Re: IPv6 Support

Post by killerbees19 »

What's the current state of IPv6 in Armagetron? :wink:

User avatar
Z-Man
God & Project Admin
Posts: 11331
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Re: IPv6 Support

Post by Z-Man »

Unchanged. Not implemented yet, won't make it into 0.4 (probably).

Post Reply