Operators of modern networks require support for diverse and complex end-to-end policies, such as, middlebox traversals, isolation, and traffic engineering. While Software-defined Networking (SDN) provides centralized custom routing functionality in networks to realize these policies, many networks still deploy "legacy" control planes running distributed routing protocols like OSPF and BGP because these protocols are scalable and robust to failures. However, realization of policies by distributed control plane configurations is manual and error-prone. We present Zeppelin, a system for automatically generating policy-compliant control planes that also behave well under majority of small network failures. Zeppelin differs from existing approaches in that it uses policy-compliant paths to guide the synthesis process instead of directly generating policy-compliant configurations. We show that Zeppelin synthesizes highly resilient and policy-compliant configurations for real topologies with up to 80 routers.