The answer I’d like to give is use /zerotier multipath settings to do your desired bonding: https://docs.zerotier.com/multipath/
Sadly that is NOT an option.
Since I occasionally use the peplink things… I kinda know how the peplink generally work… Also note there are additional recurring costs to do bonding (or buying TWO peplink routers, one for each end). But they do put a “QuickSet” like UI around anything “multiwan”, which isn’t bad. So if you want bonding or load balancing, you changes some radio buttons and dropdown in various places. It not really magic, they do just to use multiple VPN tunnels to some cloud or another peplink to create a bond – so two ends are required for bonding, same is every other approach. They support load balancing and failover in the web UI too, and like Mikrotik those don’t require “another side”, since load balancing happens locally on peplink if you select that mode.
But Peplinks do focus on multiwan, so some RouterOS things are just not there or just simple checkbox like “Enable DHCP Server”… so fine-grain control over things OTHER than multiwan… Peplink are more limited in options than RouterOS
I cannot stress enough there is a cost to bonding in latency and packet overhead. And whether bonding adds, or reduces resiliency & redundancy… is a bit more nuanced question IMO. And depending on the specific WAN types/speed, and your typical traffic i.e. a bond makes all traffic go out one place to internet, through many steps – peplink, Mikrotik, whatever – while something like load balancing is just simplier & lower-overhead. Most web traffic is very transitory, so handing requests with lowest latency is often better than having more bandwidth for web pages. Now, I totally get that bonding may look good in a speedtest app. And there are legit use cases for bonding - but even with Peplink’s UI, it’s not not some plug-and-play thing to bond multiple internet sources.
I didn’t watch the video, but I see two starlinks. The WAN types matter a lot on how well bonding will work. So for discussion here let’s go with the 2 starlinks, let’s also keep it simple and assume starlinks have a public IP and in bypass mode too. And trying to keep within the “@anav protocol family”, we’re at using two EoIP tunnels, one for each WAN, and then using a /interface/bonding interface.
To do this, you need a CHR in the cloud with good internet, and some Mikrotik router with the two starlink getting two public IPs on RouterOS. And same apply in most cases where you have public IPs everywhere. If you don’t have a public IP, then you do need to use EoIP with IPSec/IKE2 for sure (perhaps EoIP+WG work too), with CHR having a public IP, and being a “responder” for either IPSec/WG – basically RouterOS does need to “steer” each EoIP+GRE[+WG/IPSec] tunnel over one of the WANs to the “hub CHR”. The EoIP interfaces themselves should not need any /ip/address AFAIK, although perhaps helpful for pinging/etc.
So assuming the two EoIP tunnels are setup and working between “dual starlink” and “hub CHR”… You just add a new /interface/bonding interface, inside you add the two EoIP tunnels under “Bonding” on the new /interface/bonding interface, and set “balance-rr” as the mode. The later controls “how it bonds”, and Mikrotik that will split packets evenly between the two (or more) links in “balance-rr”. Then in /ip/address assign /interface/bonding an IP address within the same subnet (like 192.168.22.1/24 on “hub CHR” and 192.128.22.254/24 on “dual starlink”). You can do add a routing table that using the 192.168.22.1/24 as the 0.0.0.0/0 gateway & /routing/rule to set what IPs to use the bond. And the “hub CHR” will need to treat the bonding interface as “LAN”, and “hub CHR” should do the NAT on the hub side for any local subnets coming from the remote “dual starlink” side. Obviously you do NOT want to do any NAT’ing before the bonding, nor use the EoIP links directly – traffic get routed via the “hub CHR” bonding IP address — you want /ip/firewall/connection working on the “hub” end with the stable/unchanging static IP there!
Since nothing about this is automatic, these are just starting suggestions & a generalized approach. But that will basically work…
And EoIP+IPSec over a bonding interface is at it’s core what Peplink’s “Speedfusion” does … except it uses MORE proprietary bits to do more sophisticated things to deal with uneven balancing, duplicating traffic over multiple links, etc. With Mikrotik’s bonding interface, have a more limited set. Mainly “balance-rr” which does a “round-robin” between bonded interfaces, so with two always 50/50%. This has a side-effect… the max bonding speed is twice the lowest speed connection. So if you have 1G link and 100Mb link, “balance-rr” will get you a 200Mb link, leaving 800Mb unused.
But there a lot of devils is in the details. For example, you likely want a /queue/tree on the WAN to enforce the SAME max-limit on both WANs to deal with non-bonding traffic, and help balance-rr even-ness. Also with increased latency of the bonding, using “fq_codel” would almost certainly be a good idea too. But… setting up queue get tougher with thing like starlink has variable speed… so the queue have to be size to the LOWEST average/minimun speed to help enforce the 50%/50% split. The bonded link should be able to use ARP detection for basic “dead link” detection, but still be advised to still do same check on WAN as you would for failover (i.e. /tool/netwatch, check-gateway=, recursive routes).
I’ll note Peplink is actually “less sophisticated” in the WAN monitoring options, /tool/netwatch is way richer. And their “WAN smoothing” still requires a lot of tweaking, despite the marketing. Now it’s some more drop-down reasonable UI for doing that, but still does not solve all problems, especially if WAN is shitty/variable/etc. But Peplink does more out of the box than Mikrotik for multiwan. Now Peplink’s “tooltips” are actually quite helpful at navigating these things – and that part Winbox4 should pickup… since it’s like have the description from help.mikrotik.com right in the UI next to the control. So if you want to know what some option means, you click the (?) button. For example, having the description of “Bonding Modes” from https://help.mikrotik.com/docs/spaces/ROS/pages/8323193/Bonding#Bonding-Bondingmodes would be awful helpful in this above process…
And, I only cover using /inteface/bonding with EoIP+IPsec - which I think closest poor-man’s version of Speedfusion. Other can chime in… For example, other approaches for the “multiple starlink bonding” case.
- /interface/bonding just needs an “ethernet-link” interface, so VXLAN could replace EoIP in above. (and WG will NOT, since it’s a L3 protocol & those do NOT work with /interface/bonding)
- “Classic” bonding using MLPPP is only supported on PPPoE, not L2TP or even PPTP, which be more useful (at least AFAIK). And even with two PPPoE internet, MLPPP isn’t going to help if they are from separate providers.
- MPLS might be option here too…I don’t know MPLS+VPLS+TE well enough generally. or on Mikrotik, although I’d think possible…but even still not sure if it just add more overhead here, given a starting MTU 1500 and added MPLS complexity go down with only two ends.
- BGP get you BFD… but similarly I’m not sure the simple way to use it for this case (and you likely run into some Mikrotik BGP limitation someplace)… but there are some creative BGP folk here.
Anyway my two sense here.