Basic website content
This commit is contained in:
parent
93b110b395
commit
74bd460580
16
.vscode/tasks.json
vendored
16
.vscode/tasks.json
vendored
@ -4,6 +4,9 @@
|
|||||||
{
|
{
|
||||||
"type": "cargo",
|
"type": "cargo",
|
||||||
"command": "build",
|
"command": "build",
|
||||||
|
"args": [
|
||||||
|
"--workspace"
|
||||||
|
],
|
||||||
"problemMatcher": [
|
"problemMatcher": [
|
||||||
"$rustc",
|
"$rustc",
|
||||||
"$rust-panic"
|
"$rust-panic"
|
||||||
@ -14,12 +17,25 @@
|
|||||||
{
|
{
|
||||||
"type": "cargo",
|
"type": "cargo",
|
||||||
"command": "test",
|
"command": "test",
|
||||||
|
"args": [
|
||||||
|
"--workspace"
|
||||||
|
],
|
||||||
"problemMatcher": [
|
"problemMatcher": [
|
||||||
"$rustc",
|
"$rustc",
|
||||||
"$rust-panic"
|
"$rust-panic"
|
||||||
],
|
],
|
||||||
"group": "test",
|
"group": "test",
|
||||||
"label": "rust: cargo test"
|
"label": "rust: cargo test"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"command": "zola",
|
||||||
|
"args": [
|
||||||
|
"-r",
|
||||||
|
"docs/website",
|
||||||
|
"serve"
|
||||||
|
],
|
||||||
|
"label": "zola: serve website"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
1
docs/website/.gitignore
vendored
Normal file
1
docs/website/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/public
|
8
docs/website/config.toml
Normal file
8
docs/website/config.toml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
base_url = "https://protomask.ewpratten.com"
|
||||||
|
compile_sass = true
|
||||||
|
build_search_index = true
|
||||||
|
|
||||||
|
[markdown]
|
||||||
|
highlight_code = true
|
||||||
|
|
||||||
|
[extra]
|
33
docs/website/content/_index.md
Normal file
33
docs/website/content/_index.md
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
---
|
||||||
|
title: Protomask
|
||||||
|
---
|
||||||
|
|
||||||
|
## What is protomask?
|
||||||
|
|
||||||
|
Protomask is a user space [NAT64](https://en.wikipedia.org/wiki/NAT64) implementation geared towards networks that need fast and reliable inter-protocol packet translation. Behind the scenes, protomask uses the [Universal TUN/TAP Device Driver](https://docs.kernel.org/networking/tuntap.html) to translate incoming packets from IPv4 to IPv6 and vice-versa.
|
||||||
|
|
||||||
|
## The protomask tool suite
|
||||||
|
|
||||||
|
To accomplish the various translation needs of an IPv6-only or dual-stack ISP, the protomask tool suite includes a few tools:
|
||||||
|
|
||||||
|
- **`protomask`**: The main NAT64 daemon
|
||||||
|
- Translates IPv6 packets using *RFC6052 IPv4-Embedded IPv6 Addressing* to native IPv4 traffic
|
||||||
|
- Can handle high volumes of traffic from multiple clients simultaneously
|
||||||
|
- **`protomask-clat`**: A Customer-side transLATor (CLAT) implementation
|
||||||
|
- Intended to be deployed at the customer edge to pass IPv4 traffic over an IPv6-only ISP's network
|
||||||
|
|
||||||
|
Every tool in the protomask suite is easy to deploy and configure, plus supports optionally exposing Prometheus metrics for remote monitoring.
|
||||||
|
|
||||||
|
## The protomask library suite
|
||||||
|
|
||||||
|
The development of protomask necessitated the creation of a few specialized software libraries. Since the technology developed for protomask is useful outside of the scope of this project, these libraries are also available for general use:
|
||||||
|
|
||||||
|
- **`easy-tun`**: A minimal TUN interface library
|
||||||
|
- **`fast-nat`**: A library designed for highly efficient mapping and lookup of IP address pairs
|
||||||
|
- **`interproto`**: The heart of protomask, a library for translating many types of packets between layer 3 protocols
|
||||||
|
- **`rfc6052`**: A Rust implementation of RFC6052
|
||||||
|
- **`rtnl`**: A high-level wrapper around `rtnetlink`
|
||||||
|
|
||||||
|
## Want to learn more?
|
||||||
|
|
||||||
|
Check out the [documentation](/book) for a deeper dive into protomask, or head over to the [GitHub repository](https://github.com/ewpratten/protomask) to see the source code.
|
7
docs/website/sass/main.scss
Normal file
7
docs/website/sass/main.scss
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
.container {
|
||||||
|
max-width: 1000px !important;
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
}
|
45
docs/website/templates/base.html
Normal file
45
docs/website/templates/base.html
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{% block title %}{% endblock title %}</title>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/main.css">
|
||||||
|
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet"
|
||||||
|
integrity="sha384-4bw+/aepP/YC94hEpVNVgiZdgIC5+VKNBQNGCHeKRQN+PtmoHDEXuppvnDJzQIu9" crossorigin="anonymous">
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"
|
||||||
|
integrity="sha512-z3gLpd7yknf1YoNbCzqRKc4qyor8gaKU1qmn+CShxbuBusANI9QpRohGBreCFkKxLhei6S9CQXFEbbKuqLg0DA=="
|
||||||
|
crossorigin="anonymous" referrerpolicy="no-referrer" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<nav class="navbar navbar-expand-lg bg-body-tertiary sticky-top">
|
||||||
|
<div class="container">
|
||||||
|
<a class="navbar-brand" href="/">Protomask</a>
|
||||||
|
<div class="navbar-nav ml-auto">
|
||||||
|
<a class="nav-link active" aria-current="page" href="/book"><i class="fa-solid fa-book"></i> Documentation</a>
|
||||||
|
<a class="nav-link active" aria-current="page" href="https://github.com/ewpratten/protomask" target="_blank">
|
||||||
|
<i class="fa-brands fa-github"></i>
|
||||||
|
Source Code
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
{% block content %}{% endblock content %}
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<hr>
|
||||||
|
<p style="text-align:center">Protomask is a project by <a href="https://ewpratten.com">Evan Pratten</a></p>
|
||||||
|
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"
|
||||||
|
integrity="sha384-HwwvtgBNo3bZJJLYd8oVXjrBZt8cqVSpeBNS5n7C8IVInixGAoxmnlMuBnhbgrkm"
|
||||||
|
crossorigin="anonymous"></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
19
docs/website/templates/index.html
Normal file
19
docs/website/templates/index.html
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{section.title}}{% endblock title %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div style="background-color:lightgray;width:100%;height:20vh;display:flex;justify-content:center;align-items:center;">
|
||||||
|
<div style="text-align:center;">
|
||||||
|
<h1 style="font-weight:bold;font-size:5em;padding:0;margin:0;">Protomask</h1>
|
||||||
|
<span style="font-size: 1.25em;">The ultimate tool suite for transitioning to IPv6</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
{{section.content|safe}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock content %}
|
Loading…
x
Reference in New Issue
Block a user