ip46nat - IPv4-IPv6 NAT

Goal of this project was to provide robust, fast, completely stateless IPv4-IPv6 translation. It is mainly available for LinkSys routers and similar hardware, but will work on any Linux based device. This code is fully functional. The project is now concluded.

This project is concluded and no further development, bug fixes or improvements are planned. Please contact author if you would like to take over this project.


Some time in 2012: The project is available on github. There are 2 branches: master (for little endians) and endian - an updated version that works on big endians, but was never tested on little endians.

2010-09-27: It is now possible to configure IPv4-to-IPv6 NAT or a IPv4-over-IPv6 tunnel. Both traffic types are working. Configuration can be done remotely via DHCPv6 and maunally as well. Both client and server support transmission of those extra parameters required for tunnel creation. It is possible to configure server to provide the same tunnel parameters to all clients or different value for each client. (I was not sure which approach would be better, so I've covered both).

Tunnel parameters are implemented as an vendor-specific option (with several suboptions). It is possible to configure, which vendor-id should be used. For added flexibility, client calls external shell script that configures the tunnels. (It is trivial to modify the script, to adjust some parameters). Everything is ported (and verified to be working) on LinkSys device. Also special Dibbler version has been released. It supports tunnel configuration and is released under GPL v2.

Extensive documentation (36+ pages long) is available.

Project status


Date Comments
sources Source code on github.
all old snapshots List of all snapshots.
2010-09-27 Release version of ip46nat.

Tomek Mrugalski