I'm looking at implementing a linux-based VPN setup with approx 1200 remote sites connecting into two redundant data centers/DCs. Each remote site has 4 networks, and each DC has ~10. The VPN itself is GRE over IPsec, but what I'm struggling with at present is what is the most appropriate routing protocol to use.
- Each remote site only needs to know what networks are at the data center, they do not need to know about the networks in use by other remote sites.
- The networks at each data center may move between each other from time to time, and new networks added (don't want to update static ipsec configs for 1200+ sites each time this happens).
- The DCs needs to know what networks are in use by every remote site.
- When the primary DC dies, traffic should route automatically to the backup DC.
- Most of these remote sites are on dynamic IPs/3G so it's common for sites to come up/down a couple times during the day, and across 1200 sites that equates to a lot of topology changes.
- The required capacity at present is around 1200, but could grow to 1800-1900 by end of next year.
- Cannot use closed solutions (Cisco etc, also EIGRP even though it's technically free now).
From my reading of OSPF, it does not appear to support the number of sites.
My questions are:
- What routing protocol is best suited for this setup?
- How should I structure it to handle the large number of sites?