

Routing takes place on layer 3 (ip) so destinations are ip networks and hosts.
Each packet you create has a destination IP. Your computer looks at your route table to see where it goes by matching the destination ip with each network. It will be sent to the most specific match first and your default gateway last.
If you’re default gateway is you’re vpn server via your vpn interface then you just need to add more specific route for destinations of interest through a different gateway (you’re router) via the physical interface
Fail2ban is not a static security policy.
It’s a dynamic firewall. It ties logs to time boxed firewall rules.
You could auto ban any source that hits robots.txt on a Web server for 1h for instance. I’ve heard AI data scrapers actually use that to target big data rather than respect web server requests.