An open API service indexing awesome lists of open source software.

https://github.com/ewpratten/protomask

Fast & reliable user space NAT64
https://github.com/ewpratten/protomask

clat linux-networking nat64

Last synced: 5 months ago
JSON representation

Fast & reliable user space NAT64

Awesome Lists containing this project

README

          

# `protomask`: Fast & reliable user space NAT64
[![GitHub release](https://img.shields.io/github/v/release/ewpratten/protomask)](https://github.com/ewpratten/protomask/releases/latest)
[![Build](https://github.com/Ewpratten/protomask/actions/workflows/build.yml/badge.svg)](https://github.com/ewpratten/protomask/actions/workflows/build.yml)
[![Audit](https://github.com/ewpratten/protomask/actions/workflows/audit.yml/badge.svg)](https://github.com/ewpratten/protomask/actions/workflows/audit.yml)

> The protomask tool suite is a collection of user space tools that translate packets between OSI layer 3 protocol versions

This repository (referred to as the *protomask tool suite*) contains the following sub-projects:



Crate
Info
Latest Version




protomask
User space NAT64 implementation
crates.io


protomask-clat
User space Customer-side transLATor (CLAT) implementation
crates.io


easy-tun
A pure-rust TUN interface library

crates.io
docs.rs



fast-nat
An OSI layer 3 Network Address Table built for speed

crates.io
docs.rs



interproto
Utilities for translating packets between IPv4 and IPv6

crates.io
docs.rs



rfc6052
A Rust implementation of RFC6052

crates.io
docs.rs



rtnl
Slightly sane wrapper around rtnetlink

crates.io
docs.rs

## Installation

Protomask can be installed using various methods:

### Debian

Head over to the [releases](https://github.com/ewpratten/protomask/releases) page and download the latest release for your architecture.

Then, install with:

```sh
apt install /path/to/protomask__.deb

# You can also edit the config file in /etc/protomask.json
# And once ready, start protomask with
systemctl start protomask
```

### Using Cargo

```bash
cargo install protomask
```

## Usage

The `protomask` and `protomask-clat` binaries are mostly self-sufficient.

### Nat64

To start up a NAT64 server on the Well-Known Prefix (WKP), run:

```bash
protomask --pool-prefix
```

Where `` is some block of addresses that are routed to the machine running protomask.

For more information, run `protomask --help`. Configuration may also be supplied via a JSON file. See the [example config](./config/protomask.json) for more information.

### CLAT

To start up a CLAT server on the Well-Known Prefix (WKP), run:

```bash
protomask-clat --customer-prefix
```

Where `` is some block of addresses that are routed to the machine running protomask. This would generally be the address range of a home network when run on CPE. It may also be an individual client address if run on a client device instead of a router.

For more information, run `protomask-clat --help`. Configuration may also be supplied via a JSON file. See the [example config](./config/protomask-clat.json) for more information.