Mwan3track not working properly on wireguard

Hi feckert,
I'm using mwan3 and wireguard client with latest openwrt trunk version.
My problem is the mwan3track didn't not working properly on wireguard interface:

root@HOME-Router:~# ping -I wana 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 0 packets received, 100% packet loss
root@HOME-Router:~# ping -I wanb 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss
root@HOME-Router:~# 

As above,the mwan3track failed so mwan3 marked the wireguard interface offline. But the wireguard interface actually is working properly.
Am I missconfigured something? Thanks.

What is the output of:
uci show network; uci show mwan3; mwan3 status

The output:

BusyBox v1.31.1 () built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r11615-3f79aaa297
 -----------------------------------------------------
root@HOME-Router:~# uci show network; uci show mwan3; mwan3 status
network.loopback=interface
network.loopback.ifname='lo'
network.loopback.proto='static'
network.loopback.ipaddr='127.0.0.1'
network.loopback.netmask='255.0.0.0'
network.globals=globals
network.globals.ula_prefix='dd5d:189b:b5f9::/48'
network.lan=interface
network.lan.type='bridge'
network.lan.ifname='lan0 lan1 lan2 lan3 lan4'
network.lan.proto='static'
network.lan.ipaddr='192.168.1.1'
network.lan.netmask='255.255.255.0'
network.lan.ip6prefix='dd5d:189b:b5f9:1::/64'
network.lan.stp='1'
network.lan.ip6addr='dd5d:189b:b5f9:1::1/64'
network.wan1=interface
network.wan1.proto='pppoe'
network.wan1.username='****'
network.wan1.password='*****'
network.wan1.ifname='eth2.2'
network.wan1.ipv6='1'
network.wan1.metric='10'
network.wan1.force_link='1'
network.wan1_6=interface
network.wan1_6.ifname='@wan1'
network.wan1_6.proto='dhcpv6'
network.wan1_6.reqaddress='try'
network.wan1_6.reqprefix='auto'
network.wan1_6.metric='11'
network.wan2=interface
network.wan2.ifname='macvlan1'
network.wan2.proto='pppoe'
network.wan2.username='***'
network.wan2.password='***'
network.wan2.metric='15'
network.wan2.macaddr='44:e0:e6:97:72:7d'
network.wan2.ipv6='1'
network.wan2_6=interface
network.wan2_6.proto='dhcpv6'
network.wan2_6.reqaddress='try'
network.wan2_6.reqprefix='auto'
network.wan2_6.metric='16'
network.wan2_6.ifname='@wan2'
network.wan3=interface
network.wan3.proto='pppoe'
network.wan3.username='****'
network.wan3.password='****'
network.wan3.force_link='1'
network.wan3.ifname='eth2.4'
network.wan3.isp='cmcc'
network.wan3.metric='20'
network.wan3.ipv6='1'
network.wan3_6=interface
network.wan3_6.ifname='@wan3'
network.wan3_6.proto='dhcpv6'
network.wan3_6.reqaddress='try'
network.wan3_6.reqprefix='auto'
network.wan3_6.metric='21'
network.wan4=interface
network.wan4.ifname='macvlan2'
network.wan4.proto='pppoe'
network.wan4.username='***'
network.wan4.password='***'
network.wan4.metric='25'
network.wan4.isp='cmcc'
network.wan4.macaddr='d7:0a:4e:8d:72:45'
network.wan4.ipv6='1'
network.wan4_6=interface
network.wan4_6.proto='dhcpv6'
network.wan4_6.reqaddress='try'
network.wan4_6.reqprefix='auto'
network.wan4_6.metric='26'
network.wan4_6.ifname='@wan4'
network.wana=interface
network.wana.proto='wireguard'
network.wana.private_key='0C26kxAdBqI8tCYspS5cRgbG********'
network.wana.metric='30'
network.wana.iftype='wireguard'
network.wana.addresses='192.168.120.2/24' 'dda1:aaaa:e111::2/64'
network.wana.mtu='1300'
network.wana_6=interface
network.wana_6.proto='static'
network.wana_6.force_link='0'
network.wana_6.metric='550'
network.wana_6.ifname='@wana'
network.wana_6.iftype='wireguard'
network.wana_6.ip6addr='dda1:aaaa:e111::2/64'
network.wana_6.ip6gw='dda1:aaaa:e111::1'
network.wanb=interface
network.wanb.proto='wireguard'
network.wanb.private_key='WMLMJlUfT52wUmX2c/PNa********'
network.wanb.metric='40'
network.wanb.iftype='wireguard'
network.wanb.addresses='192.168.150.2/24' 'ddc1:aaaa:f111::2/64'
network.wanb.mtu='1300'
network.wanb_6=interface
network.wanb_6.proto='static'
network.wanb_6.force_link='0'
network.wanb_6.metric='600'
network.wanb_6.ifname='@wanb'
network.wanb_6.iftype='wireguard'
network.wanb_6.ip6addr='ddc1:aaaa:f111::2/64'
network.wanb_6.ip6gw='ddc1:aaaa:f111::1'
network.modem1=interface
network.modem1.proto='static'
network.modem1.ifname='eth2.2'
network.modem1.netmask='255.255.255.0'
network.modem1.metric='100'
network.modem1.ipaddr='192.168.50.2'
network.modem1.gateway='192.168.50.1'
network.modem1.auto='0'
network.modem2=interface
network.modem2.proto='static'
network.modem2.ifname='eth2.4'
network.modem2.netmask='255.255.255.0'
network.modem2.metric='110'
network.modem2.ipaddr='192.168.51.2'
network.modem2.gateway='192.168.51.1'
network.modem2.auto='0'
network.macvlandev_macvlan1=device
network.macvlandev_macvlan1.name='macvlan1'
network.macvlandev_macvlan1.ifname='eth2.2'
network.macvlandev_macvlan1.type='macvlan'
network.macvlandev_macvlan2=device
network.macvlandev_macvlan2.name='macvlan2'
network.macvlandev_macvlan2.ifname='eth2.4'
network.macvlandev_macvlan2.type='macvlan'
network.vpn0=interface
network.vpn0.proto='wireguard'
network.vpn0.private_key='QGFzF4RpuJyzv8LLl4jy***'
network.vpn0.mtu='1420'
network.vpn0.listen_port='5888'
network.vpn0.addresses='192.168.195.1/24' 'dd5d:189b:b5f9:2::1/64'
network.@wireguard_wana[0]=wireguard_wana
network.@wireguard_wana[0].public_key='Hr/0zcCJMg+F4nEnZ4q0zhHyLg8lq******'
network.@wireguard_wana[0].allowed_ips='0.0.0.0/0' '::/0'
network.@wireguard_wana[0].endpoint_host='******'
network.@wireguard_wana[0].endpoint_port='51887'
network.@wireguard_wanb[0]=wireguard_wanb
network.@wireguard_wanb[0].public_key='Lv0b1pHsLFcqArB4IYw1jgcn*******'
network.@wireguard_wanb[0].allowed_ips='0.0.0.0/0' '::/0'
network.@wireguard_wanb[0].endpoint_host='*****'
network.@wireguard_wanb[0].endpoint_port='51888'
mwan3.AntiGFW_DNS=rule
mwan3.AntiGFW_DNS.proto='all'
mwan3.AntiGFW_DNS.family='ipv4'
mwan3.AntiGFW_DNS.dest_ip='8.8.8.8,8.8.4.4,208.67.222.222,208.67.220.220,199.91.73.222,178.79.131.110'
mwan3.AntiGFW_DNS.sticky='1'
mwan3.AntiGFW_DNS.timeout='600'
mwan3.AntiGFW_DNS.use_policy='wana_wanb'
mwan3.AntiGFW_DNS_V6=rule
mwan3.AntiGFW_DNS_V6.proto='all'
mwan3.AntiGFW_DNS_V6.family='ipv6'
mwan3.AntiGFW_DNS_V6.dest_ip='2001:4860:4860::8888,2001:4860:4860::8844'
mwan3.AntiGFW_DNS_V6.sticky='1'
mwan3.AntiGFW_DNS_V6.timeout='600'
mwan3.AntiGFW_DNS_V6.use_policy='wana_6_wanb_6'
mwan3.ChinaNet_DNS=rule
mwan3.ChinaNet_DNS.dest_ip='221.228.255.1,218.2.135.1,61.177.7.1,218.4.4.4,218.2.2.2,114.114.114.114'
mwan3.ChinaNet_DNS.family='ipv4'
mwan3.ChinaNet_DNS.proto='all'
mwan3.ChinaNet_DNS.sticky='1'
mwan3.ChinaNet_DNS.timeout='600'
mwan3.ChinaNet_DNS.use_policy='wan1_wan2'
mwan3.CM_DNS=rule
mwan3.CM_DNS.dest_ip='112.4.0.55,221.131.143.69,114.114.115.115'
mwan3.CM_DNS.family='ipv4'
mwan3.CM_DNS.proto='all'
mwan3.CM_DNS.sticky='1'
mwan3.CM_DNS.timeout='600'
mwan3.CM_DNS.use_policy='wan3_wan4'
mwan3.VPS_LA=rule
mwan3.VPS_LA.family='ipv4'
mwan3.VPS_LA.proto='all'
mwan3.VPS_LA.sticky='1'
mwan3.VPS_LA.timeout='600'
mwan3.VPS_LA.dest_ip='31.40.214.127,173.242.119.141'
mwan3.VPS_LA.use_policy='wan1_2_default'
mwan3.IPV4_PTlist=rule
mwan3.IPV4_PTlist.proto='all'
mwan3.IPV4_PTlist.family='ipv4'
mwan3.IPV4_PTlist.use_policy='wan3_4_wan1_2'
mwan3.IPV4_PTlist.ipset='ptlist'
mwan3.IPV4_PTlist.sticky='0'
mwan3.IPV4_GFW=rule
mwan3.IPV4_GFW.proto='all'
mwan3.IPV4_GFW.family='ipv4'
mwan3.IPV4_GFW.ipset='gfwlist'
mwan3.IPV4_GFW.timeout='300'
mwan3.IPV4_GFW.sticky='0'
mwan3.IPV4_GFW.use_policy='wana_wanb'
mwan3.CM_IPV4=rule
mwan3.CM_IPV4.proto='all'
mwan3.CM_IPV4.family='ipv4'
mwan3.CM_IPV4.ipset='cmcc'
mwan3.CM_IPV4.timeout='600'
mwan3.CM_IPV4.sticky='1'
mwan3.CM_IPV4.use_policy='wan3_wan4'
mwan3.ChinaNet_IPV4=rule
mwan3.ChinaNet_IPV4.proto='all'
mwan3.ChinaNet_IPV4.family='ipv4'
mwan3.ChinaNet_IPV4.timeout='600'
mwan3.ChinaNet_IPV4.sticky='1'
mwan3.ChinaNet_IPV4.use_policy='wan1_wan2'
mwan3.ChinaNet_IPV4.ipset='cnnocmcc'
mwan3.IPV4_WEB=rule
mwan3.IPV4_WEB.proto='all'
mwan3.IPV4_WEB.family='ipv4'
mwan3.IPV4_WEB.sticky='1'
mwan3.IPV4_WEB.use_policy='wan_1_2_3_4'
mwan3.IPV4_LB=rule
mwan3.IPV4_LB.proto='all'
mwan3.IPV4_LB.family='ipv4'
mwan3.IPV4_LB.sticky='0'
mwan3.IPV4_LB.use_policy='loadbalanced'
mwan3.IPV6_PTlist=rule
mwan3.IPV6_PTlist.proto='all'
mwan3.IPV6_PTlist.family='ipv6'
mwan3.IPV6_PTlist.use_policy='wan34_6_wan12_6'
mwan3.IPV6_PTlist.ipset='ptlist6'
mwan3.IPV6_PTlist.sticky='1'
mwan3.IPV6_GFW=rule
mwan3.IPV6_GFW.proto='all'
mwan3.IPV6_GFW.family='ipv6'
mwan3.IPV6_GFW.sticky='0'
mwan3.IPV6_GFW.ipset='gfwlist6'
mwan3.IPV6_GFW.use_policy='wana_6_wanb_6'
mwan3.CM_IPV6=rule
mwan3.CM_IPV6.proto='all'
mwan3.CM_IPV6.family='ipv6'
mwan3.CM_IPV6.ipset='cmccv6'
mwan3.CM_IPV6.timeout='600'
mwan3.CM_IPV6.sticky='1'
mwan3.CM_IPV6.use_policy='wan3_6_wan4_6'
mwan3.ChinaNet_IPV6=rule
mwan3.ChinaNet_IPV6.proto='all'
mwan3.ChinaNet_IPV6.family='ipv6'
mwan3.ChinaNet_IPV6.timeout='600'
mwan3.ChinaNet_IPV6.sticky='1'
mwan3.ChinaNet_IPV6.use_policy='wan1_6_wan2_6'
mwan3.ChinaNet_IPV6.ipset='cnnocmccv6'
mwan3.IPV6_WEB=rule
mwan3.IPV6_WEB.proto='all'
mwan3.IPV6_WEB.family='ipv6'
mwan3.IPV6_WEB.timeout='600'
mwan3.IPV6_WEB.sticky='1'
mwan3.IPV6_WEB.use_policy='wan12_6_wan34_6'
mwan3.IPV6_LB=rule
mwan3.IPV6_LB.proto='all'
mwan3.IPV6_LB.family='ipv6'
mwan3.IPV6_LB.use_policy='loadbalanced6'
mwan3.IPV6_LB.sticky='0'
mwan3.globals=globals
mwan3.globals.mmx_mask='0x3F00'
mwan3.globals.rtmon_interval='5'
mwan3.wan1=interface
mwan3.wan1.enabled='1'
mwan3.wan1.family='ipv4'
mwan3.wan1.track_ip='114.114.114.114' '114.114.115.115' '223.5.5.5' '223.6.6.6'
mwan3.wan1.size='56'
mwan3.wan1.timeout='2'
mwan3.wan1.initial_state='online'
mwan3.wan1.track_method='ping'
mwan3.wan1.online_metric='1'
mwan3.wan1.count='3'
mwan3.wan1.interval='30'
mwan3.wan1.reliability='2'
mwan3.wan1.failure_interval='3'
mwan3.wan1.recovery_interval='3'
mwan3.wan1.max_ttl='60'
mwan3.wan1.check_quality='0'
mwan3.wan1.down='3'
mwan3.wan1.up='2'
mwan3.wan1_6=interface
mwan3.wan1_6.enabled='1'
mwan3.wan1_6.family='ipv6'
mwan3.wan1_6.count='3'
mwan3.wan1_6.timeout='2'
mwan3.wan1_6.up='2'
mwan3.wan1_6.reliability='2'
mwan3.wan1_6.down='3'
mwan3.wan1_6.size='56'
mwan3.wan1_6.interval='30'
mwan3.wan1_6.failure_interval='3'
mwan3.wan1_6.recovery_interval='3'
mwan3.wan1_6.track_ip='240e:5a::6666' '240e:5b::6666'
mwan3.wan1_6.track_method='ping'
mwan3.wan1_6.check_quality='0'
mwan3.wan1_6.initial_state='online'
mwan3.wan2=interface
mwan3.wan2.enabled='1'
mwan3.wan2.family='ipv4'
mwan3.wan2.track_ip='114.114.114.114' '114.114.115.115' '223.5.5.5' '223.6.6.6'
mwan3.wan2.size='56'
mwan3.wan2.timeout='2'
mwan3.wan2.initial_state='online'
mwan3.wan2.track_method='ping'
mwan3.wan2.online_metric='1'
mwan3.wan2.count='3'
mwan3.wan2.interval='30'
mwan3.wan2.reliability='2'
mwan3.wan2.failure_interval='3'
mwan3.wan2.recovery_interval='3'
mwan3.wan2.max_ttl='60'
mwan3.wan2.check_quality='0'
mwan3.wan2.down='3'
mwan3.wan2.up='2'
mwan3.wan2_6=interface
mwan3.wan2_6.enabled='1'
mwan3.wan2_6.family='ipv6'
mwan3.wan2_6.count='3'
mwan3.wan2_6.timeout='2'
mwan3.wan2_6.up='2'
mwan3.wan2_6.reliability='2'
mwan3.wan2_6.down='3'
mwan3.wan2_6.size='56'
mwan3.wan2_6.interval='30'
mwan3.wan2_6.failure_interval='3'
mwan3.wan2_6.recovery_interval='3'
mwan3.wan2_6.track_ip='240e:5a::6666' '240e:5b::6666'
mwan3.wan2_6.track_method='ping'
mwan3.wan2_6.check_quality='0'
mwan3.wan2_6.initial_state='online'
mwan3.wan3=interface
mwan3.wan3.enabled='1'
mwan3.wan3.family='ipv4'
mwan3.wan3.track_ip='112.4.0.55' '221.131.143.69' '114.114.114.114' '114.114.115.115'
mwan3.wan3.up='2'
mwan3.wan3.reliability='2'
mwan3.wan3.count='3'
mwan3.wan3.size='56'
mwan3.wan3.timeout='2'
mwan3.wan3.interval='30'
mwan3.wan3.failure_interval='3'
mwan3.wan3.recovery_interval='3'
mwan3.wan3.initial_state='online'
mwan3.wan3.track_method='ping'
mwan3.wan3.online_metric='2'
mwan3.wan3.max_ttl='60'
mwan3.wan3.check_quality='0'
mwan3.wan3.down='3'
mwan3.wan3_6=interface
mwan3.wan3_6.enabled='1'
mwan3.wan3_6.family='ipv6'
mwan3.wan3_6.count='3'
mwan3.wan3_6.timeout='2'
mwan3.wan3_6.up='2'
mwan3.wan3_6.reliability='2'
mwan3.wan3_6.down='3'
mwan3.wan3_6.size='56'
mwan3.wan3_6.interval='30'
mwan3.wan3_6.failure_interval='3'
mwan3.wan3_6.recovery_interval='3'
mwan3.wan3_6.track_ip='2409:8020:2000::88' '2409:8020:2000::8'
mwan3.wan3_6.track_method='ping'
mwan3.wan3_6.check_quality='0'
mwan3.wan3_6.initial_state='online'
mwan3.wan4=interface
mwan3.wan4.enabled='1'
mwan3.wan4.family='ipv4'
mwan3.wan4.track_ip='112.4.0.55' '221.131.143.69' '114.114.114.114' '114.114.115.115'
mwan3.wan4.up='2'
mwan3.wan4.reliability='2'
mwan3.wan4.count='3'
mwan3.wan4.size='56'
mwan3.wan4.timeout='2'
mwan3.wan4.interval='30'
mwan3.wan4.failure_interval='3'
mwan3.wan4.recovery_interval='3'
mwan3.wan4.initial_state='online'
mwan3.wan4.track_method='ping'
mwan3.wan4.online_metric='2'
mwan3.wan4.max_ttl='60'
mwan3.wan4.check_quality='0'
mwan3.wan4.down='3'
mwan3.wan4_6=interface
mwan3.wan4_6.enabled='1'
mwan3.wan4_6.family='ipv6'
mwan3.wan4_6.count='3'
mwan3.wan4_6.timeout='2'
mwan3.wan4_6.up='2'
mwan3.wan4_6.reliability='2'
mwan3.wan4_6.down='3'
mwan3.wan4_6.size='56'
mwan3.wan4_6.interval='30'
mwan3.wan4_6.failure_interval='3'
mwan3.wan4_6.recovery_interval='3'
mwan3.wan4_6.track_ip='2409:8020:2000::88' '2409:8020:2000::8'
mwan3.wan4_6.track_method='ping'
mwan3.wan4_6.check_quality='0'
mwan3.wan4_6.initial_state='online'
mwan3.wana=interface
mwan3.wana.enabled='1'
mwan3.wana.family='ipv4'
mwan3.wana.timeout='2'
mwan3.wana.up='2'
mwan3.wana.count='3'
mwan3.wana.down='3'
mwan3.wana.size='56'
mwan3.wana.interval='5'
mwan3.wana.failure_interval='3'
mwan3.wana.recovery_interval='3'
mwan3.wana.initial_state='online'
mwan3.wana.keep_failure_interval='1'
mwan3.wana.track_method='ping'
mwan3.wana.max_ttl='60'
mwan3.wana.check_quality='0'
mwan3.wana.track_ip='8.8.8.8' '8.8.4.4'
mwan3.wana.reliability='2'
mwan3.wana_6=interface
mwan3.wana_6.enabled='1'
mwan3.wana_6.family='ipv6'
mwan3.wana_6.count='3'
mwan3.wana_6.timeout='2'
mwan3.wana_6.up='2'
mwan3.wana_6.down='3'
mwan3.wana_6.size='56'
mwan3.wana_6.interval='5'
mwan3.wana_6.failure_interval='3'
mwan3.wana_6.recovery_interval='3'
mwan3.wana_6.initial_state='online'
mwan3.wana_6.keep_failure_interval='1'
mwan3.wana_6.reliability='1'
mwan3.wana_6.track_ip='dda1:aaaa:e111::1'
mwan3.wana_6.track_method='ping'
mwan3.wana_6.max_ttl='60'
mwan3.wana_6.check_quality='0'
mwan3.wanb=interface
mwan3.wanb.enabled='1'
mwan3.wanb.family='ipv4'
mwan3.wanb.count='3'
mwan3.wanb.timeout='2'
mwan3.wanb.up='2'
mwan3.wanb.down='3'
mwan3.wanb.size='56'
mwan3.wanb.interval='5'
mwan3.wanb.failure_interval='3'
mwan3.wanb.recovery_interval='3'
mwan3.wanb.initial_state='online'
mwan3.wanb.keep_failure_interval='1'
mwan3.wanb.track_method='ping'
mwan3.wanb.max_ttl='60'
mwan3.wanb.check_quality='0'
mwan3.wanb.track_ip='8.8.8.8' '8.8.4.4'
mwan3.wanb.reliability='2'
mwan3.wanb_6=interface
mwan3.wanb_6.enabled='1'
mwan3.wanb_6.family='ipv6'
mwan3.wanb_6.count='3'
mwan3.wanb_6.timeout='2'
mwan3.wanb_6.up='2'
mwan3.wanb_6.down='3'
mwan3.wanb_6.size='56'
mwan3.wanb_6.interval='5'
mwan3.wanb_6.failure_interval='3'
mwan3.wanb_6.recovery_interval='3'
mwan3.wanb_6.initial_state='online'
mwan3.wanb_6.keep_failure_interval='1'
mwan3.wanb_6.reliability='1'
mwan3.wanb_6.track_ip='ddc1:aaaa:f111::1'
mwan3.wanb_6.track_method='ping'
mwan3.wanb_6.max_ttl='60'
mwan3.wanb_6.check_quality='0'
mwan3.wan1_m1_w1=member
mwan3.wan1_m1_w1.metric='1'
mwan3.wan1_m1_w1.interface='wan1'
mwan3.wan1_m1_w1.weight='1'
mwan3.wan1_m2_w1=member
mwan3.wan1_m2_w1.metric='2'
mwan3.wan1_m2_w1.interface='wan1'
mwan3.wan1_m2_w1.weight='1'
mwan3.wan1_m3_w1=member
mwan3.wan1_m3_w1.metric='3'
mwan3.wan1_m3_w1.interface='wan1'
mwan3.wan1_m3_w1.weight='1'
mwan3.wan1_m4_w1=member
mwan3.wan1_m4_w1.metric='4'
mwan3.wan1_m4_w1.interface='wan1'
mwan3.wan1_m4_w1.weight='1'
mwan3.wan2_m1_w1=member
mwan3.wan2_m1_w1.interface='wan2'
mwan3.wan2_m1_w1.weight='1'
mwan3.wan2_m1_w1.metric='1'
mwan3.wan2_m2_w1=member
mwan3.wan2_m2_w1.interface='wan2'
mwan3.wan2_m2_w1.weight='1'
mwan3.wan2_m2_w1.metric='2'
mwan3.wan2_m3_w1=member
mwan3.wan2_m3_w1.interface='wan2'
mwan3.wan2_m3_w1.weight='1'
mwan3.wan2_m3_w1.metric='3'
mwan3.wan2_m4_w1=member
mwan3.wan2_m4_w1.interface='wan2'
mwan3.wan2_m4_w1.weight='1'
mwan3.wan2_m4_w1.metric='4'
mwan3.wan3_m1_w1=member
mwan3.wan3_m1_w1.interface='wan3'
mwan3.wan3_m1_w1.weight='1'
mwan3.wan3_m1_w1.metric='1'
mwan3.wan3_m2_w1=member
mwan3.wan3_m2_w1.interface='wan3'
mwan3.wan3_m2_w1.weight='1'
mwan3.wan3_m2_w1.metric='2'
mwan3.wan3_m3_w1=member
mwan3.wan3_m3_w1.interface='wan3'
mwan3.wan3_m3_w1.weight='1'
mwan3.wan3_m3_w1.metric='3'
mwan3.wan3_m4_w1=member
mwan3.wan3_m4_w1.interface='wan3'
mwan3.wan3_m4_w1.weight='1'
mwan3.wan3_m4_w1.metric='4'
mwan3.wan4_m1_w1=member
mwan3.wan4_m1_w1.interface='wan4'
mwan3.wan4_m1_w1.weight='1'
mwan3.wan4_m1_w1.metric='1'
mwan3.wan4_m2_w1=member
mwan3.wan4_m2_w1.interface='wan4'
mwan3.wan4_m2_w1.weight='1'
mwan3.wan4_m2_w1.metric='2'
mwan3.wan4_m3_w1=member
mwan3.wan4_m3_w1.interface='wan4'
mwan3.wan4_m3_w1.weight='1'
mwan3.wan4_m3_w1.metric='3'
mwan3.wan4_m4_w1=member
mwan3.wan4_m4_w1.interface='wan4'
mwan3.wan4_m4_w1.weight='1'
mwan3.wan4_m4_w1.metric='4'
mwan3.wan1_6_m1_w1=member
mwan3.wan1_6_m1_w1.interface='wan1_6'
mwan3.wan1_6_m1_w1.weight='1'
mwan3.wan1_6_m1_w1.metric='1'
mwan3.wan1_6_m2_w1=member
mwan3.wan1_6_m2_w1.interface='wan1_6'
mwan3.wan1_6_m2_w1.weight='1'
mwan3.wan1_6_m2_w1.metric='2'
mwan3.wan1_6_m3_w1=member
mwan3.wan1_6_m3_w1.interface='wan1_6'
mwan3.wan1_6_m3_w1.weight='1'
mwan3.wan1_6_m3_w1.metric='3'
mwan3.wan1_6_m4_w1=member
mwan3.wan1_6_m4_w1.interface='wan1_6'
mwan3.wan1_6_m4_w1.weight='1'
mwan3.wan1_6_m4_w1.metric='4'
mwan3.wan2_6_m1_w1=member
mwan3.wan2_6_m1_w1.interface='wan2_6'
mwan3.wan2_6_m1_w1.weight='1'
mwan3.wan2_6_m1_w1.metric='1'
mwan3.wan2_6_m2_w1=member
mwan3.wan2_6_m2_w1.interface='wan2_6'
mwan3.wan2_6_m2_w1.weight='1'
mwan3.wan2_6_m2_w1.metric='2'
mwan3.wan2_6_m3_w1=member
mwan3.wan2_6_m3_w1.interface='wan2_6'
mwan3.wan2_6_m3_w1.weight='1'
mwan3.wan2_6_m3_w1.metric='3'
mwan3.wan2_6_m4_w1=member
mwan3.wan2_6_m4_w1.interface='wan2_6'
mwan3.wan2_6_m4_w1.weight='1'
mwan3.wan2_6_m4_w1.metric='4'
mwan3.wan3_6_m1_w1=member
mwan3.wan3_6_m1_w1.interface='wan3_6'
mwan3.wan3_6_m1_w1.weight='1'
mwan3.wan3_6_m1_w1.metric='1'
mwan3.wan3_6_m2_w1=member
mwan3.wan3_6_m2_w1.interface='wan3_6'
mwan3.wan3_6_m2_w1.weight='1'
mwan3.wan3_6_m2_w1.metric='2'
mwan3.wan3_6_m3_w1=member
mwan3.wan3_6_m3_w1.interface='wan3_6'
mwan3.wan3_6_m3_w1.weight='1'
mwan3.wan3_6_m3_w1.metric='3'
mwan3.wan3_6_m4_w1=member
mwan3.wan3_6_m4_w1.interface='wan3_6'
mwan3.wan3_6_m4_w1.weight='1'
mwan3.wan3_6_m4_w1.metric='4'
mwan3.wan4_6_m1_w1=member
mwan3.wan4_6_m1_w1.interface='wan4_6'
mwan3.wan4_6_m1_w1.weight='1'
mwan3.wan4_6_m1_w1.metric='1'
mwan3.wan4_6_m2_w1=member
mwan3.wan4_6_m2_w1.interface='wan4_6'
mwan3.wan4_6_m2_w1.weight='1'
mwan3.wan4_6_m2_w1.metric='2'
mwan3.wan4_6_m3_w1=member
mwan3.wan4_6_m3_w1.interface='wan4_6'
mwan3.wan4_6_m3_w1.weight='1'
mwan3.wan4_6_m3_w1.metric='3'
mwan3.wan4_6_m4_w1=member
mwan3.wan4_6_m4_w1.interface='wan4_6'
mwan3.wan4_6_m4_w1.weight='1'
mwan3.wan4_6_m4_w1.metric='4'
mwan3.wana_m1_w1=member
mwan3.wana_m1_w1.interface='wana'
mwan3.wana_m1_w1.metric='1'
mwan3.wana_m1_w1.weight='1'
mwan3.wana_m2_w1=member
mwan3.wana_m2_w1.interface='wana'
mwan3.wana_m2_w1.metric='2'
mwan3.wana_m2_w1.weight='1'
mwan3.wanb_m1_w1=member
mwan3.wanb_m1_w1.interface='wanb'
mwan3.wanb_m1_w1.weight='1'
mwan3.wanb_m1_w1.metric='1'
mwan3.wanb_m2_w1=member
mwan3.wanb_m2_w1.interface='wanb'
mwan3.wanb_m2_w1.weight='1'
mwan3.wanb_m2_w1.metric='2'
mwan3.wana_6_m1_w1=member
mwan3.wana_6_m1_w1.interface='wana_6'
mwan3.wana_6_m1_w1.weight='1'
mwan3.wana_6_m1_w1.metric='1'
mwan3.wana_6_m2_w1=member
mwan3.wana_6_m2_w1.interface='wana_6'
mwan3.wana_6_m2_w1.weight='1'
mwan3.wana_6_m2_w1.metric='2'
mwan3.wanb_6_m1_w1=member
mwan3.wanb_6_m1_w1.interface='wanb_6'
mwan3.wanb_6_m1_w1.weight='1'
mwan3.wanb_6_m1_w1.metric='1'
mwan3.wanb_6_m2_w1=member
mwan3.wanb_6_m2_w1.interface='wanb_6'
mwan3.wanb_6_m2_w1.weight='1'
mwan3.wanb_6_m2_w1.metric='2'
mwan3.wan1_only=policy
mwan3.wan1_only.use_member='wan1_m1_w1'
mwan3.wan1_only.last_resort='unreachable'
mwan3.wan2_only=policy
mwan3.wan2_only.use_member='wan2_m1_w1'
mwan3.wan2_only.last_resort='unreachable'
mwan3.wan3_only=policy
mwan3.wan3_only.use_member='wan3_m1_w1'
mwan3.wan3_only.last_resort='unreachable'
mwan3.wan4_only=policy
mwan3.wan4_only.use_member='wan4_m1_w1'
mwan3.wan4_only.last_resort='unreachable'
mwan3.wan1_wan2=policy
mwan3.wan1_wan2.last_resort='unreachable'
mwan3.wan1_wan2.use_member='wan1_m1_w1' 'wan2_m2_w1'
mwan3.wan1_2_default=policy
mwan3.wan1_2_default.last_resort='default'
mwan3.wan1_2_default.use_menber='wan1_m1_w1' 'wan2_m2_w1'
mwan3.wan1_2_default.use_member='wan1_m1_w1' 'wan2_m2_w1'
mwan3.wan1_2_wan3_4=policy
mwan3.wan1_2_wan3_4.use_member='wan1_m1_w1' 'wan2_m1_w1' 'wan3_m2_w1' 'wan4_m2_w1'
mwan3.wan1_2_wan3_4.last_resort='default'
mwan3.wan3_4_wan1_2=policy
mwan3.wan3_4_wan1_2.last_resort='unreachable'
mwan3.wan3_4_wan1_2.use_member='wan3_m1_w1' 'wan4_m1_w1' 'wan1_m2_w1' 'wan2_m2_w1'
mwan3.wan3_wan4=policy
mwan3.wan3_wan4.last_resort='unreachable'
mwan3.wan3_wan4.use_member='wan3_m1_w1' 'wan4_m2_w1'
mwan3.wan3_4_2_1=policy
mwan3.wan3_4_2_1.last_resort='unreachable'
mwan3.wan3_4_2_1.use_member='wan3_m1_w1' 'wan4_m2_w1' 'wan2_m3_w1' 'wan1_m4_w1'
mwan3.wan4_3_2_1=policy
mwan3.wan4_3_2_1.last_resort='unreachable'
mwan3.wan4_3_2_1.use_member='wan4_m1_w1' 'wan3_m2_w1' 'wan2_m3_w1' 'wan1_m4_w1'
mwan3.wan1_2_3_4=policy
mwan3.wan1_2_3_4.last_resort='unreachable'
mwan3.wan1_2_3_4.use_member='wan1_m1_w1' 'wan2_m2_w1' 'wan3_m3_w1' 'wan4_m4_w1'
mwan3.loadbalanced=policy
mwan3.loadbalanced.last_resort='unreachable'
mwan3.loadbalanced.use_member='wan4_m1_w1' 'wan3_m1_w1' 'wan2_m1_w1' 'wan1_m1_w1'
mwan3.wan1_6_only=policy
mwan3.wan1_6_only.use_member='wan1_6_m1_w1'
mwan3.wan1_6_only.last_resort='unreachable'
mwan3.wan2_6_only=policy
mwan3.wan2_6_only.use_member='wan2_6_m1_w1'
mwan3.wan2_6_only.last_resort='unreachable'
mwan3.wan3_6_only=policy
mwan3.wan3_6_only.use_member='wan3_6_m1_w1'
mwan3.wan3_6_only.last_resort='unreachable'
mwan3.wan4_6_only=policy
mwan3.wan4_6_only.use_member='wan4_6_m1_w1'
mwan3.wan4_6_only.last_resort='unreachable'
mwan3.wan1_6_wan2_6=policy
mwan3.wan1_6_wan2_6.use_member='wan1_6_m1_w1' 'wan2_6_m1_w1'
mwan3.wan1_6_wan2_6.last_resort='unreachable'
mwan3.wan3_6_wan4_6=policy
mwan3.wan3_6_wan4_6.use_member='wan3_6_m1_w1' 'wan4_6_m1_w1'
mwan3.wan3_6_wan4_6.last_resort='unreachable'
mwan3.wan12_6_wan34_6=policy
mwan3.wan12_6_wan34_6.use_member='wan1_6_m1_w1' 'wan2_6_m2_w1' 'wan3_6_m3_w1' 'wan4_6_m4_w1'
mwan3.wan12_6_wan34_6.last_resort='unreachable'
mwan3.wan34_6_wan12_6=policy
mwan3.wan34_6_wan12_6.use_member='wan3_6_m1_w1' 'wan4_6_m1_w1' 'wan1_6_m2_w1' 'wan2_6_m2_w1'
mwan3.wan34_6_wan12_6.last_resort='unreachable'
mwan3.loadbalanced6=policy
mwan3.loadbalanced6.last_resort='unreachable'
mwan3.loadbalanced6.use_member='wan1_6_m1_w1' 'wan2_6_m1_w1' 'wan3_6_m1_w1' 'wan4_6_m1_w1'
mwan3.wana_only=policy
mwan3.wana_only.use_member='wana_m1_w1'
mwan3.wana_only.last_resort='unreachable'
mwan3.wanb_only=policy
mwan3.wanb_only.use_member='wanb_m2_w1'
mwan3.wanb_only.last_resort='unreachable'
mwan3.wana_wanb=policy
mwan3.wana_wanb.use_member='wana_m1_w1' 'wanb_m2_w1'
mwan3.wana_wanb.last_resort='unreachable'
mwan3.wanb_wana=policy
mwan3.wanb_wana.use_member='wanb_m1_w1' 'wana_m2_w1'
mwan3.wanb_wana.last_resort='unreachable'
mwan3.wana_6_only=policy
mwan3.wana_6_only.use_member='wana_6_m1_w1'
mwan3.wana_6_only.last_resort='unreachable'
mwan3.wanb_6_only=policy
mwan3.wanb_6_only.use_member='wanb_6_m1_w1'
mwan3.wanb_6_only.last_resort='unreachable'
mwan3.wana_6_wanb_6=policy
mwan3.wana_6_wanb_6.use_member='wana_6_m1_w1' 'wanb_6_m2_w1'
mwan3.wana_6_wanb_6.last_resort='unreachable'
mwan3.wanb_6_wana_6=policy
mwan3.wanb_6_wana_6.use_member='wanb_6_m1_w1' 'wana_6_m2_w1'
mwan3.wanb_6_wana_6.last_resort='unreachable'
Interface status:
 interface wan1 is online and tracking is active
 interface wan1_6 is online and tracking is active
 interface wan2 is online and tracking is active
 interface wan2_6 is online and tracking is active
 interface wan3 is online and tracking is active
 interface wan3_6 is online and tracking is active
 interface wan4 is online and tracking is active
 interface wan4_6 is online and tracking is active
 interface wana is online and tracking is active
 interface wana_6 is online and tracking is active
 interface wanb is online and tracking is active
 interface wanb_6 is online and tracking is active

