Thanks for the detailed information.
I'm not sure how MP-TCP works and I'd like to ask you one thing: when you say "if routerOS had an HTTPS proxy with MP-TCP support you could benefit from multiple connections even with a single high-speed stream" this would only be true for https traffic and with servers that support MP-TCP?
ok, let's go step by step.
1. the MAC address on the LTE interface is a bit misleading. never the less, you can't do bonding there.
2. ECMP (equal cost multipath) can work with multiple independent operators, you just need to persuade routerOS 6.x to take the multiple available paths into consideration. in routeros6 you have to have multiple gateways associated with a single route entry to achieve ECMP. something like this:
/ip route add dst-address=0.0.0.0/0 gateway=lte1,lte2,lte3
make sure this is the best path. this can be achieved by bumping up the
to 2 or more. after this your ECMP static route will be the best path and become active.
3. this however will not grant you superpowers. your smartphone will most probably build a single TCP or UDP session to instagram that will carry the livestream. now - as routeros will do per destination load sharing (based on the src ip/dst ip a hash will be generated) each outgoing flow will be routed through a certain gateway - in your case through one of the lte interfaces. that is a single flow (tcp or udp session) cannot achieve higher throughput than one of the connections in the ECMP route. in case of multiple outgoing/incoming flows they would be distributed (somewhat) across the 3 interfaces, but not evenly. that means you can get 2 low speed connections on one link, and 2 high speed connections on the other - the router doesn't know the speed of the connections, it just does the hash calculation and sends out the packet based on the hash value on the chosen interface.
4. yes, you can build openvpn tunnels - and i totally discourage you to do that, as openvpn's encryption is not hw accelerated and in routeros6 it runs over TCP (read tcp-over-tcp meltdown) so it's a pretty poor choice. you could just build L2TP tunnels, and achieve superior performance compared to openvpn as you don't need encryption anyways. with PPP you could essentially do ML-PPP to combine their capacity, but routerOS doesn't support that with L2TP. you will always end up with 3 different L3 interfaces and the same load balancing limitations apply.
technically you could run BCP over L2TP (see: https://wiki.mikrotik.com/wiki/Manual:BCP_bridging_
(PPP_tunnel_bridging but disregard PPTP, use L2TP instead), build 3 different tunnels that end up in 3 different bridge interfaces, add a VLAN interface to each bridge and you can put all the VLAN interfaces into a bond with balance-rr algorithm.
but (BUT! BUT!!)
- you need to do it on the far end as well (another mikrotik (chr))
- Out of sequence packet delivery will eventually happen which will ruin the throughput (TCP might drop the transmit window to minimum) as the packets in your flow will take different paths and their order can change and you don't want that.
- quite a complicated setup, might work but consistent performance is not guaranteed.
if routerOS had HTTPS proxy with MP-TCP support you could benefit from the multiple links even with a single high speed flow.