Yep, that's spot-on. The default gateway's IP address is used to find its MAC address (using ARP for IPv4 or ND for IPv6), and then the packet it sent there without changing any of the addresses in the packet. The same happens when the router sends the packet out: the destination IP address (or next-hop router address, if another hop is needed) is used to find the MAC address and the packet is sent on, again without changing the addresses in the packet.I need me some TCP/IP book it seems... I struggle to put down what I have in mind too. What would you recommend? ;D
Anyway. Source (machine in VLAN 10) wants to send the packet to a machine in a VLAN 20, but has no route to do so - so it sends the packet with default gateway's MAC as target (and maybe the IP as well, unsure?) and final destination IP (the one from VLAN 20). Virtual Router receives the packet and knows where to forward it based on the final destination IP, verifies against its routing tables and what not, ACLs, then changes the MAC in the packet to the target machine in VLAN 20. The packet comes out of the VE in VLAN 20 with the source and final destination IP address unchanged, but with MAC now pointing to the correct target machine. Destination machine accepts the packet.
Same principle applies when I'm trying to ping google's server from my LAN 192.168.1.1/24 subnet, my PC has no route for 142.250.186.206 so it gets sent to the default gateway instead which knows what to do with it - there's just many more routers and "hops" for the packet to go through before reaching the destination.
Is that phrased better and is correct now?
All of this changes when any form of Network Address Translation (NAT) is used; in that case the router performing the NAT does change source or destination addresses in the packet during the forwarding process.