I have own autonomous system, connected to the Internet using BGP (zebra/quagga on linux) router. Until now, I'm connected via my primary ISP, but now I need to configure second (spare) connection to different ISP.

But the second connection is paid-per-transferred-data, so I want to use it if and only if the first one is broken / unavailable.

Does anybody have some experience on this field ? I'm afraid that if I configure two BGP peers with different weight, it will not ensure so that the incoming data will come only via the primary connection. Is it necessary to check that the primary link is available separately and to reconfigure the BGP peers accordingly ? Or is there any other solution ? Please help

Thanks for suggestions !!!