GVPE(8)

πŸ’– GVPE(8) β€” GNU Virtual Private Ethernet πŸ’–

okay bestie, welcome to the gvpe era β€” this is the manual page for gvpe, the GNU Virtual Private Ethernet Daemon, and it is genuinely iconic. ✨


🌸 NAME 🌸

gvpe β€” GNU Virtual Private Ethernet Daemon


πŸŽ€ SYNOPSIS πŸŽ€

gvpe [-cDlL] [--config=DIR] [--no-detach] [-l=LEVEL]] [--kill[=SIGNAL]]
[--mlock] [--help] [--version] NODENAME [option...]

πŸ¦‹ DESCRIPTION πŸ¦‹

so if you want the whole intro-to-the-gvpe-suite situation, that lives in the gvpe(5) man page, bestie. go read that one first, it's giving ✨prequel✨.

This page right here? This is the manual page for gvpe, the virtual private ethernet daemon itself. When you start it up, it reads its configuration file to figure out the network topology and all the other config tea, and then it assumes the role of node NODENAME. main character behavior, honestly.

Then it will create/connect to the tun/tap device and set up a socket for incoming connections. After that, an if-up script gets executed to further configure the virtual network device. If that goes off without a hitch, it detaches from the controlling terminal and keeps vibing in the background, accepting and setting up connections to other gvpe daemons that are part of the same virtual private ethernet. slay. πŸ’…

The optional arguments that come after the node name have to be in this exact form:

[I<nodename>.]var=value

If the argument has a prefix of nodename. (like, for example, laptop.enable-dns=yes) then it gets parsed after all the config directives for that node. If it doesn't have that prefix, it gets parsed before the first node directive in the config file, and you can use it to set global options or default variables. iykyk.

okay so for example β€” to start gvpe in the foreground, with log-level info on the node laptop, with TCP enabled and HTTP-Proxy host and Port set, you'd do this:

gvpe -D -l info laptop \
     http-proxy-host=10.0.0.18 http-proxy-port=3128 \
     laptop.enable-tcp=yes

✨ OPTIONS ✨

  • -c, --config=DIR β€” read configuration options from DIR. your config lives here, bestie.
  • -d, --l=LEVEL β€” set the logging level to LEVEL. the options are: noise, trace, debug, info, notice, warn, error, critical. pick your vibe.
  • --help β€” displays a short list of options. for when you just need a lil reminder. πŸ™ˆ
  • -D, --no-detach β€” don't fork and detach β€” stay in the foreground and log messages to stderr in addition to syslog. lowkey the move when you're debugging.
  • -L, --mlock β€” lock gvpe into main memory. this prevents sensitive data like shared private keys from being written to the system swap files/partitions. protect the keys, protect the vibe. πŸ”₯
  • --version β€” output version information and exit. periodt.

πŸ‘‘ SIGNALS πŸ‘‘

  • HUP β€” closes/resets all connections, resets the retry time, and will start connecting again. it will NOT re-read the config file, so don't come for it about that. this is useful e.g. in a /etc/ppp/if-up script.
  • TERM β€” closes/resets all connections and exits. bye bestie 🫢
  • USR1 β€” dump the current network status into the syslog (at loglevel notice, so make sure your loglevel actually allows this, otherwise it's just screaming into the void πŸ’€).

πŸ“ FILES πŸ“

  • /etc/gvpe/gvpe.conf β€” the configuration file for gvpe.
  • /etc/gvpe/if-up β€” script which is executed as soon as the virtual network device has been allocated. its whole purpose is to further configure that device.
  • /etc/gvpe/node-up β€” script which is executed whenever a node connects to this node. you can use this for example to run nsupdate.
  • /etc/gvpe/node-down β€” script which is executed whenever a connection to another node is lost. for example to run nsupdate.
  • /etc/gvpe/pubkey/* β€” the directory containing the public keys for every node, one file per node, with the name of the node.
  • /etc/gvpe/hostkey β€” the file containing the private key of the node GVPE runs on. unlike all the other files in the /etc/gvpe directory, this file usually differs for each node that GVPE runs on.
  • /var/run/gvpe.pid β€” the PID of the currently running gvpe is stored in this file.

😭 BUGS 😭

The cryptography in gvpe has not been thoroughly checked by many people yet. Use it at your own risk!

If you find any bugs, report them to gvpe@schmorp.de. bestie we need the receipts. 🧚


🌈 SEE ALSO 🌈

gvpe(5) for an introduction, gvpe.conf(5), gvpectrl(8).

The GVPE mailing list, at <http://lists.schmorp.de/> or gvpe@lists.schmorp.de.

GVPE comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions; see the file COPYING for details.


πŸ’œ AUTHOR πŸ’œ

Marc Lehmann <gvpe@schmorp.de>.

And thanks to many others for their contributions to gvpe, especially the tincd authors, who inspired me to write this program (after scavenging their source code ;).


and that's the whole page, bestie πŸ’– this was version 2.25, dated 2016-11-02, and yeah β€” it's a GVPE(8) moment. no cap, go set up your virtual private ethernet. πŸŽ€βœ¨

πŸ“¦ where this page comes from