Failure recovery in IP networks is critical to high quality service provisioning. One of the challenges is how to achieve fast recovery without introducing high complexity and resource usage. Today's main approaches are route recalculation and lower layer protection, where recalculation could take a long time to complete; while protection usually requires considerable bandwidth redundancy. IP fast rerouting achieves ultra fast failure recovery by calculating alternate paths in advance. When a failure is detected, the affected packets are immediately forwarded through alternate paths to shorten the service disruption. We present an algorithm called Efficient SCan for Alternate Paths (ESCAP) to achieve fast rerouting. The algorithm guarantees 100% recovery of single-link and single-node failures. In particular, it supports generic multipath routing (where a router maintains multiple paths to a single destination) and does not require the paths to have equal cost. The implementation of ESCAP has low complexity and does not introduce explicit signaling between routers. Simulations show that our scheme yields comparable performance to shortest path route recalculation. This work illuminates the possibility of using pure IP layer solutions to enhance the Internet survivability.