Skip to content
/ gon2n Public
forked from pojntfx/gon2n

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

License

Notifications You must be signed in to change notification settings

ld-2021/gon2n

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 92.0%
  • C 5.8%
  • Makefile 1.7%
  • C++ 0.5%