Во FreeBSD 7 появилась возможность задания множественных таблиц маршрутизаций. В ядре отвечает за это опция: options ROUTETABLES=[количество таблиц]
Распределения трафика будет осуществляться средствами пакетного фильтра ipfw.
Задаем маршруты по умолчанию:
setfib 0 route add default 1.0.1.1 # таблица по умолчанию
setfib 1 route add default 1.1.1.1 # новая таблица
Файл конфигурации для запуска ipfw:
$cmd="/sbin/ipfw"
$cmd add 10 check-state
$cmd add 20 prob 0.5 setfib 0 tcp from 192.168.0.0/16 to not 192.168.0.0/16 keep-state
$cmd add 30 prob 0.5 setfib 1 tcp from 192.168.0.0/16 to not 192.168.0.0/16 keep-state
$cmd add 40 allow all from any to any
Таким образом мы задаем распределение трафика 50/50. Если каналы не равноценные то нужно выставить процентную весомость этих каналов.
Трансляция адресов (NAT).
Под эту задачу я выбрал ipnat, реализацию NAT от фаервола ipf.
пример /etc/ipnat.rules:
map vlan0 192.168.0.0/16 -> 1.0.1.1/32
map tun0 192.168.0.0/16 -> 1.1.1.1/32
Также можно выбрать демон natd или новый, работающий на уровне ядра, NAT, который появился во FreeBSD 7.
URL: http://bsd.ucd.uz/raspredelenie-trafika-mezhdu-2-mya-kanalam...
Обсуждается: https://www.opennet.ru/tips/info/2142.shtml