Лично я склонен не верить такому(http://tropinki.net/forum/freebsd-i-dva-provaidera) катигорическому утверждению, по большому счету все зависит от ситуации и обстоятельств.У меня довольно простая ситуация но может поможет:
Два канала один прямой другой через vpn, на vpn'шном канале дешовый инет.
В rc.conf defaultroute прописан на прямой канал.
В /etc/defaults лежит файлик sysconf там прописанно DEFAULTROUTE=PROFF.
В скрипте фаерволла подключается этот(sysconf) файлик и в зависимоси от значения параметра DEFAULTROUTE выберается соответствующий nat,fwd,antispoofing и т.д.
В mpd'шке в скриптах UP и DOWN выполняется замена defaultroute,nat,fwd .... соответственно при поднятии и при опускании второго канала, ПРИЧЕМ С УЧЕТОМ ЗНАЧЕНИЯ ИЗ ФАЙЛА /etc/defaults/sysconf :-).
По крону запускается скриптик для проверки канала, есть/нет инет, если что меняет останавливает mpd'шку, меняет параметр в /etc/defaults/sysconf и запускает заново.
Ну и плюс в rc.conf прописана большая часть маршрутов до сетей(там внутренний трафик. дружественные сети и т.д.) и ip'шников какждого прова.
И все работает уж хрен знает скоко без особых косиков :-)
Единственное по началу были проблемы с mpd'шкой, при поднятии или опускании интерфейса, при определенных условиях затирался defaultroute. Вылечил скриптом в кроне :-)
Грубовато но работает, вешал 6-ть каналов на такую схему, удивился что с незначительными изменениями все то же заработало :-).