Current ipv4 policies:
loadbalanced:
 wan1 (25%)
 wan2 (25%)
 wan3 (25%)
 wan4 (25%)
loadbalanced6:
 unreachable
wan12_6_wan34_6:
 unreachable
wan1_2_3_4:
 wan1 (100%)
wan1_2_default:
 wan1 (100%)
wan1_2_wan3_4:
 wan2 (50%)
 wan1 (50%)
wan1_6_only:
 unreachable
wan1_6_wan2_6:
 unreachable
wan1_only:
 wan1 (100%)
wan1_wan2:
 wan1 (100%)
wan2_6_only:
 unreachable
wan2_only:
 wan2 (100%)
wan34_6_wan12_6:
 unreachable
wan3_4_2_1:
 wan3 (100%)
wan3_4_wan1_2:
 wan4 (50%)
 wan3 (50%)
wan3_6_only:
 unreachable
wan3_6_wan4_6:
 unreachable
wan3_only:
 wan3 (100%)
wan3_wan4:
 wan3 (100%)
wan4_3_2_1:
 wan4 (100%)
wan4_6_only:
 unreachable
wan4_only:
 wan4 (100%)
wan_1_2_3_4:
 
wana_6_only:
 unreachable
wana_6_wanb_6:
 unreachable
wana_only:
 wana (100%)
