выбираем маршрутом по умолчанию - шлюз первого провайдера
route add default 81.200.6.1запускаем два natd:
/sbin/natd -p 8668 -alias_address 81.200.6.190
/sbin/natd -p 8669 -alias_address 192.168.1.2
сам ipfirewall:
add 100 allow ip from any to any via lo0
add 200 deny ip from 127.0.0.0/8 to any
add 300 deny ip from any to 127.0.0.0/8
add 500 skipto 10000 ip from any to any in recv rl1
add 550 skipto 15000 ip from any to any out xmit rl1
add 600 skipto 20000 ip from any to any in recv rl0
add 650 skipto 25000 ip from any to any out xmit rl0
add 700 skipto 30000 ip from any to any in recv rl2
add 750 skipto 35000 ip from any to any out xmit rl2
add 900 deny log ip from any to any
add 10000 cont ip from any to any
# тут можно блокировать трафик из локалка
add 14000 allow ip from any to any
add 15000 count ip from any to any
# тут можно блокировать трафик в локалку
add 19000 allow ip from any to any
# rl0 - in
add 20000 count ip from any to any
add 21050 deny ip from any to not 81.200.6.190
add 21100 divert 8668 ip from any to any
add 24000 allow ip from any to any
#rl0 - out - сюда пойдет весь трафик!!! - тут вся логика! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
add 25000 count ip from any to any
# скипаєм на второй диверт трафик, который должен поити на стрим - например весь http из локалки
add 26000 add skipto 28000 tcp from 192.168.0.0/24 to any 80,443
# что не скипнулось - попадает на первый диверт, маскарадится адресом 81.200.6.190 и уходит нашлюз по умолчанию
add 27000 divert 8668 ip from any to any
add 27000 allow ip from any to any
# сюда попадает трафик, который должен ути на стрим
# маскарадим его адресом 192.168.1.2 и принудительно отправляєм на шлюз стрима
add 28000 divert 8669 ip from any to any
add 28100 fwd 192.168.1.1 ip from any to any
add 29000 deny log ip from any to any
# конец логики! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
#rl2 strim - in
add 30000 count ip from any to any
add 31050 deny ip from any to not 192.168.1.2
add 31100 divert 8669 ip from any to any
add 34000 allow ip from any to any
#rl2 strim - out - сюда вроде ничего не попадет
add 35000 count ip from any to any
add 37000 divert 8669 ip from any to any
add 39000 allow ip from any to any
add 65000 deny log ip from any to any