mlvpn.conf - MLVPN configuration
mlvpn(1) configuration file
mlvpn.conf(5) is a "ini style" config file. settings are stores within
sections, surrounded by []. Comments can be inserted anyware, starting with
#. Key / values are plain ascii separated by "=". Strings
should be escaped using double quotes ´"´
The general section is reserved for global configuration.
- •
- statuscommand = "/path/to/secure.script.sh"
- MANDATORY
- statuscommand path is called with two parameters when a status changed
within mlvpn. First argument is the interface name. Second argument
is the status name that changed.
- tuntap_up: at least one tunnel is up and running
- tuntap_down: all tunnels are down
- rtun_up: one tunnel changed status to up ($3 is the tunnel name)
- rtun_down: one tunnel changed status to down ($3 is the tunnel name)
-
- See the example file mlvpn_updown.sh for more informations
- •
- mode = "server"
- MANDATORY
- "server": listen on bind_address, bind_port for
every tunnel
- "client": connects to remote_address, remote_port
for every tunnel
-
-
- •
- timeout = 30 Timeout, expressed in seconds.
- Triggered when the other side does not responds to keepalive packets.
Keepalive are send every timeout/2 seconds.
- interface_name = "mlvpn0" Set interface name to the
specified value. (LINUX ONLY)
- password
- MANDATORY
- The password string is used to generate a key used by libsodium. Password
is mandatory and must be the same on the client and on the server.
- •
- cleartext_data If set to 1, data packets will NOT be
encrypted.
- Use with cautions.
- control_unix_path = "" Path to the unix socket for remote
control.
- control_bind_host = "" Bind address of the remote
control. (HTTP) (url:
http://[control_bind_host]:[control_bind_port]/status)
- control_bind_port = "" Bind port of the remote control.
(HTTP)
- reorder_buffer_size = 0 mlvpn includes a reordering algorithm for
it´s aggregation. This variable defines how many packets can be
held in case one end of the tunnel does receive data ouf ot order.
- Experiment to know what value is best for you. Good starting point can be
as small as 64 packets.
- 0 disables the reordering.
- •
- loss_tolerence = 0 mlvpn monitors packet loss on every link. If the
packet loss ratio on a link exceed the specified value in percent, the
link changes state to MLVPN_LOSSY and is removed from aggregation.
- Lossy links ARE used anyway if no other choices are available (if all
links are lossy)
- 100 or more disables the loss tolerence system.
-
Each tunnel must be declared in it´s own section.
The section name is mapped to the tunnel name. Example:
"[adsl1]", "[adsl2]".
- bindhost = "0.0.0.0" Bind on a specific address. (IPv4
only) (client/server)
- bindport = 5080 Bind on a specific port. (client/server)
- remotehost = "1.2.3.4" Address of the remote host.
(client)
- remoteport = 5080 Port of the remote host. (client)
- bandwidth_upload = 61440 Maximum upload bandwidth, in bytes for
this link.
- Bandwidth is specified in Bytes (1 KiB is 1024 Bytes).
- This is used to setup the weight round-robin balancing algorithm. Set 0 if
both links are similar. (client/server)
- timeout = 25 Override general timeout for this link.
(client/server)
- fallback_only = 0 Links defined with fallback_only will be
connected at all times, but will only be used if all other tunnels are
down. (client)
-
[filters] section associate a bpf(4) filter to a specific interface.
Filters are used when aggregation is used but you want to pass some traffic
specifically through only one interface, without re-ordering. (Like for using
VoIP)
Example filters:
[filters]
sdsl = udp port 5060
adsl = udp port 5060
The configuration can be reloaded at any moment by sending SIGHUP to the child
mlvpn process.
The reorder buffer will be sent "as is" on the network if the buffer
can´t be reconstructed in time, ie: packet loss. (SRTT * 2)
MLVPN status can be monitored by using ps. mlvpn prints it´s --name, then
the status of each tunnel prefixed by the status.
Status availables: !: down, @: up, ~:
lossy
Example: mlvpn: adsl3g !3g @adsl ~wifi
3g is down, adsl is up and wifi is lossy (up,
but above loss_tolerence threshold).