wana_wanb:
 wana (100%)
wanb_6_only:
 unreachable
wanb_6_wana_6:
 unreachable
wanb_only:
 wanb (100%)
wanb_wana:
 wanb (100%)

Current ipv6 policies:
loadbalanced:
 unreachable
loadbalanced6:
 wan4_6 (25%)
 wan3_6 (25%)
 wan2_6 (25%)
 wan1_6 (25%)
wan12_6_wan34_6:
 wan1_6 (100%)
wan1_2_3_4:
 unreachable
wan1_2_default:
 default
wan1_2_wan3_4:
 default
wan1_6_only:
 wan1_6 (100%)
wan1_6_wan2_6:
 wan2_6 (50%)
 wan1_6 (50%)
wan1_only:
 unreachable
wan1_wan2:
 unreachable
wan2_6_only:
 wan2_6 (100%)
wan2_only:
 unreachable
wan34_6_wan12_6:
 wan4_6 (50%)
 wan3_6 (50%)
wan3_4_2_1:
 unreachable
wan3_4_wan1_2:
 unreachable
wan3_6_only:
 wan3_6 (100%)
wan3_6_wan4_6:
 wan4_6 (50%)
 wan3_6 (50%)
wan3_only:
 unreachable
wan3_wan4:
 unreachable
