- cross-posted to:
- [email protected]
- [email protected]
- [email protected]
- cross-posted to:
- [email protected]
- [email protected]
- [email protected]
Video creator and IPv6 enthusiast apalrd’s adventures - @[email protected] - is planning to lead a renewed effort continuing development of the NAT64 translator tayga.
He also made a video comparing different existing open source solutions and demoing tayga on YouTube: https://www.youtube.com/watch?v=WlQH8KubgiA
IMO tayga shouldn’t even be branded as a NAT64. It can be used for SIIT or as a CLAT in a 464XLAT setup but crucially those are both different from true NAT64. The only FOSS NAT64 I’ve found is jool
I’ve only ever used Jool – because I’m vain and foolishly think I’ll one day have enough traffic to warrant multiple state-sharing translators – but I think Tayga has it right from their README:
Stateless versus Stateful NAT64
In situations where stateful NAT64 is required, TAYGA can be used in combination with a stateful IPv4 NAT such as the iptables MASQUERADE target. This allows the administrator a great deal more flexibility than if stateful NAT were implemented directly in TAYGA.
For known-sized subnets (eg security cameras), it can be perfectly appropriate to use stateless NAT64 so that old hardware can speak the modern Internet Protocol. But in other situations, stateless NAT64 is the only way to go and the Tayga developers knew to not reinvent the decades-old, proven stateful NAT44 mechanism in the Linux kernel.
And not could they hope to even compete with the kernel, as Tayga is based on the user space Tun/Tap driver. Jool, however, is in kernel, and can do some amazing (read: unusual) things. But just because Tayga only supports stateless operation doesn’t mean it should be ignored as a valid NAT64 solution, even if it’s not full featured.
IMO, the more ways we can get away from Legacy IP, the better.
I’m not saying it should be ignored. “Stateless NAT64” is technically called SIIT and is a mode of operation Jool supports too. I am mostly complaining about terminology here, not usefulness. Tayga is not a NAT64 and has different use cases.
Tayga is not a NAT64
Tayga does Translation of Network Addresses, between IPv4 and IPv6. Compared to Jool, Tayga almost purely does address translation, unburdened by the needs of port translation.
The fact that NAT44 implementations customarily include port translation for TCP/UDP carries little weight on the terminology of IPv6 technologies, the same way that DHCPv6 stripped away the disparate functionalities of DHCPv4 to be more modular and less like a “kitchen sink”, deferring to RDNSS or even outright running in stateless DHCPv6 mode.
Correct, and stateless translation is called SIIT which is the point of my comment. NAT64 traditionally refers to NAPT. Just like how NAT66 traditionally refers to NAPT and stateless 6to6 translation is usually referred to as NPTv6