c0repwn3r 40ce3efe3c | ||
---|---|---|
.builds | ||
.idea | ||
api | ||
dnapi-rs | ||
docs | ||
nebula-ffi | ||
packages | ||
tfcli | ||
tfclient | ||
tfweb | ||
trifid-api | ||
trifid-pki | ||
.env | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
Dockerfile | ||
LICENSE.txt | ||
README.md | ||
index.md |
README.md
trifid
trifid is an open-souce reimplementation of the Defined Networking management protocol for Nebula networks.
It includes a reimplementation of the API Server, the Web UI, dnclient
, nebula-cert
and dnapi
- all fully API-compatible with the original versions.
We also include a Rust library for interacting with keys and certificates in the Nebula PKI. Find it in trifid-pki/
, or on crates.rs as trifid-pki
.
Want to make your own Defined Networking client? Check out dnapi-rs
! dnapi-rs
is a Rust port of the official dnapi
Go library, to allow for easy interactions with Defined Networking-compatible API servers. Find it in dnapi-rs/
, or on crates.rs as dnapi-rs
.
The API implementation is tested with the official dnclient implementaiton, and the dnclient implementation is tested with the official API server, to ensure complete feature parity between the two.
The original Web UI does not work with trifid-api quite yet, as we haven't finished reverse engineering that API. Feature table below:
Features
trifid-api feature table:
Feature | trifid-api | api.defined.net |
---|---|---|
Enroll in sites with dnclient | Yes | Yes |
Automatic config update polling by dnclient | Yes | Yes |
Group-based firewalling | Yes | Yes |
All config features | Yes | Not officially |
SSO authentication | Not yet | Yes |
Open-source server | Yes | No |
tfclient feature table:
Feature | tfclient | dnclient |
---|---|---|
Enroll in trifid-api/api.defined.net sites | Yes | Yes |
Automatic VPN profile setup | Yes | Yes |
Poll the API server for config updates | Yes | Yes |
Secure Ed25519 signing for API communication | Yes | Yes |
Documentation
Documentation work is underway. You can find a link to all documentation on the main project page here.