IPv6 Support
- Tank Program
- Forum & Project Admin, PhD
- Posts: 6711
- Joined: Thu Dec 18, 2003 7:03 pm
IPv6 Support
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.)
Re: IPv6 Support
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.
- 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.
- Tank Program
- Forum & Project Admin, PhD
- Posts: 6711
- Joined: Thu Dec 18, 2003 7:03 pm
Re: IPv6 Support
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.
- killerbees19
- Average Program
- Posts: 58
- Joined: Sat Jul 12, 2008 10:11 am
- Location: Vienna/Austria
- Contact:
Re: IPv6 Support
Setup a free IPv6 Tunnel (6in4) from SixXS or Hurricane Electric. It's really easy, especially on LinuxZ-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.
Regards,
Christian
-
- Dr Z Level
- Posts: 2246
- Joined: Sun Mar 20, 2005 4:03 pm
- Location: IM: [email protected]
Re: IPv6 Support
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:- opening a second socket for IPv6 if the ANY option (the default) is selected.
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?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.
-
- Dr Z Level
- Posts: 2246
- Joined: Sun Mar 20, 2005 4:03 pm
- Location: IM: [email protected]
Re: IPv6 Support
Also, if you configure your router for 6to4, you can get IPv6 without tunnels or ISP support.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.
Re: IPv6 Support
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.Luke-Jr wrote:Can they give multiple addresses per server?
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.
-
- Dr Z Level
- Posts: 2246
- Joined: Sun Mar 20, 2005 4:03 pm
- Location: IM: [email protected]
Re: IPv6 Support
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.
Standard BSD sockets should be able to tell you what your IPv6 addresses are.
- kyle
- Reverse Outside Corner Grinder
- Posts: 1876
- Joined: Thu Jun 08, 2006 3:33 pm
- Location: Indiana, USA, Earth, Milky Way Galaxy, Universe, Multiverse
- Contact:
Re: IPv6 Support
14 hours till the day
Re: IPv6 Support
Oops, I never saw this. My bad.
- killerbees19
- Average Program
- Posts: 58
- Joined: Sat Jul 12, 2008 10:11 am
- Location: Vienna/Austria
- Contact:
Re: IPv6 Support
What's the current state of IPv6 in Armagetron?
Re: IPv6 Support
Unchanged. Not implemented yet, won't make it into 0.4 (probably).