wan4_3_2_1:
 unreachable
wan4_6_only:
 wan4_6 (100%)
wan4_only:
 unreachable
wan_1_2_3_4:
 
wana_6_only:
 wana_6 (100%)
wana_6_wanb_6:
 wana_6 (100%)
wana_only:
 unreachable
wana_wanb:
 unreachable
wanb_6_only:
 wanb_6 (100%)
wanb_6_wana_6:
 wanb_6 (100%)
wanb_only:
 unreachable
wanb_wana:
 unreachable

Directly connected ipv4 networks:
127.0.0.0/8
192.168.150.0
172.17.0.0/16
180.115.231.1
192.168.1.1
192.168.120.0/24
183.213.154.1
192.168.150.0/24
180.115.231.38
192.168.195.255
127.0.0.1
192.168.195.0
127.255.255.255
114.228.153.135
192.168.120.2
127.0.0.0
192.168.1.255
183.213.155.94
192.168.150.255
224.0.0.0/3
172.17.0.0
112.1.96.162
192.168.1.0
114.228.153.1
172.17.255.255
192.168.120.255
192.168.195.0/24
192.168.120.0
192.168.1.0/24
192.168.195.1
172.17.0.1
112.1.96.1
192.168.150.2
192.168.195.4

Directly connected ipv6 networks:
240e:3a0:420f:44b5::/64
2409:8a20:4302:e45f::/64
dd5d:189b:b5f9:2::4
240e:3a0:420c:fedf::/64
dd5d:189b:b5f9:1::/64
ddc1:aaaa:f111::/64
fe80::/10
dda1:aaaa:e111::/64
2409:8a20:4302:e498::/64
dd5d:189b:b5f9:2::/64
fe80::/64

