This is the situation. We have two Carriers' MPLS clouds at two locations for redundancy. Each Carrier provides us a managed (CE) router to connect to their MPLS cloud. We connect two of our routers to the two Carriers' CE routers at each location. We then create eBGP neighbors between the two Carrier's CE routers and then create iBGP neighbors between our two routers at each location using local preference. Currently, one MPLS cloud is primary for all our network traffic (call that cloud A) and the other cloud is a backup (call that cloud B). If we lose eBGP neighbors to the MPLS cloud A's CE router, all the traffic fails over perfectly to backup MPLS cloud B. The issue we are having is when the eBGP neighbors stay up between MPLS cloud A's CE router and our router, but all our BGP routes are lost somewhere with the MPLS cloud. Because we still have eBGP neighbors with MPLS cloud A's CE router, our router continues to send the network traffic to that CE router, thus everything goes into a black hole. The only way to fix the problem is to manual shutdown the interface to MPLS cloud A's CE router, so all the traffic fails to MPLS cloud B's CE router. How can we detect that we are no longer receiving BGP routes from MPLS cloud A's CE router and automatically failure over to MPLS cloud B's CE router?