Separate Wi-Fi for secondary ISP

Hi everyone,
I recently purchased a Chateau LTE6 and I have two ISPs: the main one is connected to ether5, while the secondary is a mobile SIM on lte1.
I wish to achieve the following:

  • have a separate Wi-Fi that connects to the internet only through the secondary ISP (lte)
  • use the secondary ISP as failover for the main connection (main Wi-Fi + ether1-4).
    I tried to configure wifi3 to be on a separate bridge, with a separate address range (192.168.99.0/24) and create a route from that range to %lte1_digi, but it doesn’t seem to work. When I’m connected to wifi3, I get an IP from that range but I can’t connect to the internet.
    For the failover, I don’t know how to create a rule that does the following: “if connected to the main ISP and some internet server like 8.8.8.8 doesn’t respond to ping for 5 seconds, switch to secondary ISP”.

Thank you!

This is my config so far (I censored mac addresses):

# 2024-04-06 10:45:46 by RouterOS 7.14.2
# software id = 25YV-CP45
#
# model = S53UG+5HaxD2HaxD&FG621-EA
# serial number = 
/interface bridge
add admin-mac=******** auto-mac=no comment=defconf name=bridge \
    port-cost-mode=short
add name=bridge_lte
/interface ethernet
set [ find default-name=ether2 ] name=ether2_lan
set [ find default-name=ether5 ] name=ether5_vodafone
/interface wifi
set [ find default-name=wifi1 ] channel.skip-dfs-channels=10min-cac \
    configuration.country=Romania .mode=ap .ssid=Tesla5 disabled=no \
    security.authentication-types=wpa2-psk,wpa3-psk
set [ find default-name=wifi2 ] channel.skip-dfs-channels=10min-cac \
    configuration.country=Romania .mode=ap .ssid=Tesla disabled=no \
    security.authentication-types=wpa2-psk,wpa3-psk
add channel.skip-dfs-channels=10min-cac configuration.mode=ap .ssid=Tesla_LTE \
    disabled=no mac-address=7A:9A:18:CF:89:E5 master-interface=wifi2 name=\
    wifi3 security.authentication-types=wpa2-psk,wpa3-psk .connect-priority=0
/interface lte
set [ find default-name=lte1 ] allow-roaming=no band="" name=lte1_digi \
    sms-read=no
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/ip pool
add name=default-dhcp ranges=192.168.88.10-192.168.88.254
add name=dhcp_pool_lte ranges=192.168.99.10-192.168.99.254
/ip dhcp-server
add address-pool=default-dhcp interface=bridge lease-time=10m name=defconf
add address-pool=dhcp_pool_lte interface=bridge_lte lease-time=10m name=dhcp1
/ip smb users
set [ find default=yes ] disabled=yes
/routing table
add disabled=no fib name=rtab-1
/interface bridge port
add bridge=bridge comment=defconf interface=ether1 internal-path-cost=10 \
    path-cost=10
add bridge=bridge comment=defconf interface=ether2_lan internal-path-cost=10 \
    path-cost=10
add bridge=bridge comment=defconf interface=ether3 internal-path-cost=10 \
    path-cost=10
add bridge=bridge comment=defconf interface=ether4 internal-path-cost=10 \
    path-cost=10
add bridge=bridge comment=defconf interface=wifi1 internal-path-cost=10 \
    path-cost=10
add bridge=bridge comment=defconf interface=wifi2 internal-path-cost=10 \
    path-cost=10
add bridge=bridge_lte interface=wifi3 internal-path-cost=10 path-cost=10
/ip firewall connection tracking
set udp-timeout=10s
/ip neighbor discovery-settings
set discover-interface-list=LAN
/interface list member
add comment=defconf interface=bridge list=LAN
add comment=defconf interface=lte1_digi list=WAN
add interface=ether5_vodafone list=WAN
add interface=wifi3 list=LAN
/ip address
add address=192.168.88.1/24 comment=defconf interface=bridge network=\
    192.168.88.0
add address=192.168.99.1/24 interface=bridge_lte network=192.168.99.0
/ip dhcp-client
add interface=ether5_vodafone
/ip dhcp-server lease
add address=192.168.88.50 client-id=1:***** mac-address=\
    ***** server=defconf
add address=192.168.88.100 client-id=1:***** mac-address=\
    ***** server=defconf
/ip dhcp-server network
add address=192.168.88.0/24 comment=defconf dns-server=192.168.88.1 gateway=\
    192.168.88.1
add address=192.168.99.0/24 dns-server=192.168.99.1 gateway=192.168.99.1
/ip dns
set allow-remote-requests=yes
/ip dns static
add address=192.168.88.1 comment=defconf name=router.lan
/ip firewall filter
add action=accept chain=input comment=\
    "defconf: accept established,related,untracked" connection-state=\
    established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=\
    invalid
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=accept chain=input comment=\
    "defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1