Active ipv4 user rules:
 2328  187K S AntiGFW_DNS  all  --  *      *       0.0.0.0/0            8.8.8.8              
 1888  159K S AntiGFW_DNS  all  --  *      *       0.0.0.0/0            8.8.4.4              
    0     0 S AntiGFW_DNS  all  --  *      *       0.0.0.0/0            208.67.222.222       
    0     0 S AntiGFW_DNS  all  --  *      *       0.0.0.0/0            208.67.220.220       
    0     0 S AntiGFW_DNS  all  --  *      *       0.0.0.0/0            199.91.73.222        
    0     0 S AntiGFW_DNS  all  --  *      *       0.0.0.0/0            178.79.131.110       
  430 27069 S ChinaNet_DNS  all  --  *      *       0.0.0.0/0            221.228.255.1        
 4132  262K S ChinaNet_DNS  all  --  *      *       0.0.0.0/0            218.2.135.1          
  883 56009 S ChinaNet_DNS  all  --  *      *       0.0.0.0/0            61.177.7.1           
    0     0 S ChinaNet_DNS  all  --  *      *       0.0.0.0/0            218.4.4.4            
    0     0 S ChinaNet_DNS  all  --  *      *       0.0.0.0/0            218.2.2.2            
 1223 87989 S ChinaNet_DNS  all  --  *      *       0.0.0.0/0            114.114.114.114      
  946 70543 S CM_DNS  all  --  *      *       0.0.0.0/0            112.4.0.55           
  904 67858 S CM_DNS  all  --  *      *       0.0.0.0/0            221.131.143.69       
  910 68217 S CM_DNS  all  --  *      *       0.0.0.0/0            114.114.115.115      
    0     0 S VPS_LA  all  --  *      *       0.0.0.0/0            31.40.214.127        
    0     0 S VPS_LA  all  --  *      *       0.0.0.0/0            173.242.119.141      
  529 31740 - wan3_4_wan1_2  all  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set ptlist dst 
   65  4865 - wana_wanb  all  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set gfwlist dst 
 4120  249K S CM_IPV4  all  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set cmcc dst 
