Internet bonding router with seamless failover using Speedify (primarily)
SmoothWAN is a custom OpenWRT router distribution for fixed internet bonding setup using Speedify primarily, with an emphasis on using an internet browser for easy configuration.
This project is not affiliated with Speedify or Connectify.
Also includes Engarde and TinyFEC VPN as alternatives and self-hosting solutions.
- PC Intel/AMD
- GL.iNet Flint
- GL.iNet Slate AX
- Raspberry Pi 4 / Pi 400
- Banana Pi R64/R3 (soon)
- Use Speedify to build a reliable internet access with seamless failover, lossless and aggregated single-flow speeds by bonding two or more connections, preferably a combination of wired and wireless with baseline ISP plans as an affordable solution. e.g rural areas, developing countries...
- Cover all connected devices in a home network when it's not possible or practical to share a WAN per each device running Speedify.
- Use Engarde as an self-hosting alternative to Speedify's Redundant mode (lossless by duplicating traffic across WANs - no aggregation)
- Use TinyFEC VPN for fixing a lossy unusable internet connection using forward-error-correction (single WAN - self-hosting)
- Low budget alternative to commonly used solutions
- Backpack streaming setup. (RTMP and others are possible in LXC)
Note: If you need to combine multiple stable internet connections above 100Mbit, consider a load balancer such as the GL.iNet Slate/Flint 4.2.0 official firmware which includes Wi-Fi and easier to setup compared to the TP-Link Multi-WAN series.
- AdGuard Home pre-installed and pre-configured (one-click enable) with password change UI addition
- Dnsmasq DHCP is disabled and replaced with AdGuard Home DHCP. (revert)
- Custom Speedify version selection, GUI for built-in custom bypass, and tuning.
- Preset network configuration for various hardware
- VPN PBR pre-configured
- Tailscale installer and pre-configuration
- ntopng (deep-packet-inspection analysis) installer
- One-click cloud-init script for setting up Engarde & TinyFEC VPN in cloud
- BitTorrent detection log showing client IP address as the source
- Per-client (LAN) bandwidth limiter (EQoS)
Wiki under construction 👷
On Speedify being primary
As of (2023), I could not find an affordable mixed usage multi-mode bonding software and a service that is cost effective nor a reliable OSS solution.
More details about Speedify - Wishlist for other solutions
Note: These are my own findings and they may not be accurate.
- Includes optimization for non-livestreaming services in addition to livestreaming, e.g SSH, games etc.
- Relatively affordable due to publicly shared servers.
- Server region selection for region restricted services and multiple backup public servers.
- Application aware conditioning in "Streaming mode": sensitive streams packets (when detected) are duplicated across WANs and prioritized for VoIP, video calls, streaming, and games for seamless failover and lossless connectivity even when combining lossy WANs. While non-sensitive streams packets are aggregated across WANs for the speed of the total combined WANs, and bulk downloads using single sockets are aggregated. Sensitive streams are also aggregated with high quality sources.
- Advanced quality monitoring: per WAN quality rating system that's based on jitter, latency, stability, and speed variations over a period of time to prevent an unstable WAN from impacting total aggregation performance. e.g WAN resume and suspend delay is increased on multiple failures, poor connections will be removed from aggregation and used for backup etc.
- Automatic bypass function for region/VPN restricted services. e.g Netflix
- Per WAN VPN transport protocols for optimal connectivity when used with strict ISPs or poor middleboxes, used protocols: HTTPS(disguises as web browsing), UDP, TCP, TCP Multiple.
- "TCP Multiple" transport protocol as known as parallel transfer sockets allows maximum speed to be achieved on high latency, lossy, and far region VPN servers (with loss based CCA host settings and out-of-order packets).
- Quick packet aggregation weighing for largely asymmetric and heterogenous WANs bonding while slowly adapting on long periods when using cellular/wireless with variable speeds.
- Low out of order packet delivery on aggregation, needed for single socket TCP connection performance at the cost of minor latency increase.
- Options for using a WAN for speed boosts only with adjustable threshold (advanced - CLI) and backup only mode.
- Switching critical settings such as protocols, modes, and adding or removing WANs without disruption or requiring a restart.
- Maintains low TCP-over-TCP overhead relative to other VPNs.