Mikrotik just released a video on how to do simple fail over setup for WAN, and people in comments are asking how to deal with established connections (like TCP sessions, VoIP) as those will break.
Here is a concept I recently created to solve this issue:
Implementation might not be perfect, but doable by end user on a public network. Main issue here is, when IP address changes due to failover, sessions break. Sessions are established between fixed endpoints, if source or destination IP changes communication is no longer possible (usually). So, we need stable and reliable node making those connections over public network, that will be one of C1s roles. To get our data to C1 we need a tunnel, a secure and transparent tunnel, that can handle failover. L1 and L2 are connecting to C1 over Wireguard (WG) to create that secure tunnel, and VXLAN layer is needed for transparency. In this concept whole network is one broadcast domain (local network) and CHR instance in my example is truly used as Cloud Hosted Router - it is the only routing point in this topology. Also acting as DHCP server, DNS server etc, as actual router would do. L1 and L2 are just passing network frames to C1. It can sound scary, but I don’t see another way how to keep those sessions unchanged and alive.
Briefly about roles:
C1 - In my case CHR instance hosted on cloud. Acts as VPN concentrator and router. Local traffic exits to public network from here. It can also be any Mikrotik device on premises, requirements are static IP, so it can accept WG connections, CPU power to process traffic, and obviously more stable connection than L1 and L2 to be useful. Bonding and failover decisions are happening here.
L1 and L2 - Mikrotik devices, that are connected to separate ISPs, can be LTE/5G modems (WG usually can cut through CGNAT, but not always), DSLs etc. Role is to establish WG tunnel and pass local network frames over VXLAN.
SW1 - Bonding links other end and connection to your physical network. Can be any Mikrotik device as long as it has required capacity to handle traffic.
What can others recommend? Sure, there is networking protocols and “enterprise” solutions that your ISPs can offer, but this time I’m talking about solution, that you can create and use on your own. This implementation can be used as foundation to various configurations, implementations and is scalable to even more failover links or linking locations. It is a SD-WAN solution, how it’s called nowadays.