In this recipe, we're going to deal with the perennial problem of static routes. Static routes are wonderful for allowing network operators to customize their network topology, but they're just that—static. In contrast to a dynamic routing protocol, nothing about a static route gives us any assurance that the route we're following is really alive or dead. This is especially the case in modern environments dominated by multi-access link-layers such as Ethernet where there is no inherent mechanism for determining host liveness on the subnet beyond ARP and neighbor discovery.
The standards-based way to solve this problem is Bidirectional Forwarding Detection (BFD) defined in IETF RFC 5880—and I encourage you to explore that option as well, but if you're in a situation where you can't run a dynamic protocol, or the other...