user@machine_at_site_1:~# traceroute 192.168.3.1traceroute to 192.168.3.1 (192.168.3.1), 30 hops max, 60 byte packets 1 80.10.x.y (80.10.x.y) 0.127 ms 0.100 ms 0.112 ms 2 * * * 3 * * *[...]
Maybe this is due to anti-spoof, or maybe due to a forced catch-all gateway multi-wan rule that slurps your local traffic and pushes it to the gateway on said interface.The latter is more likely, but there was no statement about it in the OP.
I think I found out the root cause: It might be because of some bug with firewall aliases in OPNsense: an alias fails to be completely expanded (it's an network alias where members are also network aliases), thus the firewall rule that should tell OPNsense to use "gw=default" for this destination does not match and it's then the final "gw=multiwan_gateway_group" that matches, ignoring my routing table.