AkurAI Build
Menu

Public repository / 2f952519db76ba7dd8b099a09ebda909d137ea5e

AkurAI-VPN / docs/gateway-mode.md

Latest change 2f952519db76ba7dd8b099a09ebda909d137ea5e - feat: scaffold pure-Rust zero-dep AkurAI VPN workspace (v0.0.1) by Ólafur Búi Ólafsson

# AkurAI VPN — Gateway Modes

Gateway modes are **first-class and explicit**. A node never gains a capability
implicitly; every advertisement requires admin approval at the control plane,
and an unapproved advertisement is rejected and audited (fail-closed — see
`threat-model.md`).

Modes are modelled in `akurai-common::policy::GatewayMode`:
`InternalMesh`, `Subnet`, `Exit`, `Ingress`.

## Internal mesh (default)

Devices reach other approved overlay devices by overlay IP or internal DNS.
Routes installed on every node:

```text
100.88.0.0/16 dev akurai0
fd88::/48     dev akurai0
```

## Subnet gateway

A node advertises a LAN/private subnet behind it.

```sh
akurai-node  gateway enable --subnet 192.168.1.0/24
akurai-admin routes approve home-router 192.168.1.0/24
```

Client route after approval:

```text
192.168.1.0/24 via home-router over akurai0
```

## Exit gateway

A node advertises default routes. **A node must never become an exit gateway
without explicit admin approval.**

```sh
akurai-node  gateway enable --exit
akurai-admin routes approve vps 0.0.0.0/0
akurai-admin routes approve vps ::/0
```

Clients opt in explicitly:

```sh
akurai-node exit use vps
akurai-node exit off
```

## Public ingress gateway (MVP 4)

`vpn.olibuijr.com` forwards selected public domains/ports to an internal node.

```sh
akurai-admin ingress create dashboard.vpn.olibuijr.com --to nas.oli.akurai:8080 --tls auto
akurai-admin ingress create ssh-vps --listen 2222 --to vps.oli.akurai:22
```

Ingress enforces ACLs and should use identity-aware auth for HTTP services.

## Approval is fail-closed

| Event | Result |
|-------|--------|
| Unknown node | no traffic |
| Unknown route | no install |
| Unapproved gateway advertisement | reject + audit |
| Expired node certificate/session | no peer map |
| Missing ACL | deny |

## Status

0.0.1 — `akurai-node gateway …` parses the command surface and reports intent;
`akurai-admin routes/ingress …` parse and validate arguments. No advertisement,
approval, or route push is implemented yet.