/SmoothWAN

Internet bonding router with seamless failover using Speedify

Primary LanguageCSSBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Discord

Internet bonding router using Speedify

A router OS for easy bonding setup using Speedify as the main gateway with OpenWRT without command line usage.
Not affiliated with Speedify or Connectify.

Use case:

  • Build a reliable internet access with seamless failover, lossless and usable single-flow speeds by bonding two or more connections, preferably a combination of wired and wireless with baseline ISP plans.
  • Use Speedify as an SDN bonding VPN to cover all connected devices in a home network when it's not possible or practical to share a WAN per device.
  • Backpack streaming setup.



Pi Update regarding router/AP section: It's advisable to turn off DHCP in router/AP settings and plug SmoothWAN to LAN.


Quick Setup using a smartphone
  • Download and follow the instructions from "Releases" page.
  • Connect your hardware in a similiar way to this example:

- The Pi/Slate is now broadcasting as a Wi-Fi access point for easy configuration, connect to "SmoothWAN Setup", password: "brassworld":

- Visit: http://172.17.17.2 there is no password set:


- You will be greeted with brief instructions in the UI, setup Speedify:

- Click "Trigger Install/Update":

- Click "View Log" tab, it will show "Speedify is installed" at the end of the log after few seconds:

- Head to Status->Overview:

- Speedify app is now installed, login:

- Setup a password for SmoothWAN admin page in System->Administration
- All done, enjoy a reliable internet.

  • Extra: to change the USB ports / WAN name, head to Interfaces->Multi-WAN USB:



  • Pi specifics:
    • Connect and configure a Wi-Fi AP/router if needed, the internal Wi-Fi of the Pi is poor for general use, connect using RPi4's Ethernet port to a configured AP/router (more info):

    • After connecting your mobile over the Wi-Fi AP/router, head over to Network->Wireless and disable Pi's Wi-Fi:


Speedify observed details in Q4 2022
  • Relatively affordable and does not require setting up a server.
  • Includes optimization for non-streaming services.
  • Instant server region selection for region restricted services and multiple backup public servers.
  • SDN VPN: By having one exit IP address, connected network sessions are uninterrupted by flow control: sensitive streams packets 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.
  • FEC using existing DTLS(?) encryption.
  • 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.
  • 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). Also circumvents poor ISP restrictions.
  • Quick packet aggregation weighing for largely asymmetric and heterogenous WANs. Slowly adapts to speed variations when using cellular/wireless.
  • Low out of order packet delivery on aggregation, needed for single socket TCP connection performance.
  • An option for using a WAN for speed boosts only and backup only mode, data consumption usage depends on primary WAN quality rating in backup mode for seamless failover.
  • Switching critical settings such as protocols, modes, and adding or removing WANs without disruption.
  • TCP transport modes with low RTT and low TCP-over-TCP overhead.

Platforms: Slate AX, Raspberry Pi 4 / Pi 400, and 64-bit PC
Additional features:

  • USB port agnostic for portable setups using persistent WAN configuration by MAC-addr for USB Ethernet adapters, 4G USB dongles* (RNDIS, Pi/PC)
  • Preset configuration for USB Ethernet adapters and tethering devices for plug and play (Pi/PC) with interface renaming.
  • Bypass Speedify with selective WAN for local devices/ports/domains using a PBR and/or Speedify's internal bypass LuCI app (Smart WAN selection)
  • Pi-hole installer for local home network adblocking (Pi-only)
  • AdGuard Home pre-installed on Slate AX
  • Tailscale installer for easy remote access to connected devices in your home network
  • PnP mini-display support for displaying Speedify info (backpack streaming)
  • Basic wireless setup menu for easy configuration with optimized presets (WIP)

*NCM & QMI USB modems require manual configration instructed by ISP, setup in "Interfaces" page.

Use the discussions tab in Github for a forum-like discussion on networking configurations and Speedify topics, and issues tab for SmoothWAN related issues.
Interactive discussion hub is hosted at Discord linked top.
Libraries/Apps used are mentioned in Wiki. Credits are mentioned per release.

Credits @: Github - d@: Discord - a@:anonymous
Donors(a-z):
@bt61 d@FloppyDisk @hle5128 d@mattmatt a@Max** d@pedro84 a@Ron** d@sqlazer

Buy me maté 🧉