Say I want to send a frame to a web server, and let's say this web server is in a very distant IP outside my local network e.g. a Google server. I initially send the frame to my router. My router decapsulates the frame, reads the destination IP address from the L3 data and through its routing table, finds the a next hop router. The router then re-encapsulates the packet into a frame.
These two answers, How does a router know the destination mac?, https://superuser.com/a/702854 , suggest the next hop router is found through checking the routing table for routers on its local network, but how does the router determine the next hop router if the server is in another country?
Now, it is possible that the next hop address is not on a network that your router is connected to. So your router looks in its route table to find the route to the next-hop address. That route will also have a next hop address (we'll call it NH2). NH2 will be on a common subnet, so your router will ARP for the MAC of NH2.
This answer seems promising, but I don't get how the routing table can just have a route to a next hop router that isn't on its network. "NH2 will be on a common subnet", how can you not be on the same network with a next hop router, but have a route to a next hop router on a common subnet?
Furthermore, how do you get the MAC address of the next hop router? The router does an ARP to get the MAC address of the next hop router to fill the destination MAC address for when the router re-encapsulates the packet, but I find it difficult to believe that the router will send an ARP request to all 250 other devices located within the subnet every time to get the MAC address of the next hop router, especially if you're sending a packet to an IP address as far away as another country.