22388 1398K S ChinaNet_IPV4  all  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set cnnocmcc dst 
17133 1355K S IPV4_WEB  all  --  *      *       0.0.0.0/0            0.0.0.0/0            
17133 1355K - loadbalanced  all  --  *      *       0.0.0.0/0            0.0.0.0/0            

Active ipv6 user rules:
    0     0 S AntiGFW_DNS_V6  all      *      *       ::/0                 2001:4860:4860::8888  
    0     0 S AntiGFW_DNS_V6  all      *      *       ::/0                 2001:4860:4860::8844  
  110  8800 S IPV6_PTlist  all      *      *       ::/0                 ::/0                 match-set ptlist6 dst 
  291 33193 - wana_6_wanb_6  all      *      *       ::/0                 ::/0                 match-set gfwlist6 dst 
 1264  126K S CM_IPV6  all      *      *       ::/0                 ::/0                 match-set cmccv6 dst 
 2873  254K S ChinaNet_IPV6  all      *      *       ::/0                 ::/0                 match-set cnnocmccv6 dst 
 4263  340K S IPV6_WEB  all      *      *       ::/0                 ::/0                 
    0     0 - loadbalanced6  all      *      *       ::/0                 ::/0     

Currently the wana and wanb is online because I've hacked the mwan3track (use ping -I $SRC_IP , but still not working properly ):

	if [ $iftype ]
	then
		METHOD="$SRC_IP"
	else
		METHOD="$DEVICE"
	fi

