gogoNET

IPv6 products, community and services

I'm investigating the various transition technologies available with IPv6, and there's one piece of the puzzle which I'm having a very hard time finding - an IPv4 to IPv6 proxy program.

Here's what I have in mind: there are plenty of programs which are v4 only, and will never be updated to use v6. There needs to be a way to still use those programs in an IPv6 world. Of course, one approach is to use dual stack, but dual stack is, long-term, a dead end. The goal should be eventually to turn off IPv4 (of course, we can't do that any time soon).

But, to be able to turn off IPv4, we need some way to IPv6-enable 'legacy' IPv4 services and applications. There might be different ways to do this, and there might be a simpler way than what I'm about to propose, but this at least seems like it would work, even if it wouldn't be the simplest thing in the world.

What I'd like is an application/service which would run in the background, and which I can use to set up a mapping between IPv4 and IPv6. So, for example, I have a game called Wolfenstein: Enemy Territory, which came out in like 2002 or 2003, so it's old, and not being maintained anymore. It's not likely that it will ever have IPv6 support.

But, I would like to setup an ET server which is available via IPv6. I think this could be done by having software which opens a listener socket on port 27960 on my server's IPv6 stack, then, when any connection is made to IPv6 port 27960, it would open a connection to IPv4 port 27960 (which my ET server would be listening for connections on), and passes through the data from IPv6 to IPv4.

Then, for the people who are playing the game, it would go the other way - they would setup the software to listen for connections on IPv4 port 27960, and when a connection is made, would automatically open up an IPv6 connection to my server's IPv6 address, port 27960 (this would be basically, a manually configured, static proxy system that I have in mind, although if someone could figure out a clever way to automate it, that would be even better).

Anyone have any recommendations?

Views: 381

Reply to This

Replies to This Discussion

based on your suggestion, I have another idea: sort of a dual stack lite approach.

You set up an IPv4 in IPv6 tunnel between the client and your server. The ET service then listens on the tunnel(s)

It gives extra overhead, but the technology already exists for it.

This is not widely applicable, because if you want to connect to more IPv4 services at the same time, the chance for subnet overlap becomes bigger, but for limited purposes it may work.

For your proxy approach: how are you going to feed the TCP/UDP segments to the service, which is built to listen on a IPv4 socket?
I thought about this approach, but it sounds maybe overly compicated. That is, if I understand what you are suggesting - I think you are proposing something like setting up a sort of vpn (except, maybe not encrypted) where you configure the server and clients all to use a common IPv4 subnet, like 10.129.1.* for example, and then use IPv6 to automatically forward all the packets?

Do you know of any software that would make this simple? In all honesty, that approach just sounds complicated. *Particularly* if I'm trying to convince people to try to use IPv6 over their existing IPv4 connection, in which case you are running IPv4-over-IPv6-over-IPv4 which begins to sound, I think to most people, like 'what's the point of IPv6 again?'

My proposed solution is still kind of complicated, but I envision something like this, ultimately (I may try to code up a solution like this, someday): You connect to IPv6 somehow (gogo6, or 6to4, or a native IPv6 connection). Then, on the client side you download and install a game browser program (like Kali, Gamespy Arcade, All Seeing Eye, XFire, etc). The game server browser is aware of and lists IPv6 servers. If you select an IPv6 server and click the launch/connect button in the game browser, then the browser could automaticallyl configure a local v4/v6 proxy to the server's IPv6 address, then launch the game client and tell it to connect to localhost:xyz (whre xyz is the port number that the proxy was setup to listen on locally).
Oh, that is possible with ssh

All you need is a ssh client and server, both running on the localhost.

Maybe ssh is overkill, but I think it would work.
Jeff, check this out.

This is to announce the availability of two NAT64-DNS64 open-source implementations by Viagenie, as follows:

======
NAT64
======
BSD PF:
this implementation of NAT64 is made by modifying the PF packet filter available on BSD systems. A new 'nat64' statement is created in the pf.conf file to enable the nat64 functionality.

Linux Netfilter:
The implementation of NAT64 for linux is available as a kernel module. It uses Netfilter's facilities for packet interception. The configuration is done with parameters provided at module insertion.

======
DNS64
======
As announced in july 2009 during IETF Stockholm, the companion DNS64 functionality is also available in two implementations, as follows:

BIND:
this implementation of DNS64 is made by modifying the BIND DNS server. A new "dns64-prefix" statement in options is created in the named.conf file to enable DNS64 functionality.

Unbound:
this implementation of DNS64 is made by adding a module to the Unbound DNS server. To enable the DNS64 functionality, the module should be declared and the dns64-prefix statement should be added in the
unbound.conf file.

The two functionalities (NAT64 and DNS64) make a complete system for translating IPv6-IPv4 packets. The source code, some pre-compiled packages and project description are available at:
http://ecdysis.viagenie.ca

This project was funded by NLNet foundation and Viagenie.

They are looking for feedback, patches, suggestions from the community.

http://ecdysis.viagenie.ca

RSS

Sponsors

Coming soon...

IPv6 Product Information

gogoNET LIVE! 3 Event

Nov. 12-14, 2012, Silicon Valley, USA

© 2012   Created by gogo6.

Badges  |  Report an Issue  |  Terms of Service