Server

From Bondix Wiki
Revision as of 00:56, 26 June 2021 by Red (talk | contribs) (1st draft)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

The Bondix SANE server is the back-end software powering SANE that should preferably run in a data-center. It can handle multiple incoming client connections.

Requirements

  • A X86 64 bit Linux server (other platforms available upon request)

Installation

Log into your server and do the following:

Create installation directory mkdir -p /opt/bondix

cd /opt/bondix

Download installation package curl -o sane.tar.gz <DOWNLOAD-URL>
Extract package tar -xvzf sane.tar.gz

You can verify that the correct version has been installed with the command /opt/bondix/server/saneserver --version

If successful, it should print its version string.

Configuration

Like the client, configuration is done using JSON commands, which can either be sent during runtime using a configuration socket (localhost:5112), or from a configuration file that is parsed during startup.

Quick Start

This configuration provides the minimal necessities to get the server running.

[ ... ]

You will also need to execute /opt/bondix/server/ssl/create-server-cert.sh, which will generate a self-signed SSL certificate.

Environments

Environments are a collection of tunnel that share certain resources, like packet buffers, CPU thread and virtual network interfaces. You should not more environments than available CPU cores, or the number of total incoming clients.

SSL Setup

...

System Commands

...

Tunnel Manager Commands

...

Running

The software can be run in the shell using /opt/bondix/server/saneserver, where it will run in the foreground. However, it is recommended to start the service automatically on startup, which can be different depending on the platform.

Parameters

--daemon Runs the software as a daemon.
--nopid Does not attempt to create a pid-file at /var/run/saneserver.pid
--listflags Lists available feature flags
--flags <FLAG1> <FLAG2>... Enables the specified flag(s). Multiple flags are separated using space.
</path/to/filename.json> JSON configuration file that should be used

Feature Flags

Feature flags are switches that enable certain features that are otherwise unavailable. These features are usually experimental and should be used with caution.

useMMSG uses useMMSG linux socket API to send & receive multiple UDP packets at once. This improves performance under load, while stable there are some corner cases which can trigger error messages in the log.
bondingProxy Enables the TCP Bonding Proxy.