.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.30) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` . ds C' 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "GVPE 8" .TH GVPE 8 "2016-11-02" "2.25" "GNU Virtual Private Ethernet" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" "gvpe" \- GNU Virtual Private Ethernet Daemon .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\f(CW\*(C`gvpe\*(C'\fR [\fB\-cDlL\fR] [\fB\-\-config=\fR\fI\s-1DIR\s0\fR] [\fB\-\-no\-detach\fR] [\fB\-l=\fR\fI\s-1LEVEL\s0]\fR] [\fB\-\-kill\fR[\fB=\fR\fI\s-1SIGNAL\s0\fR]] [\fB\-\-mlock\fR] [\fB\-\-help\fR] [\fB\-\-version\fR] \&\fI\s-1NODENAME\s0\fR [\fIoption...\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" See the \fIgvpe\fR\|(5) man page for an introduction to the gvpe suite. .PP This is the manual page for gvpe, the virtual private ethernet daemon. When started, \f(CW\*(C`gvpe\*(C'\fR will read it's configuration file to determine the network topology, and other configuration information, assuming the role of node \fI\s-1NODENAME\s0\fR .PP It will then create/connect to the tun/tap device and set up a socket for incoming connections. Then a \f(CW\*(C`if\-up\*(C'\fR script will be executed to further configure the virtual network device. If that succeeds, it will detach from the controlling terminal and continue in the background, accepting and setting up connections to other gvpe daemons that are part of the same virtual private ethernet. .PP The optional arguments after the node name have to be of the form: .PP .Vb 1 \& [I.]var=value .Ve .PP If the argument has a prefix of \f(CW\*(C`nodename.\*(C'\fR (i.e. \f(CW\*(C`laptop.enable\-dns=yes\*(C'\fR) then it will be parsed after all the config directives for that node, if not, it is parsed before the first node directive in the config file, and can be used to set global options or default variables. .PP For example, to start \f(CW\*(C`gvpe\*(C'\fR in the foreground, with log-level \f(CW\*(C`info\*(C'\fR on the node \f(CW\*(C`laptop\*(C'\fR, with \s-1TCP\s0 enabled and HTTP-Proxy host and Port set, use this: .PP .Vb 3 \& gvpe \-D \-l info laptop \e \& http\-proxy\-host=10.0.0.18 http\-proxy\-port=3128 \e \& laptop.enable\-tcp=yes .Ve .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-c\fR, \fB\-\-config=\fR\fI\s-1DIR\s0\fR" 4 .IX Item "-c, --config=DIR" Read configuration options from \fI\s-1DIR\s0\fR .IP "\fB\-d\fR, \fB\-\-l=\fR\fI\s-1LEVEL\s0\fR" 4 .IX Item "-d, --l=LEVEL" Set logging level to \fI\s-1LEVEL\s0\fR (one of: noise, trace, debug, info, notice, warn, error, critical). .IP "\fB\-\-help\fR" 4 .IX Item "--help" Display short list of options. .IP "\fB\-D\fR, \fB\-\-no\-detach\fR" 4 .IX Item "-D, --no-detach" Don't fork and detach but stay in foreground and log messages to stderr in addition to syslog. .IP "\fB\-L\fR, \fB\-\-mlock\fR" 4 .IX Item "-L, --mlock" Lock \f(CW\*(C`gvpe\*(C'\fR into main memory. This will prevent sensitive data like shared private keys to be written to the system swap files/partitions. .IP "\fB\-\-version\fR" 4 .IX Item "--version" Output version information and exit. .SH "SIGNALS" .IX Header "SIGNALS" .IP "\s-1HUP\s0" 4 .IX Item "HUP" Closes/resets all connections, resets the retry time and will start connecting again (it will \s-1NOT\s0 re-read the config file). This is useful e.g. in a \&\f(CW\*(C`/etc/ppp/if\-up\*(C'\fR script. .IP "\s-1TERM\s0" 4 .IX Item "TERM" Closes/resets all connections and exits. .IP "\s-1USR1\s0" 4 .IX Item "USR1" Dump current network status into the syslog (at loglevel \f(CW\*(C`notice\*(C'\fR, so make sure your loglevel allows this). .SH "FILES" .IX Header "FILES" .ie n .IP "\*(C`/etc/gvpe/gvpe.conf\*(C'" 4 .el .IP "\f(CW\*(C`/etc/gvpe/gvpe.conf\*(C'\fR" 4 .IX Item "/etc/gvpe/gvpe.conf" The configuration file for \f(CW\*(C`gvpe\*(C'\fR. .ie n .IP "\*(C`/etc/gvpe/if\-up\*(C'" 4 .el .IP "\f(CW\*(C`/etc/gvpe/if\-up\*(C'\fR" 4 .IX Item "/etc/gvpe/if-up" Script which is executed as soon as the virtual network device has been allocated. Purpose is to further configure that device. .ie n .IP "\*(C`/etc/gvpe/node\-up\*(C'" 4 .el .IP "\f(CW\*(C`/etc/gvpe/node\-up\*(C'\fR" 4 .IX Item "/etc/gvpe/node-up" Script which is executed whenever a node connects to this node. This can be used for example to run nsupdate. .ie n .IP "\*(C`/etc/gvpe/node\-down\*(C'" 4 .el .IP "\f(CW\*(C`/etc/gvpe/node\-down\*(C'\fR" 4 .IX Item "/etc/gvpe/node-down" Script which is executed whenever a connection to another node is lost. for example to run nsupdate. .ie n .IP "\*(C`/etc/gvpe/pubkey/*\*(C'" 4 .el .IP "\f(CW\*(C`/etc/gvpe/pubkey/*\*(C'\fR" 4 .IX Item "/etc/gvpe/pubkey/*" The directory containing the public keys for every node, one file per node with the name of the node. .ie n .IP "\*(C`/etc/gvpe/hostkey\*(C'" 4 .el .IP "\f(CW\*(C`/etc/gvpe/hostkey\*(C'\fR" 4 .IX Item "/etc/gvpe/hostkey" The file containing the private key of the node \s-1GVPE\s0 runs on. Unlike all the other files in the \fI/etc/gvpe\fR directory, this file usually differes for each node that \s-1GVPE\s0 runs on. .ie n .IP "\*(C`/var/run/gvpe.pid\*(C'" 4 .el .IP "\f(CW\*(C`/var/run/gvpe.pid\*(C'\fR" 4 .IX Item "/var/run/gvpe.pid" The \s-1PID\s0 of the currently running \f(CW\*(C`gvpe\*(C'\fR is stored in this file. .SH "BUGS" .IX Header "BUGS" The cryptography in gvpe has not been thoroughly checked by many people yet. Use it at your own risk! .PP If you find any bugs, report them to \f(CW\*(C`gvpe@schmorp.de\*(C'\fR. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIgvpe\fR\|(5) for an introduction, \fIgvpe.conf\fR\|(5), \fIgvpectrl\fR\|(8). .PP The \s-1GVPE\s0 mailing list, at or \&\f(CW\*(C`gvpe@lists.schmorp.de\*(C'\fR. .PP \&\s-1GVPE\s0 comes with \s-1ABSOLUTELY NO WARRANTY. \s0 This is free software, and you are welcome to redistribute it under certain conditions; see the file \s-1COPYING\s0 for details. .SH "AUTHOR" .IX Header "AUTHOR" Marc Lehmann \f(CW\*(C`\*(C'\fR. .PP 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 ;).