Protomask
Fast & reliable user space NAT64The protomask tool suite is a collection of user space tools that translate packets between OSI layer 3 protocol versions.
protomask
(the main binary) is a user space NAT64 implementation that acts as the core NAT64 translator inside AS54041 (my autonomous system). It prioritizes efficiency and ease of use from the operator's standpoint.
I began the protomask project in 2023 as a replacement for tayga
(the translator I was using at the time). It has since served as a robust & reliable NAT64 translator for my network, and has been a great way for me to learn more about the inner workings of both versions of the Internet Protocol.
The tool suite
Alongside protomask
itself, the project provides a handful of Rust crates that perform each of the tasks needed to build a NAT64 translator. This way, even if you don't like my implementation specifically, it is easy to build on top of my work. I hope that my protocol translation logic comes to be of use to others in the future.
The libraries exposed by this project are as follows:
Additionally, a secondary binary (protomask-clat
) is shipped alongside the project. This binary is a simple CLAT implementation that can be used to deploy IPv4 networks across IPv6-only links.
Learn more
The protomask tool suite is Open Source. Check it out on GitHub.