Skip to content

Latest commit

 

History

History
153 lines (98 loc) · 4.55 KB

README.md

File metadata and controls

153 lines (98 loc) · 4.55 KB

gon2n

Go bindings, management daemons and CLIs for n2n edges and supernodes.

make CI dibs CI PkgGoDev

Overview

gon2n is a collection of Go bindings, management daemons and CLIs for the n2n peer-to-peer VPN. n2n is built of two main components:

  • edges, which are the "VPN clients" that manage the TUN/TAP interfaces on every device that is part of a community (a overlay network)
  • supernodes, which are responsible for both keeping track of the edges of a community as well routing traffic to edges which can't communicate to each other with a peer-to-peer connection

In a similar way, gon2n is built of multiple components. The components are:

  • edged, a n2n edge management daemon with a gRPC interface
  • supernoded, a n2n supernode management daemon with a gRPC interface
  • edgectl, a CLI for edged
  • supernodectl, a CLI for supernoded

Installation

Prebuilt Binaries

Prebuilt binaries are available on the releases page.

Go Package

A Go package is available.

Docker Image

supernoded

A Docker image is available on Docker Hub.

edged

A Docker image is available on Docker Hub.

Helm Chart

Helm charts for supernoded and edged are available in @pojntfx's Helm chart repository.

Usage

Daemons

There are two daemons, supernoded and edged; the latter requires CAP_NET_ADMIN capabilities to manage the TUN/TAP interfaces.

supernoded

You may also set the flags by setting env variables in the format SUPERNODED_[FLAG] (i.e. SUPERNODED_SUPERNODED_CONFIGFILE=examples/supernoded.yaml) or by using a configuration file.

% supernoded --help
supernoded is the n2n supernode management daemon.

Find more information at:
https://pojntfx.github.io/gon2n/

Usage:
  supernoded [flags]

Flags:
  -h, --help                               help for supernoded
  -f, --supernoded.configFile string       Configuration file to use.
  -l, --supernoded.listenHostPort string   TCP listen host:port. (default ":1050")

edged

You may also set the flags by setting env variables in the format EDGED_[FLAG] (i.e. EDGED_EDGED_CONFIGFILE=examples/edged.yaml) or by using a configuration file.

% edged --help
edged is the n2n edge management daemon.

Find more information at:
https://pojntfx.github.io/gon2n/

Usage:
  edged [flags]

Flags:
  -f, --edged.configFile string       Configuration file to use.
  -l, --edged.listenHostPort string   TCP listen host:port. (default ":1060")
  -h, --help                          help for edged

Client CLIs

There are two client CLIs, supernodectl and edgectl.

supernodectl

You may also set the flags by setting env variables in the format SUPERNODE_[FLAG] (i.e. SUPERNODE_SUPERNODE_CONFIGFILE=examples/supernode.yaml) or by using a configuration file.

% supernodectl
supernodectl manages supernoded, the n2n supernode management daemon.

Find more information at:
https://pojntfx.github.io/gon2n/

Usage:
  supernodectl [command]

Available Commands:
  apply       Apply a supernode
  delete      Delete one or more supernode(s)
  get         Get one or all supernode(s)
  help        Help about any command

Flags:
  -h, --help   help for supernodectl

Use "supernodectl [command] --help" for more information about a command.

edgectl

You may also set the flags by setting env variables in the format EDGE_[FLAG] (i.e. EDGE_EDGE_CONFIGFILE=examples/edge.yaml) or by using a configuration file (alternative with DHCP instead of static IPs).

% edgectl
edgectl manages edged, the n2n edge management daemon.

Find more information at:
https://pojntfx.github.io/gon2n/

Usage:
  edgectl [command]

Available Commands:
  apply       Apply an edge
  delete      Delete one or more edge(s)
  get         Get one or all edge(s)
  help        Help about any command

Flags:
  -h, --help   help for edgectl

Use "edgectl [command] --help" for more information about a command.

License

gon2n (c) 2021 Felix Pojtinger

SPDX-License-Identifier: AGPL-3.0