Client

From Bondix Wiki
Revision as of 13:57, 23 June 2021 by Red (talk | contribs)

The Bondix SANE client is the software that you install on your supported router, which establishes a connection to the server using multiple WAN links.

For OpenWRT based routers, please check this page.

Installation

Log into your router via SSH 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/client/saneclient --version

If successful, it should print its version string.

Configuration

Configuration is done using JSONformatted commands. By default, SANE checks for the existence of a configuration file in its installation directory (e.g. /opt/bondix/client/saneclient.json) and at /etc/saneclient.json. If you want saneclient to load a configuration from a different location, you can specify it using a command line parameter.

Quick Start

This example provides the minimal necessities to get a tunnel up and running:

[
  {"action": "create", "target": "tunnel", "name": "TUNNELNAME", "password": "TUNNELPASSWORD"},
  {"action": "add-server", "target": "tunnel", "host": "ENDPOINTSERVER", "port": "443"},
  {"action": "create-interfaces", "target": "tunnel", "interfaces": {
    "eth1": "mobileAggressive",
    "wwan0": "mobileAggressive",
    "wwan1": "mobileAggressive"
  }},
  {"target": "tunnel", "action": "set-preset", "preset": "bonding"}
]

Client Commands

    • todo**

Running

The software can be run in the shell using /opt/bondix/client/saneclient, 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/saneclient.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

useBlake Switches from SHA256 to the "blake" hashing algorithm. Depending on architecture, this can slightly improve performance.
useBlake3 Switches to the "blake3" hashing algorithm. Depending on architecture, this can slightly improve performance.
disableHash Disables hashing completely, allowing potential MitM, with a vast speed improvement.
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.
channelRoutes Makes the client create specific routes for each channel. Experimental, do not use.
bondingProxy Enables the TCP Bonding Proxy.