contiki-os/contiki — pull request #804 by adamdunkels (2014-10-08 13:40:02+00:00)
Title: NAT64 for Contiki (RFC6164, RFC6147)

This pull request lets Contiki IPv6 networks access the outside IPv4 world without requiring IPv6 tunnels or IPv6 border routers by remapping IPv6 headers to IPv4 headers and converting addresses and port numbers with NAT.

We have been using this for 2+ years in the Thingsquare system and it works like a charm - makes life so much easier.

The NAT64 module is run on the RPL root, which needs to have an Ethernet connection (or similar) with IPv4. The module requests an IPv4 address via DHCPv4. This address is used when mapping IPv6 address from within the IPv6 network.

Inside the IPv6 network, nodes can use IPv4 address mapped to IPv6 addresses to communicate with IPv4 hosts. DNS responses are translated so that the addresses are mapped into IPv6 addresses.

See the README.md for more details.

This pull request will be followed up with a platform for the openmote Ethernet board that use this functionality by default. See also https://github.com/contiki-os/contiki/pull/715