and

					ping)
						if [ $check_quality -eq 0 ]; then
							ping -I $METHOD -c $count -W $timeout -s $size -t $max_ttl -q $track_ip &> /dev/null
							result=$?
						else
							ping_result="$(ping -I $METHOD -c $count -W $timeout -s $size -t $max_ttl -q $track_ip | tail -2)"
							loss="$(echo "$ping_result" | grep "packet loss" |  cut -d "," -f3 | awk '{print $1}' | sed -e 's/%//')"
							if [ "$loss" -eq 100 ]; then
								latency=999999
							else
								latency="$(echo "$ping_result" | grep -E 'rtt|round-trip' | cut -d "=" -f2 | cut -d "/" -f2 | cut -d "." -f1)"
							fi
						fi
					;;

Your config is quite big and I am a bit lost in there.
Could you tell me which rule handles the wireguard tunnel traffic?

mwan3.AntiGFW_DNS=rule 
mwan3.AntiGFW_DNS.proto='all' 
mwan3.AntiGFW_DNS.family='ipv4' 
mwan3.AntiGFW_DNS.dest_ip='8.8.8.8,8.8.4.4,208.67.222.222,208.67.220.220,199.91.73.222,178.79.131.110' 
mwan3.AntiGFW_DNS.sticky='1' 
mwan3.AntiGFW_DNS.timeout='600' 
mwan3.AntiGFW_DNS.use_policy='wana_wanb' 
mwan3.AntiGFW_DNS_V6=rule 
mwan3.AntiGFW_DNS_V6.proto='all' 
mwan3.AntiGFW_DNS_V6.family='ipv6' 
mwan3.AntiGFW_DNS_V6.dest_ip='2001:4860:4860::8888,2001:4860:4860::8844' 
mwan3.AntiGFW_DNS_V6.sticky='1' 
mwan3.AntiGFW_DNS_V6.timeout='600' 
mwan3.AntiGFW_DNS_V6.use_policy='wana_6_wanb_6'

mwan3.IPV4_GFW=rule
mwan3.IPV4_GFW.proto='all'
mwan3.IPV4_GFW.family='ipv4'
mwan3.IPV4_GFW.ipset='gfwlist'
mwan3.IPV4_GFW.timeout='300'
mwan3.IPV4_GFW.sticky='0'
mwan3.IPV4_GFW.use_policy='wana_wanb'

These rulses above handles the wireguard tunnel traffic.

Maybe this is the wireguard issue, I've ported the tunsafe project to openwrt, which use the userspace tun device, and it's working properly with ping -I $DEVICE.
The ping -I $SRC_IP also not working properly caus the mwan3 rule and masquerading (i.e. ping -I 192.168.150.2 8.8.8.8 the ping package (from wanb) will actually go through the 192.168.120.1 (wana) ).

This can't be right, as the policy is using the wana and wanb interfaces.
I am asking which rule is handling the traffic to the IPs of the wireguard endpoints. This should be using some of the other interfaces.

Pinging with a specific source IP doesn't guarantee that the traffic will go out of that interface. All the routing rules will be applied, so it can exit from another interface.
You need to ping with -I $interface to force traffic from a specific interface.

mwan3.VPS_LA=rule
mwan3.VPS_LA.family='ipv4'
mwan3.VPS_LA.proto='all'
mwan3.VPS_LA.sticky='1'
mwan3.VPS_LA.timeout='600'
mwan3.VPS_LA.dest_ip='31.40.214.127,173.242.119.141'
mwan3.VPS_LA.use_policy='wan1_2_default'

This rulse handles the wireguard tunnel traffic, but I don't think it's mwan3 rule issue.

But the busybox ping won't get through the wireguard interface.
Then I've tried the iputils-ping, it can do ping -I $interface, but also can't guarantee the traffic go out of the specific interface.

root@HOME-Router:~# /usr/bin/ping
BusyBox v1.31.1 () multi-call binary.

Usage: ping [OPTIONS] HOST

