А динамически менять - это пишем скрипт, который пингует кучу всего (например рутовые DNS-серваки) через все три соска. Как через какой-то не пропинговалось ничего, так сразу переделываем таблицы маршрутизации мимо этого провайдера. Но продолжаем через него пинговать, проверяя не поднялся ли он