add action=drop chain=input comment="defconf: drop all not coming from LAN" \
    in-interface-list=!LAN
add action=accept chain=forward comment="defconf: accept in ipsec policy" \
    ipsec-policy=in,ipsec
add action=accept chain=forward comment="defconf: accept out ipsec policy" \
    ipsec-policy=out,ipsec
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \
    connection-state=established,related hw-offload=yes
add action=accept chain=forward comment=\
    "defconf: accept established,related, untracked" connection-state=\
    established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" \
    connection-state=invalid
add action=drop chain=forward comment=\
    "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \
    connection-state=new in-interface-list=WAN
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" \
    ipsec-policy=out,none out-interface-list=WAN
add action=dst-nat chain=dstnat comment=hikvision dst-port=8000 \
    in-interface-list=WAN protocol=tcp to-addresses=192.168.88.100 to-ports=\
    8000
/ip route
add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=lte1_digi \
    routing-table=rtab-1 suppress-hw-offload=no
/ip service
set telnet address=192.168.0.0/16
set ftp address=192.168.0.0/16
set www address=192.168.0.0/16
set ssh address=192.168.0.0/16
set www-ssl address=192.168.0.0/16
set api address=192.168.0.0/16
set winbox address=192.168.0.0/16
set api-ssl address=192.168.0.0/16
/ip smb shares
set [ find default=yes ] directory=/pub
/ipv6 firewall address-list
add address=::/128 comment="defconf: unspecified address" list=bad_ipv6
add address=::1/128 comment="defconf: lo" list=bad_ipv6
add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6
add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6
add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6
add address=100::/64 comment="defconf: discard only " list=bad_ipv6
add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6
add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6
add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6
/ipv6 firewall filter
add action=accept chain=input comment=\
    "defconf: accept established,related,untracked" connection-state=\
    established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=\
    invalid
add action=accept chain=input comment="defconf: accept ICMPv6" protocol=\
    icmpv6
add action=accept chain=input comment="defconf: accept UDP traceroute" port=\
    33434-33534 protocol=udp
add action=accept chain=input comment=\
    "defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=\
    udp src-address=fe80::/10
add action=accept chain=input comment="defconf: accept IKE" dst-port=500,4500 \
    protocol=udp
add action=accept chain=input comment="defconf: accept ipsec AH" protocol=\
    ipsec-ah
add action=accept chain=input comment="defconf: accept ipsec ESP" protocol=\
    ipsec-esp
add action=accept chain=input comment=\
    "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=input comment=\
    "defconf: drop everything else not coming from LAN" in-interface-list=\
    !LAN
add action=accept chain=forward comment=\
    "defconf: accept established,related,untracked" connection-state=\
    established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" \
    connection-state=invalid
add action=drop chain=forward comment=\
    "defconf: drop packets with bad src ipv6" src-address-list=bad_ipv6
add action=drop chain=forward comment=\
    "defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" \
    hop-limit=equal:1 protocol=icmpv6
add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=\
    icmpv6
add action=accept chain=forward comment="defconf: accept HIP" protocol=139
add action=accept chain=forward comment="defconf: accept IKE" dst-port=\
    500,4500 protocol=udp
add action=accept chain=forward comment="defconf: accept ipsec AH" protocol=\
    ipsec-ah
add action=accept chain=forward comment="defconf: accept ipsec ESP" protocol=\
    ipsec-esp
add action=accept chain=forward comment=\
    "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=forward comment=\
    "defconf: drop everything else not coming from LAN" in-interface-list=\
    !LAN
/routing rule
add action=lookup-only-in-table disabled=no src-address=192.168.99.0/24 \
    table=rtab-1
/system clock
set time-zone-name=Europe/Bucharest
/system note
set show-at-login=no
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN

One bridge, connect the wifi and ssid to a subnet, aka a vlan.
Then using routing rules push that traffic out WAN2.

Search on the forum or yuoutube many examples of dual wan.

For the wifi you colud keep the subnet and wifi and use, as suggested by @Anav, routing rules by creating a routing table, adding a default route and adding the rule:

/routing table add fib name=to_LTE

/ip route add dst-address=0.0.0.0/0 gateway=lte1_digi@main routing-table=to_LTE

/routing rule add action=lookup-only-in-table src-address=192.168.99.0/24 table=to_LTE

For the failover scenario you would disable add-default-route of the DHCP client and set it up statically and recursively whereas in the LTE APN settings you would increase the distance of the default route to 2 or 3 for good measures:

/ip dhcp-client set [ find interface=ether5_vodafone ] add-default-route=no

/interface lte apn set default-route-distance=3

/ip route
add dst-address=8.8.8.8 scope=10 gateway="vodafone_gateway"
add dst-address=0.0.0.0/0 gateway=8.8.8.8 check-gateway=ping target-scope=11 distance=1