WrapSix is a NAT64. It's implemented in userspace, currently only for Linux. There isn't any dependency on external library (currently, may change later).

So far it's the fastest available software implementation of NAT64 – faster than kernelspace Ecdysis, faster than userspace Tayga.


Latest version: wrapsix-0.2.0.tar.bz2
MD5 checksum: 5e4130b1f42536bebccea8f44c3ed9f2
SHA1 checksum: 294a7a4d55be42d3879c397e5ff4b508620aabb2
SHA256 checksum: c3641b98879b4ae1f5711dfc91fd0655b42bc717f4e2d8be2898cdf31c6f3ac6
SHA512 checksum: 7ff2c9290d927da0473ed05ff54d8602422788cc10c690e3816908d7acc60e44e9043aaf45ab30e8a9e554aaa881cd42496fb58e766fa10e87d4120354406360

You can also download WrapSix from its git repository: git checkout git@bitbucket.org:xHire/wrapsix.git.


So far I know about the following packages people made (thanks!):

Installation and configuration

WrapSix doesn't depend on any external library. These instructions are also included in the README file.

Before compiling, don't forget to configure Wrapsix in files src/wrapper.c and src/wrapper.h.


NOTE: in bleeding-edge version of WrapSix this is no more needed.

Interface on which WrapSix should operate, e.g. eth0.
NAT64 prefix; at least /96, the default is standard 64:ff9b::/96. Input it without the information about prefix length, i.e. just 64:ff9b::.
IPv4 address which is dedicated for WrapSix and is not assigned to the host operating system.
IPv6 address which represents the host, i.e. which is assigned to the operating system. It's used in ICMP error messages.
IPv4 address which represents the host, i.e. which is assigned to the operating system. It's used in ICMP error messages.
Minimum MTU in your IPv6 network; default is 1280, but you can set it to a greater value (up to 1500).
Size of a buffer for incoming packets; it's strongly recommended to leave its value as is (i.e. 1514).


For installation use standard ./configure && make && make install commands.

NAT64 can be run by wrapsix command as root.



WrapSix doesn't include DNS64, therefore you need to run other software to provide it to the network, e.g. BIND provides good and working implementation of DNS64.

BIND can be configured in the following way—example of a minimalistic /etc/named.conf:

options {
	listen-on { none; };
	listen-on-v6 { any; };
	recursion yes;
	dns64 64:ff9b::/96 {};

Author and contact

Author is xHire <xhire -at- wrapsix.org>. You can also contant me on IRC channel #wrapsix on freenode.net. Remember: I love to hear your feedback! :c)


WrapSix is being developed under GNU GPLv3 licence.

What is NAT64?

Very simply said: NAT64 is a mechanism that makes it possible to communicate with IPv4-only servers from an IPv6-only network.