Send ICMP ECHO_REQUEST packets to network hosts

        -c CNT          Send only CNT pings
        -s SIZE         Send SIZE data bytes in packets (default 56)
        -i SECS         Interval
        -A              Ping as soon as reply is recevied
        -t TTL          Set TTL
        -I IFACE/IP     Source interface or IP address
        -W SEC          Seconds to wait for the first response (default 10)
                        (after all -c CNT packets are sent)
        -w SEC          Seconds until ping exits (default:infinite)
                        (can exit earlier with -c CNT)
        -q              Quiet, only display output at start
                        and when finished
        -p HEXBYTE      Pattern to use for payload
root@HOME-Router:~# /usr/bin/ping -I wana 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
^C
--- 8.8.8.8 ping statistics ---
5 packets transmitted, 0 packets received, 100% packet loss
root@HOME-Router:~# /usr/sbin/ping
Usage: ping [-LRUbdfnqrvVaAD] [-c count] [-i interval] [-w deadline]
            [-p pattern] [-s packetsize] [-t ttl] [-I interface]
            [-M pmtudisc-hint] [-m mark] [-S sndbuf]
            [-T tstamp-options] [-Q tos] [hop1 ...] destination
root@HOME-Router:~# /usr/sbin/ping -I wana 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 192.168.120.2 wana: 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=58 time=138 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=58 time=135 ms
64 bytes from 8.8.8.8: icmp_req=3 ttl=58 time=135 ms
64 bytes from 8.8.8.8: icmp_req=4 ttl=58 time=135 ms
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 135.557/136.414/138.686/1.366 ms

Then I have to add the ip rule to mwan3:

config rule 'WANA_Source'
        option src_ip '192.168.120.0/24'
        option family 'ipv4'
        option proto 'all'
        option sticky '1'
        option use_policy 'wana_only'

config rule 'WANB_Source'
        option src_ip '192.168.150.0/24'
        option family 'ipv4'
        option proto 'all'
        option sticky '1'
        option use_policy 'wanb_only'

And hack the mwan3:


        case "$family" in
                ipv4)
                        PING="/usr/sbin/ping"
                        ;;
                ipv6)
                        PING="/usr/sbin/ping6"
                        ;;
        esac

Then the mwan3track working properly.
But the busybox ping can't ping with wireguard interface, I don't know it's busybox's issue or wireguard's issue.

You have a typo in word member, not sure if this is coincidence or connected.
Other than that it shouldn't have issue as you give precedence to wan1 for both tunnels.

In my case I was able to ping both ways. The first time it used the regular wan interface:

root@koutsomoura:~# ping -I 10.0.20.5 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 10.0.20.5: 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=55 time=7.520 ms
64 bytes from 8.8.8.8: seq=1 ttl=55 time=4.880 ms
64 bytes from 8.8.8.8: seq=2 ttl=55 time=10.079 ms
64 bytes from 8.8.8.8: seq=3 ttl=55 time=5.003 ms
64 bytes from 8.8.8.8: seq=4 ttl=55 time=4.793 ms
^C
--- 8.8.8.8 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 4.793/6.455/10.079 ms
root@koutsomoura:~# ping -I elvetias 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=52 time=95.018 ms
64 bytes from 8.8.8.8: seq=2 ttl=52 time=94.510 ms
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 2 packets received, 33% packet loss
round-trip min/avg/max = 94.510/94.764/95.018 ms

And the second time it went via the tunnel, hence the longer time.
Does it work the same with mwan3 stopped?

Thanks, but there are right configs in the mwan3 config file, so it's not the reason of ping -I $device failure.
And which version of openwrt are you running now?
I'm running on the latest trunk version.

I am on 18.06.4, with busybox ping, but I remember this behavior for a long time.
I would say that this is normal behavior however. Using a specific source IP shouldn't guarantee the exit interface, if routing is different.

Actually I've used wireguard + mwan3 without this issue before, but I'm always follow up the latest trunk version of openwrt, I don't know this issue was from which version of trunk.

Let's see if anyone else is facing the same issue, or can contribute to solving your problem then.

It seemed that the issue was caused by mwan3 itself.
I've tried another device with lessest package installed, below is the test resault:

root@HOME-Router_HB:/usr/sbin# /etc/init.d/mwan3 start
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
root@HOME-Router_HB:/usr/sbin# ping -I wana 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
^C
--- 8.8.8.8 ping statistics ---
13 packets transmitted, 0 packets received, 100% packet loss
root@HOME-Router_HB:/usr/sbin# ping -I wana 192.168.120.1
PING 192.168.120.1 (192.168.120.1): 56 data bytes
^C
--- 192.168.120.1 ping statistics ---
6 packets transmitted, 0 packets received, 100% packet loss
root@HOME-Router_HB:/usr/sbin# /etc/init.d/mwan3 stop
root@HOME-Router_HB:/usr/sbin# ping -I wana 192.168.120.1
PING 192.168.120.1 (192.168.120.1): 56 data bytes
64 bytes from 192.168.120.1: seq=0 ttl=64 time=147.649 ms
64 bytes from 192.168.120.1: seq=1 ttl=64 time=143.192 ms
64 bytes from 192.168.120.1: seq=2 ttl=64 time=142.373 ms
64 bytes from 192.168.120.1: seq=3 ttl=64 time=189.098 ms
64 bytes from 192.168.120.1: seq=4 ttl=64 time=256.312 ms
^C
--- 192.168.120.1 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 142.373/175.724/256.312 ms
root@HOME-Router_HB:/usr/sbin# ping -I wana 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=58 time=293.347 ms
64 bytes from 8.8.8.8: seq=1 ttl=58 time=287.448 ms
64 bytes from 8.8.8.8: seq=2 ttl=58 time=285.715 ms
64 bytes from 8.8.8.8: seq=3 ttl=58 time=287.217 ms
64 bytes from 8.8.8.8: seq=4 ttl=58 time=289.991 ms
64 bytes from 8.8.8.8: seq=5 ttl=58 time=298.135 ms
64 bytes from 8.8.8.8: seq=6 ttl=58 time=286.923 ms
^C
--- 8.8.8.8 ping statistics ---
7 packets transmitted, 7 packets received, 0% packet loss
round-trip min/avg/max = 285.715/289.825/298.135 ms
root@HOME-Router_HB:/usr/sbin# 

The mwan3 version is 2.8.2-2.

@feckert any suggestions?

Why do we track the wireguard interface with mwan3? My use case is always track a phyiscal interface so eth0/wwan0/pppoe-xdsl. So I have no use case and so no experience with your setup.
I will have to do a deeper look. I think we have the same problem with ipsec

Supposed we are using a WG interface for internet connectivity, shouldn't we track it in case the path to the wg peer is broken and we cannot reach it, so to use the other gateway?
I mean if they are all gateways to the internet, physical or virtual, shouldn't they work and shouldn't we track them the same way?

See my reply on Github https://github.com/openwrt/packages/issues/10712#issuecomment-635886892

1 Like

Hi,
I've tried the new version, and still not working.
Please see : https://github.com/openwrt/packages/issues/10712#issuecomment-636031304
Thanks.

try to go in firewall custom rules and add the following line
iptables -t nat -A POSTROUTING -d <destination_ip> -o <real_eth_interface> -j MASQUERADE
this fixed my problem in ipsec site2site