Next: , Previous: , Up: User  


Server part

Except for common -mtu, -stats, -egd options server has the following ones:

-proto

network protocol to use. Can be udp (default), tcp or all.

-bind

Address (host:port format) we must bind to.

-conf

Path to JSON file with the configuration.

-proxy

Start trivial HTTP Proxy server on specified host:port.

Configuration file is JSON file with following example structure:

{
  "9b40701bdaf522f2b291cb039490312": {  <-- Peer identifier
    "name": "stargrave",                <-- OPTIONAL human readable name
    "up": "./stargrave-up.sh",          <-- up-script
    "down": "./stargrave-down.sh",      <-- OPTIONAL down-script
    "timeout": 60,                      <-- OPTIONAL overriden timeout
    "noise": true,                      <-- OPTIONAL noise enabler
                                            (default: false)
    "cpr": 64,                          <-- OPTIONAL constant packet
                                            rate in KiB/sec
    "verifier": "2c15bbdffc73193bea56db412bce1143c68ccbdaa9e2eade53a684497646a685"
  },
  [...]
}

See Verifier for its description.

up-script executes each time connection with the client is established. Its stdout output must contain TAP interface name as the first line. This script can be simple echo tap10, or maybe more advanced like this:

#!/bin/sh
$tap=$(ifconfig tap create)
ifconfig $tap inet6 fc00::1/96 mtu 1412 up
echo $tap

Each minute server rereads and refreshes peers configuration and adds newly appeared identities, deletes an obsolete ones.

You can use convenient utils/newclient.sh script for new client creation:

% ./utils/newclient.sh Alice
[...]
Your id is: 7012df29deee2170594119df5091d4a2

Place the following JSON configuration entry on the server's side:

    "906e34b98750c4f686d6c5489508763c": {
        "name": "Alice",
        "up": "/path/to/up.sh",
        "verifier": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    }
[...]