WrapSix

Notice (2018-07-16)

About a message that I couldn’t reply to.

Nicola, contact me from a different e-mail address – your e-mail server for some reason doesn’t like my server:

overnet[…].mail.protection.outlook.com[[…]] said: 550 5.7.606 Access denied, banned sending IP

I didn’t do anything to them, I don’t send spam, not even newsletters! Why would anyone ban my server? :·(

About

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 stateless Tayga.

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://github.com/xHire/wrapsix.git.

Packages

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

(They 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 unbound 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 {};
};

unbound is similarly simple—these two options are needed in /etc/unbound/unbound.conf:

server:
	module-config: "dns64 validator iterator"
	dns64-prefix: 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) 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. :c) 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, I also have an account on Liberapay where you can support me for working on WrapSix!

Donate using Liberapay

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.