Skip to content

Latest commit

 

History

History
46 lines (33 loc) · 1.65 KB

what_is_mlvpn.rst

File metadata and controls

46 lines (33 loc) · 1.65 KB

What is mlvpn

mlvpn is a piece of software, similar to OpenVPN, which can create a network tunnel between two computers.

mlvpn encapsulates network packets, using UDP and send them encrypted over the internet to another location.

The primary use of mlvpn is to create bonded/aggregated network links in order to benefit from the bandwidth of multiple links.

Still, mlvpn can be used as a regular secure tunnel daemon, capable of handling failover scenarios.

Features

  • Bandwidth aggregation of multiple internet connections
  • Automatic failover, without changing IP addresses or interrupting TCP connections in case of a failure
  • Encrypt and authenticate connections using libsodium.
  • Hot configuration reload (by signaling SIGHUP)
  • Scriptable monitoring
  • Remote monitoring through UNIX socket or TCP/HTTP socket. (JSON API)

Limitations

Non equivalent links (3G/4G and *DSL or WIFI and *DSL)

mlvpn can aggregate very different links if reordering is enabled.

If you have a high latency 3G/4G link and a DSL connection, then adjust reorder_buffer_size to a reasonable value to get good performance.

Note that the created aggregated link will have the WORST latency of all the links. ie: the 3G/4G link.

Re-ordering is important because packets are not sent at the same speed on every path. Packets would come of order which confuses a LOT TCP. Without re-ordering, expect to have the bandwidth of the slowest link.