А можешь плизз описать чем являются подсети и ip:
192.168.0.0/16 - Вся серая подсеть 192.168 - на нее не натим
10.0.0.0/8 - тоже с 10.
192.168.88.99 - Айпишка самого маршрутизатора, смотрящая в сторону ISP1
192.168.89.99 - Айпишка самого маршрутизатора, смотрящая в сторону ISP2
10.0.0.105 - Сервак помойка, просто ему разрешаем попадать в приватный вилан 12
10.0.12.0/24 - Приватный вилан для сотрудников
10.0.12.1 - Айпишка самого маршрутизатора для вилана 12
10.0.0.100 - Сервачек, который всегда должен ходить через 1 интерфейс
10.0.0.1 - Айпишка самого маршрутизатора на вилане 1
10.0.0.14 - аналогично со 105
То-есть в принципе эти значения исключительно для сетки, откуда я их выдрал. Основное
Для меня будет достаточна следующая конфигурация?
set limit states 128000
set optimization aggressive
ext_if1="ip_PS1"
ext_if2="ip_PS2"
ext_gw1="GW_PS1"
ext_gw2="GW_PS2"
nat pass on $ext_if1 from 10.0.24.0/24 to any -> $ext_if1
nat pass on $ext_if2 from 10.0.25.0/24 to any -> $ext_if2
nat from 10.0.24.0/24 to !<no_nat> -> { ($ext_if1) ($ext_if2) } round-robin sticky-address
nat from 10.0.25.0/24 to !<no_nat> -> { ($ext_if1) ($ext_if2) } round-robin sticky-address
pass out on $ext_if1 route-to ($ext_if2 $ext_gw2) from $ext_if2 to !<no_nat>
pass out on $ext_if2 route-to ($ext_if1 $ext_gw1) from $ext_if1 to !<no_nat>
Можно без:
nat from 10.0.24.0/24 to !<no_nat> -> { ($ext_if1) ($ext_if2) } round-robin sticky-address
nat from 10.0.25.0/24 to !<no_nat> -> { ($ext_if1) ($ext_if2) } round-robin sticky-address
Эти строки для динамической балансировки нагрузки
IPFW именно так и настроен у меня, и еще у меня сейчас в rc.conf закоменчен defaultrouter, так как оба прова соединяются по dhcp, но по какой-то причине постоянно в netstat светится GW второго прова, может нужно defaultrouter прописать какой-то локальный ip?
Нет ничего прописывать не надо, если не выйдет - дайте ssh или тимвивер - посмотрим что не так.