ip46nat - IPv4-IPv6 NAT

Goal of this project is to provide robust IPv4-IPv6 translation. It will be available for LinkSys routers and similar hardware. It will be using dibbler software to automatically configure routes, tunnel endpoints and other parameters. This project is fully functional. It is possible to remotely configure (using DHCPv6) a CPE (a home router) and instruct it if IPv4 traffic should be NATed to IPv6 or encapsulated in IPv6.

News

2008-09-04: Phase 2 is now complete! 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. 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.

The code (both binary and sources) is available here: ip46nat release.

Project status

[done] - tasks that are completed [wip] - work in progress [todo] - to be done (tasks that are not yet started)

Download

Date Comments
all snapshots List of all snapshots.
2009-10-27 Dibbler makefiles for generating source packages.
2009-02-12 Cleaned up patch for tunnel6.
2008-11-15 OpenVPN packages prepared.
2008-10-06 Problems with radvd's config file solved.
2008-10-05 DNS proxy is now working. There's no need for dnsmasq reinstallation. Only recommended command-line parameters were found. As a special request, radvd daemon also has been built. Also documentation (User's guide) has been updated.
2008-10-03 DNS proxy is a work in progress. Linksys package is ready for download. There's a list of options provided.
2008-09-29 Problem with reverse IPv4-over-IPv6 traffic solved. At first it appeared to be traffic type (UDP) problem, but it was length specific problem. See info.txt in the snapshot directory.
2008-09-18 New ip46nat module version with TCP/UDP checksum implemented. I was able to establish http session between IPv4 client and IPv6 server. Extra traffic captures (and screenshots) attached.
2008-09-16 Fix in the ip46nat module. Length in reverse traffic is now set properly. This should fix the issue with 2 extra bytes.
2008-09-14 Fix in the ip46nat module. Reverse IPv6 traffic now should go thru.
2008-09-04
release
Full binary version, source code and documentation.
2008-08-31 New dibbler version 0.7.2 have been released (under GPLv2 only). It provides support for tunnel-mode. OpenWRT packages are provided. Extra scripts that use tunnel-mode are also attached. All necessary software and scripts for phase 2 are now working and are available for download. Source code and updated documentation will follow within up to 3 days.
2008-08-26 All kernel modules and accompanying software have been packaged. That includes: ip46nat, iptunnel6, ip, iptables, ip6tables and others.
2008-08-25 Phase 2 is in full swing. New firmware is available. It uses kernel 2.6.25.16. It will serve as a base for further development. All extra packages will be running on those images. Additional tools will be published within a day or two.
2008-07-01 (phase 1) Phase 1 complete. Dibbler port to mips architecture is operational. Last bug (causing not to execute mappingprefixaddl script) was resolved. Example scripts provided. All required packages are now available. Firmware images for warious devices are also available. Integration and stress tests completed. Documentation to be updated soon.
Update: Documentation have been updated. It is now 20 pages long and describes installation and configuration process and some testing/validation results. Please use the link dated 2008-07-01. It is stored in the doc/
2008-06-22 Dibbler port to mips architecture is complete. Latest version (0.7.1) have been compiled and necessary packages for server and client have been prepared. Also extra package uClibc++ (required by both server and client) is compiled and available. Please see attached info.txt for details. Updated documentation is also ready.
2008-06-18 First working DHCPv6 implementation is ready! dibbler-client and dibbler-server are ready for download. Copy those files to /tmp directory, create /var/lib/dibbler directory, create and populate /etc/dibbler/client.conf and /etc/dibbler/server.conf directories and you are ready to go. More user-friendly installation method (i.e. ipk package) will be available soon.
2008-06-04 First Users Guide documentation provided.
2008-06-02 First snapshot. Contains custom build Linux firmware for linksys WRT54 devices and similar, ip46nat module and accompanying software (iptables, ip, required kernel modules, etc.) Documentation will follow with a day or two.

Tomasz Mrugalski