Как уже знаем(поднималась похожая тема но как-то безрезультатно) в FreeBSD в седьмой версии есть поддержка множественных таблиц маршрутизации.
Как зароутить клиента A на инет через ADSL1, а клиента B через ADSL2?
Тут расписано как это делается через Policy-Based Routing (PBR), я же хочу через таблицы эти.
Чего делал я.
Запустил два NAT'а
Код: Выделить всё
natd -f /etc/natd_ng0.conf # порт 8668
natd -f /etc/natd_ng1.conf # порт 8778
Код: Выделить всё
setfib -0 route add default xxx.xxx.xxx.xxx
setfib -1 route add default yyy.yyy.yyy.yyy
правила фаервола
Код: Выделить всё
ipfw add 10 setfib 0 all from 192.168.0.1 to any
ipfw add 20 setfib 0 all from any to 192.168.0.1
ipfw add 30 setfib 1 all from 192.168.0.2 to any
ipfw add 40 setfib 1 all from any to 192.168.0.2
# ng0
ipfw add 100 divert 8668 all from any to XXX.XXX.XXX.XXX in via ng0
ipfw add 200 divert 8668 all from 192.168.0.0/24 to any out via ng0
# ng1
ipfw add 300 divert 8778 all from any to YYY.YYY.YYY.YYY in via ng1
ipfw add 400 divert 8778 all from 192.168.0.0/24 to any out via ng1