"I can build you any network you want -- fast/cheap/reliable. Just pick any 2" -- Not sure who said that however it is true on many levels.
In this blogtorial we are going to take a quick tour on how to configure DMVPN (Dynamic Multipoint Virtual Private Network). So what is DMVPN? DMVPN gives you the ability to create VPN tunnels dynamically as needed between spokes in a hub-to-spoke topology. It can also scale very well to support a large number of remote endpoints. Please keep in mind that DMVPN is Cisco proprietary, however there are ways to implement it using Linux (OpenNHRP).
So here is the topology and let's get started.
Relevant configurations are posted below.