WrapSix

← Back

About

WrapSix is a NAT64. It’s implemented in userspace, currently only for Linux. There isn’t any dependency on any external library.

So far it’s the fastest available software implementation of NAT64 – faster than kernelspace Ecdysis, faster than userspace stateless Tayga. The design of WrapSix is focused on efficiency and performance; WrapSix bypasses kernel processing of network traffic and processes it on its own.

Current status

WrapSix is stable and usable. There is always space for improvements and more features, so it’s in continuous development, even though the progress isn’t blasting fast. If you’d like to see a certain feature or just a little more active development, see how to achieve this.

Download

Latest version: wrapsix-0.2.1.tar.bz2
SHA256 checksum: 8f2496dc68210a7f617c196b77ba6de548c5fc8bd0f90a66f6c9e0ec1451696e
SHA512 checksum: efac69a470e83cb585ad5649a782c6b42bb2d577e9a1ec5b9787a0eb19162c332d417a7d6767f8db8268dfc3e42a83c503dd4e656409f26a913b6619e25a6dd9

You can also download WrapSix from its git repository: git clone https://code.semirocket.science/wrapsix.

Packages

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

(The RPMs are old, though.)

Installation and configuration

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

Installation

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

Configuration

The sample configuration file is well commented and should be self-explanatory. If you need more help, contact me—ideally over IRC.

Running

NAT64 can be run by wrapsix command as root. Path to the configuration file can be specified as an argument, e.g., wrapsix /etc/wrapsix-test.conf.

HOW-TOs

DNS64

WrapSix doesn’t include DNS64, therefore you need to run other software to provide it to the network, e.g., BIND or knot-resolver provide good and working implementations 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 {};
};

knot-resolver is even simpler—these two lines are needed in /etc/knot-resolver/kresd.conf:

net.listen('::', 53)
modules = { 'dns64' }

Need help?

You can e-mail me or you can also contant me on IRC channel #wrapsix on libera.chat. Remember: I love to hear your feedback! :·) Anyway, I’m really happy to help if you run into any issues.

Licence

WrapSix is being developed under GNU GPLv3 licence.

How to help

The most obvious way is to simply contribute the code. :·) But if you need a certain feature, you can “hire” me to implement it for you (with the feature being included in the open source code afterwards). I can give you a standard invoice for this so that it is a tax-deductible expense. If you just want to support me, I can also offer a form of commercial support for WrapSix (for the amount you’d like to support the project).

For everyone outside commercial sphere, the easiest way to support me for working on WrapSix is to send me some cryptocurrencies. :·)

I work on WrapSix in my free time that I divide between this and couple of other projects. This means that the development is rather slow or stagnant, unless there is something that I need. ¯\_(ツ)_/¯

To do

A list of some things I plan to implement:

And if there is enough commercial interest and/or support, then also:

Is there a feature you’re missing and it is not on the list? Feel free to suggest it! Via e-mail or IRC.


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.


Last updated: 2024-01-19