If you are using the same provider for your primary and backup MPLS connections, it is almost a certainty that they are the same network. Even if you were to use a different technology for your backup links (e.g, frame relay), the provider would likely provision that over their MPLS network.
I know you want a simple answer, but your question is pretty broad. Since you asked about best practice, here is how I would go about creating a design, rather than just saying “it depends”:
I would take a step back and look at the overall picture of your network. You have to pay attention to each of the components between the branch user and the main office server, to decide which ones you will want to make redundant. Here is a (partial) list:
- Branch user PC
- Local switch
- Branch router
- Local loop circuit
- Provider edge switch
- Provider network
- Provider edge switch at main office location
- Local loop to main office
- Main office router
- Main office switch(es)
- Server
Think of these items as links in a chain -- If any of these items fail, the chain will be broken and your user will not be able to communicate with the server. If you only think about the network components (routers and WAN circuits), you could still have a network failure (and then you have to explain to your boss why he spent all that money but the users still can't access the server).
When deciding which components to make redundant, you have to analyze the likelihood of a failure, the impact if the item fails, the cost of a redundant item and the complexity to install, operate and troubleshoot it. In other words, you have to analyze the risks to see where it makes most sense to add redundancy.
I recommend you create a table with the list of items as rows and the analysis factors as columns. As you fill in the data, you will begin to see where it makes most sense to add redundancy.
Your analysis will have to take into account specifics of the application use as well as failure characteristics of each item. Here are a few things to consider:
- The impact of a single user PC failing is relatively low, but if the server fails, then everyone is affected.
- How tolerant are you of downtime? Are your users making split-second stock trades, or are they researching information for literary reports?
- You can add a second local loop for redundancy, but given how local loop circuits are usually wired, a fault that affects one circuit may easily affect the other, so you don’t actually gain much redundancy.
- Adding redundancy adds complexity, and this can actually reduce availability. In your question, you ask about VRF-lite. Configuring VRF-lite, HSRP, GRE, etc. makes you network more complex, and when it comes time to troubleshoot it or modify it (at 3 in the morning), it will take you longer to fix. That doesn’t mean you shouldn’t do it, but it’s a factor to keep in mind.
The answer to all these questions will show you where it makes most sense to add redundancy. You may find that it is not cost-effective to add a second WAN circuit, even if it were a different provider. Or, it may be important to have redundant servers than redundant routers.
So, the short answer to your question is, “best practice” says you should carefully analyze where redundancy makes most sense.