#1041858 ITP: tundra-nat64 -- A minimal, user-space, stateless NAT64, CLAT and SIIT implementation for Linux

#1041858#5
Date:
2023-07-24 14:16:52 UTC
From:
To:
Hi,

* Package name    : tundra-nat64
  Upstream Contact: Vt Labuda
* URL             : https://github.com/vitlabuda/tundra-nat64
* License         : BSD3
  Programming Lang: C
  Description     : A minimal, user-space, stateless NAT64, CLAT and SIIT implementation for Linux

Stateless IP/ICMP translation (SIIT), Stateful NAT64 and [CLAT]
are important mechnisms to pave the way to an IPv6-only future. I've
found the tools we currently have in Debian to provide and use these
services, Tayga and Jool, lacking in various respects.

Tayga has major performance problems due to being single-threaded and
comes nowhere near to even measily 100Mbit forwarding on modern
hardware but it currently is the only viable way to implement [CLAT]
on Debian.

[CLAT]: Is the client-side of a 464XLAT setup. This is used to support
applications using IPv4 literals on top of an IPv6-only access network.

Jool being an out-of-tree kernel module has to employ various kernel
hacks to get it's job done that lead to all kinds of jankyness. It's
reasonably fast though, so it's more suited for deployment as a
network service. Unfortunately the upstream project is in "maintanance
only" mode so my concern is it may get abandoned at some point.

Hence we need more alternatives for these services in Debian.

tundra-nat64 is a new userspace implementation of SIIT, NAT64 and
[CLAT]. It's multithreaded as opposed to tayga so my hope is the
performance will be much better.

I plan on maintaining tuntra-nat64 myself but I do need a sponsor :)

Thanks,
--Daniel

#1041858#10
Date:
2023-07-24 14:26:03 UTC
From:
To:
As a current jool user, I'm very interested in this project. I'll have
to try this out.

Same :)

Why the heck not, I'm happy to review and sponsor; IPv6 adoption is
critical, and giving a hand to someone working to maintain current
tooling to help with the adoption is doing good work. Hit me up off-list
and we'll work out a workflow and all that.

  paultag

#1041858#15
Date:
2023-07-24 17:38:13 UTC
From:
To:
Hi,

As the maintainer of tayga, I’ll be happy to sponsor tundra too :)

#1041858#20
Date:
2023-07-24 17:49:10 UTC
From:
To:
Hi Paul,

good to know there's other people in Debian that care about IPv6 :)

I haven't actually tried it yet myself, I tend to package first -- test and
use later :D

So let me know if you do would love to hear a report.
it. Doesn't look very involved at first glance.

FYI: I have another ITP pending for VPP (fdio-vpp) -- a very, very, very
fast userspace packet processor (DPDK based) which also has SIIT/NAT64
support, but not fully featured last I checked.

Might be interesting to you too. I just never got around to actually
deploying VPP in my test network since my use-case for 10/40G routing/NAT64
dissapated so I never finsihed the package. It's about to come back though
so stay tuned :)

Thanks,
--Daniel

#1041858#25
Date:
2023-07-24 22:55:25 UTC
From:
To:
Hi Andrej,
and Paul got this. First come first sponsored I guess? :)

Thanks for the offer nonetheless,
--Daniel

PS: You can expect a crunchy new Tayga PMTU/fragmentation bug within the
fortnight if I don't forget :P

#1041858#30
Date:
2024-02-07 21:44:01 UTC
From:
To:
noowner 1041858
thanks

I've decided to focus on upstreaming a kernel based SIIT/NAT64 solution
instead of packaging tundra.

Initial packaging work is here if anyone wants to continue this anyhow:
https://salsa.debian.org/dxld/tundra-nat64

Upstream issue asking for tagging release

https://github.com/vitlabuda/tundra-nat64/issues/1

Patches:

https://github.com/vitlabuda/tundra-nat64/pull/2 - adding a Makefile
https://github.com/vitlabuda/tundra-nat64/pull/4 - hardening