You have overlapping subnets on both sides. From a traditional routing perspective, I don't understand the problem with this. They're different subnets. They overlap but that's why routers use the most specific mask when matching traffic for a routing decision. The network at the remote site is an extension of the main utility network.
Your log screenshot shows traffic is "Accepted", when it should show "Encrypted". You need to fix your VPN domains. I don't understand what's wrong with them. I understand the VPN domains are the policy used to direct traffic over the VPN.
Example: domain1 = 10.0.1.0/24 domain2 = 10.0.2.0/24
src: 10.0.1.10 dst: 10.0.2.20 = traffic goes across the VPN
src: 10.0.1.10 dst: 10.0.3.30 = traffic does not go across the VPN
You also need to fix your firewall routing tables; both gateways have routing issues. Your R1 router must also have a 10.0.0.0/8 route with next-hop of the firewall. That's why you are seeing ping-pong traffic in your traceroute. - Close, it's a 0/0 and I agree with what you're saying. I'm expecting the FW to receive the traffic from the router and send it over the VPN because the src and dst of the packets match the VPN domains. Instead, the FW is saying, "screw you VPN community, you mean nothing to me, I don't even know you man, you're dead to me, I'm just going to use this /16 and route traffic back to where it came from"
I don't think I'm understanding what people are telling me. I probably need to better understand order of operations on CP. As it stands right now, I 100% believe that the traffic arrives in a firewall, some part of the process is to match the traffic against the VPN community and if the source and destination match, it will choose that tunnel and forward the traffic. Obviously I'm wrong and it's possible everyone is telling me this but it's not clicking.
How do you tell a FW to forward traffic over a VPN built with a community?
On one gateway, you have 10.59.0.0/16 being sent out via eth4 interface, which includes the 10.59.78.0/24 subnet of the other gateway. Your external interface is eth1, however. The firewall won't encrypt packets that are destined towards an internal interface ("internal" is defined as "not-external"). From a routing perspective, that seems fine to me, I don't understand the problem. Often, I have summary routes then more specific routes. Maybe I want to traffic engineer so I'll use more specific routes to take certain links, I've never encountered an issue.
As @Lesley pointed out, you also have one side set for route-based VPN with a VTI, and the other is not. The other gateway has a 10.0.0.0/8 route going via the VTI, but it has local interfaces within that supernet. This also won't be very reliable, and it will cause "strange effects" for your network if you do this. This is not fully accurate. The remote side has two tunnels. One terminates on an ASA and is a VTI. Unless you think this is causing all my problems, we don't need to worry about that. With this design, I'm again assuming longest mask match wins the routing decision and also assuming the VPN Domains handle everything with routing, that's what I was taught.
Simplified, I was taught that the two FW peers receive information from the VPN communities and based on src and dst, it will encrypt and send the traffic across the tunnel. That's not happening so I was taught wrong or misunderstood.
A lot to digest here, thanks man! 😊