URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID12
Нить номер: 6517
[ Назад ]

Исходное сообщение
"супер шлюз на Freebsd"

Отправлено pak , 29-Сен-10 20:00 
Существует два провайдера у первого внешний IP 89.109.236.21 шлюз 89.109.236.20 у второго IP 89.222.212.74 шлюз 89.222.212.65 + диапазон внешних адресов 89.222.212.241-89.222.212.246
кроме того есть локальный веб сервер x.x.x.x который надо отразить и дать доступ на удаленный рабочий стол по внешнему IP второго провайдера 89.222.212.74

проблемы:
1 как не пробовал не получается cделать доступ на удаленный рабочий стол на WIN. все попытки останавливались на том что просто виснет подключение к удаленному рабочему столу на прогресс баре. (форумы читал)

2 неполучается сделать проброс на внешние ip адреса 89.222.212.242-89.222.212.246 второго провайдера на машины подключенные "локально" к 89.222.212.241 ip адресу freebsd, звоним второму провайдеру - оо freebsd, да со шлюза все работает а пользователи интернета ничего не видят смотрите свои настройки мы тут не причем. (пробовал подключать два ната с обеих сторон, пробовал просто мост делать, без моста, пробовал просто с имитировать все это из подручных системников, все работает, на шлюзе второго провайдера глухо)
На WIN ISA все работает, кроме маршрутов ниче нет!

сейчас:

b1----а1*win isa*a2---b2,b3,b4  - все пашет
      ***********a4---b6,b7,b8

надо сделать:

b1----а1*********a2---b2,b3,b4  - rinet nat ipfw
b5----a3*freebsd*a4---b6,b7,b8

b1 - 89.222.212.65
b5 - 89.109.236.20
b2,b4 - 89.222.212.241-89.222.212.246
b6,b7,b8 - локалка + web
a1 - 89.222.212.74
a2 - 89.222.212.241
a3 - 89.109.236.21
a4 - локальный адрес

Подскажите че делать?
вот основные настройки ipfw

ipfw add 99 allow all from any to 127.0.0.1
ipfw add 99 allow all from 127.0.0.1 to any

ipfw add 100 divert "nat port" all from 192.168.220.1/24, 89.222.224.241/28, 192.168.208.0/22, 172.16.10.0/24, 192.168.3.0/24 to any out via em0
ipfw add 101 divert "nat port" all from any to 89.109.236.21 in via em0

ipfw add 120 allow all from 89.109.236.21 to any via em0
ipfw add 121 allow all from any to 89.109.236.21 via em0
ipfw add 122 allow all from 89.222.224.241 to any via em4
ipfw add 123 allow all from any to 89.222.224.241 via em4
ipfw add 124 allow all from 89.222.212.74 to any via em5
ipfw add 125 allow all from any to 89.222.212.74 via em5

далее раздача инета пользователям ну или allow from any to any


Содержание

Сообщения в этом обсуждении
"супер шлюз на Freebsd"
Отправлено Aquarius , 29-Сен-10 20:35 
Policy Based Routing
а это что за?:
ipfw add 100 divert nat all from 192.168.220.1/24, 89.222.224.241/28, 192.168.208.0/22, 172.16.10.0/24, 192.168.3.0/24 to any out via em0

P.S.
диопазон
как не пробовал
четал
зделать
не причем
с иметировать
IMHO, если такие проблемы с русским языком, ipfw+natd не осилить

P.P.S. IMHO, natd - прошлый век в буквальном смысле: ipfw имеет средства обойтись без него почти той же конфигурацией в подавляющем большинстве случаев, если не совсем во всех

ipfw add 100 divert nat all from 192.168.220.1/24, 89.222.224.241/28, 192.168.208.0/22, 172.16.10.0/24, 192.168.3.0/24 to any out via em0
ipfw add 101 divert nat all from any to 89.109.236.21 in via em0
обратите внимание на "divert nat":
nat, в данном случае, должно обозначать номер порта, в данном случае по имени
соответствие задается в /etc/services
так вот.
записи nat там нет, разве что, natd


"супер шлюз на Freebsd"
Отправлено pak , 29-Сен-10 20:54 
nat - ужо так скомпилилось особо думать было некогда. а если диверта нету не факт что без ната!
извяняйте шо не так, самя мы не местьные
пс. люди если кроме исправления ошибок нет ни каких своих предложений идите в ...
помощь же нужна уже запарился видите сами как колбасит.

"супер шлюз на Freebsd"
Отправлено pak , 29-Сен-10 22:25 
большое спасибо за просвещение, а то вот шлюз на 100 человек уже как два месяца работает, а я с ИСОй никак немогу разобратся, и проблема та вся оказывается в том что я на форуме D в NAT не написал... ну и тд.

"супер шлюз на Freebsd"
Отправлено Aquarius , 30-Сен-10 13:22 
> большое спасибо за просвещение, а то вот шлюз на 100 человек уже
> как два месяца работает, а я с ИСОй никак немогу разобратся,
> и проблема та вся оказывается в том что я на форуме
> D в NAT не написал... ну и тд.

а теперь объясни, откуда мы знаем, что ты именно на форуме эту ошибку допустил (natd -> nat), а не скопипастил свой конфиг?


"супер шлюз на Freebsd"
Отправлено pak , 30-Сен-10 14:39 
> а теперь объясни, откуда мы знаем, что ты именно на форуме эту
> ошибку допустил (natd -> nat), а не скопипастил свой конфиг?

ну наверно тогда бы я как тупой ламер спросил: - а какого хрена правило на диверт не создается?


"супер шлюз на Freebsd"
Отправлено Aquarius , 30-Сен-10 13:22 
> nat - ужо так скомпилилось особо думать было некогда. а если диверта
> нету не факт что без ната!
> извяняйте шо не так, самя мы не местьные
> пс. люди если кроме исправления ошибок нет ни каких своих предложений идите
> в ...
> помощь же нужна уже запарился видите сами как колбасит.

мы с удовольствием пойдем в ...
а ты сиди и мучайся сам


"супер шлюз на Freebsd"
Отправлено pak , 30-Сен-10 14:40 
> мы с удовольствием пойдем в ...
> а ты сиди и мучайся сам

вот я и мучАюсь! присоединяйтесь!


"супер шлюз на Freebsd"
Отправлено Trooper , 30-Сен-10 08:44 
>[оверквотинг удален]
> 172.16.10.0/24, 192.168.3.0/24 to any out via em0
> ipfw add 101 divert "nat port" all from any to 89.109.236.21 in
> via em0
> ipfw add 120 allow all from 89.109.236.21 to any via em0
> ipfw add 121 allow all from any to 89.109.236.21 via em0
> ipfw add 122 allow all from 89.222.224.241 to any via em4
> ipfw add 123 allow all from any to 89.222.224.241 via em4
> ipfw add 124 allow all from 89.222.212.74 to any via em5
> ipfw add 125 allow all from any to 89.222.212.74 via em5
> далее раздача инета пользователям ну или allow from any to any

Первое - упорно учить русский язык (разделы грамматика и орфография).
Второе - курить man ipfw до наступления полного просветления.
Третье - не забыть последней строкой добавить в конфиг
ipfw add 65535 allow all from any to any


"супер шлюз на Freebsd"
Отправлено pak , 30-Сен-10 14:43 
> Первое - упорно учить русский язык (разделы грамматика и орфография).
> Второе - курить man ipfw до наступления полного просветления.
> Третье - не забыть последней строкой добавить в конфиг
> ipfw add 65535 allow all from any to any

Спасибо пойду к начальнику скажу что я незнаю как настроить сервер потому что читать и писать не умею. (стебная тема получилась)


"супер шлюз на Freebsd"
Отправлено pak , 30-Сен-10 14:59 
Появилась следующая проблема: не работают pipe, пересобрал ядро с
options        IPFIREWALL_NAT
options        ROUTETABLES=4
после перезапуска перестали работать, все что попадает в pipe работает аналогично deny.

"супер шлюз на Freebsd"
Отправлено Aquarius , 30-Сен-10 15:03 
> Появилась следующая проблема: не работают pipe, пересобрал ядро с
> options  IPFIREWALL_NAT
> options  ROUTETABLES=4
> после перезапуска перестали работать, все что попадает в pipe работает аналогично deny.

а сами pipe описаны?


"супер шлюз на Freebsd"
Отправлено pak , 30-Сен-10 15:40 
> а сами pipe описаны?

23052 pipe 23052 ip from 192.168.210.221 to any
23053 pipe 23053 ip from any to 192.168.210.221

23052:  10.240 Mbit/s    0 ms burst 0
q154124 1000 KB 0 flows (1 buckets) sched 88588 weight 0 lmax 0 pri 0 droptail
sched 88588 type FIFO flags 0x0 0 buckets 0 active
23053:  10.240 Mbit/s    0 ms burst 0
q154125 1000 KB 0 flows (1 buckets) sched 88589 weight 0 lmax 0 pri 0 droptail
sched 88589 type FIFO flags 0x0 0 buckets 0 active


"супер шлюз на Freebsd"
Отправлено opt1k , 30-Сен-10 18:00 
вот мой конфиг. Ни на что не претендую, просто показываю как работает у меня. Конфиг взят lissyara.su
Перенаправляю rdp порт 3389. Конфиг без natd.
Не забыть добавить в rc.conf
firewall_nat_enable="YES"


#!/bin/sh

#tcp 22, 25, 993, 80
#udp 2000,

ipfwc="/sbin/ipfw -q"
ifext="rl0"
ifint="vr0"
ifvpn="tap0"
iplan="192.168.0.1"
ipwan="xx.xx.xx.xx"
ippan=""
netlan="192.168.0.0/16"

${ipfwc} -f flush

${ipfwc} add check-state

#${ipfwc} add nat 123 all from any to any
#${ipfwc} nat 123 config ip ${ipwan} log same_ports

${ipfwc} nat 1 config ip ${ipwan} log redirect_port tcp 192.168.0.2:3389 3389
${ipfwc} add nat 1 ip from ${netlan} to any out xmit ${ifext}
${ipfwc} add nat 1 ip from any to ${ipwan} in recv ${ifext}

#${ipfwc} redirect_port tcp 192.168.0.2:3389 3389

${ipfwc} add allow ip from any to any via lo0

${ipfwc} add deny ip from any to 127.0.0.0/8
${ipfwc} add deny ip from 127.0.0.0/8 to any

${ipfwc} add deny ip from any to 10.0.0.0/8 in via ${ifext}
${ipfwc} add deny ip from any to 172.16.0.0/12 in via ${ifext}
${ipfwc} add deny ip from any to 192.168.0.0/16 in via ${ifext}
${ipfwc} add deny ip from any to 0.0.0.0/8 in via ${ifext}
# рубим автоконфигуреную частную сеть
${ipfwc} add deny ip from any to 169.254.0.0/16 in via ${ifext}
# рубаем мультикастовые рассылки
${ipfwc} add deny ip from any to 240.0.0.0/4 in via ${ifext}
# рубим фрагментированные icmp
${ipfwc} add deny icmp from any to any frag
# рубим широковещательные icmp на внешнем интерфейсе
${ipfwc} add deny log icmp from any to 255.255.255.255 in via ${ifext}
${ipfwc} add deny log icmp from any to 255.255.255.255 out via ${ifext}

# разрешаем все установленные соединения (если они установились -
# значит по каким-то правилам они проходили.)
${ipfwc} add allow tcp from any to any established
# разрешаем весь исходящий траффик (серверу-то в инет можно? :))
${ipfwc} add allow ip from ${ipwan} to any out xmit ${ifext}


${ipfwc} add allow udp from any to any 53 via ${ifext}
${ipfwc} add allow udp from any to any 123 via ${ifext}
${ipfwc} add allow udp from any to any 2000 via ${ifext}
${ipfwc} add allow icmp from any to ${ipwan} 5060 via ${ifext}
${ipfwc} add allow tcp from any to ${ipwan} 80 via ${ifext}
${ipfwc} add allow tcp from any to ${ipwan} 25 via ${ifext}
${ipfwc} add allow tcp from any to ${ipwan} 22 via ${ifext}
${ipfwc} add allow tcp from any to ${ipwan} 993 via ${ifext}

${ipfwc} add allow tcp from any to any via ${ifint}
${ipfwc} add allow udp from any to any via ${ifint}
${ipfwc} add allow icmp from any to any via ${ifint}

${ipfwc} add allow tcp from any to any via ${ifvpn}
${ipfwc} add allow udp from any to any via ${ifvpn}
${ipfwc} add allow icmp from any to any via ${ifvpn}


${ipfwc} add deny ip from any to any


"супер шлюз на Freebsd"
Отправлено pak , 30-Сен-10 20:19 
ну принцип понятен но моих багов не решает, глюки можно сказать на пустом месте, фг знает может где "галочку" забыл поставить...

"супер шлюз на Freebsd"
Отправлено pak , 01-Окт-10 08:17 
В опциях ядра нашел следующее. Может ли netgraph тут быть помехой если в rc.conf не включен?

options        IPFIREWALL
options        IPFIREWALL_VERBOSE
options        IPFIREWALL_NAT
options        ROUTETABLES=4
options        IPDIVERT
options        DUMMYNET
options        IPFIREWALL_FORWARD
options        NETGRAPH
options        NETGRAPH_IPFW
options        NETGRAPH_NAT
options        NETGRAPH_NETFLOW
options        NETGRAPH_SPLIT
options        NETGRAPH_KSOCKET
options        NETGRAPH_SOCKET
options        NETGRAPH_BPF
options        NETGRAPH_IFACE
options        NETGRAPH_MPPC_ENCRYPTION
options        NETGRAPH_PPP
options        NETGRAPH_PPTPGRE
options        NETGRAPH_TCPMSS
options        NETGRAPH_VJC
options        NETGRAPH_TEE
options        NETGRAPH_CAR


"супер шлюз на Freebsd"
Отправлено pak , 01-Окт-10 16:18 
переконфигурил и посмотрел sysctl one_pass pipe вроде работает но редирект порта через nat не получается.

вот конфиг

ipfw add 50 add allow ip from any to any via lo0
ipfw add 51 allow all from any to 127.0.0.1/8
ipfw add 52 allow all from 127.0.0.1/8 to any

ipfw add 60 allow all from 192.168.208.0/22 to 192.168.208.0/22 via em1
ipfw add 61 allow all from 172.16.10.0/24 to 172.16.10.0/24 via em2
ipfw add 62 allow all from 192.168.3.0/24 to 192.168.3.0/24 via em3
ipfw add 63 allow all from 192.168.220.0/24 to 192.168.220.0/24 via em4

23278 pipe 23278 ip from 192.168.220.2 to any in - работает и получает интернет
23279 pipe 23279 ip from any to 192.168.220.2 out - работает и получает интернет

ipfw add 64000 divert 8668 all from 192.168.220.1/24, 192.168.208.0/22, 172.16.10.0/24, 192.168.3.0/24 to any out via em0
ipfw add 64001 allow all from 89.109.236.21 to any out via em0
ipfw add 64002 divert 8668 all from any to 89.109.236.21 in via em0
ipfw add 64003 allow all from any to 192.168.220.1/24, 192.168.208.0/22, 172.16.10.0/24, 192.168.3.0/24 in via em0
ipfw add 64004 allow all from any to 89.109.236.21 in via em0

запуск nat:
natd -n em0 -redirect_port 192.168.220.2:80 89.109.236.21:80


"супер шлюз на Freebsd"
Отправлено pak , 01-Окт-10 19:25 
поправка! redirect_port работает но только из внешней сети. ну жно чтобы редиректил и из внутренней

получается что обращение из локальной сети на 89.109.236.21 или диверт в локальную сеть неработает??? какиенибудь мануалы бы на эту тему...


"супер шлюз на Freebsd"
Отправлено reader , 01-Окт-10 20:17 
> поправка! redirect_port работает но только из внешней сети. ну жно чтобы редиректил
> и из внутренней
> получается что обращение из локальной сети на 89.109.236.21 или диверт в локальную
> сеть неработает??? какиенибудь мануалы бы на эту тему...

смотрите по какому пути ответ идет


"супер шлюз на Freebsd"
Отправлено pak , 01-Окт-10 20:52 
> смотрите по какому пути ответ идет

я так подозреваю что запрос до внешнего интерфейса недоходит и в правило диверта не попадает, нужно на внутреннем интерфейсе тоже нат с перенаправлением на правило from any to 89.109.236.21 вешать


"супер шлюз на Freebsd"
Отправлено reader , 01-Окт-10 21:02 
>> смотрите по какому пути ответ идет
> я так подозреваю что запрос до внешнего интерфейса недоходит и в правило
> диверта не попадает, нужно на внутреннем интерфейсе тоже нат с перенаправлением
> на правило from any to 89.109.236.21 вешать

нужно не подозревать, а запустить tcpdump и посмотреть что приходит и уходит ли


"супер шлюз на Freebsd"
Отправлено pak , 01-Окт-10 22:05 
> нужно не подозревать, а запустить tcpdump и посмотреть что приходит и уходит
> ли

ничего!


"супер шлюз на Freebsd"
Отправлено reader , 01-Окт-10 22:34 
>> нужно не подозревать, а запустить tcpdump и посмотреть что приходит и уходит
>> ли
> ничего!

что ничего? и входящих нет? на каком интерфейсе смотрите?

запускайте на интерфейсе который смотрит на клиента и на интерфейсе который смотрит на машину куда пробрасываете. делайте обращение с клиента и смотрите что где будет


"супер шлюз на Freebsd"
Отправлено pak , 01-Окт-10 23:04 
> что ничего? и входящих нет? на каком интерфейсе смотрите?
> запускайте на интерфейсе который смотрит на клиента и на интерфейсе который смотрит
> на машину куда пробрасываете. делайте обращение с клиента и смотрите что
> где будет

Ну в принципе так и делаю много всего проходит куча пользователей ломится, как только пытаюсь отсечь по Ip ничего. Я так понимаю Ip для интерфейсов прописываются в нутри операционной (грубо говоря "lo0"), а не на интерфейсе, и поскольку действие правил рассматривается как граница между внешним адресным пространствои и ОС, то пакеты направленные на IP адрес другого интерфейса (em0) до него не доходят, потому как достигают цели уже на своем интерфейсе (em4) а следовательно и не попадают в правило другого интерфейса (em0).

для этого необходимо
ipfw add 200 divert 8668 all from 192.168.208.0/22 to 89.109.236.21 in via em1
ipfw add 201 divert 8668 all from 172.16.10.0/24 to 89.109.236.21 in via em2
ipfw add 202 divert 8668 all from 192.168.3.0/24 to 89.109.236.21 in via em3
ipfw add 203 divert 8668 all from 192.168.220.0/24 to 89.109.236.21 via em4
ipfw add 204 divert 8668 all from 192.168.220.2 to 192.168.208.0/22,172.16.10.0/24,192.168.3.0/24,192.168.220.0/24 in via em4


"супер шлюз на Freebsd"
Отправлено reader , 01-Окт-10 23:17 
>[оверквотинг удален]
>> на машину куда пробрасываете. делайте обращение с клиента и смотрите что
>> где будет
> Ну в принципе так и делаю много всего проходит куча пользователей ломится,
> как только пытаюсь отсечь по Ip ничего. Я так понимаю Ip
> для интерфейсов прописываются в нутри операционной (грубо говоря "lo0"), а не
> на интерфейсе, и поскольку действие правил рассматривается как граница между внешним
> адресным пространствои и ОС, то пакеты направленные на IP адрес другого
> интерфейса (em0) до него не доходят, потому как достигают цели уже
> на своем интерфейсе (em4) а следовательно и не попадают в правило
> другого интерфейса (em0).

пакет адресованный em0, но пришедший через em4 вы на em0 не увидите попав в ядро он будет там и обработан, но и правила работают не в сетевой карте.

если вы не видите даже входящих на внутреннем интерфейсе, то сначала разберитесь куда они ушли.


"супер шлюз на Freebsd"
Отправлено pak , 01-Окт-10 23:25 
так и быть завтро попробую


"супер шлюз на Freebsd"
Отправлено pak , 02-Окт-10 08:19 
добавил вот такие два правила и на одном интерфейсе все зароботало

ipfw add 200 divert 8668 all from 192.168.208.0/22 to 89.109.236.21 in via em1
ipfw add 201 divert 8668 all from 192.168.220.2 to 192.168.208.0/22 out via em1

замечу что второе правило на em4 не работает как in!
ipfw add 201 divert 8668 all from 192.168.220.2 to 192.168.208.0/22 in via em4


"супер шлюз на Freebsd"
Отправлено Aquarius , 02-Окт-10 13:12 
> поправка! redirect_port работает но только из внешней сети. ну жно чтобы редиректил
> и из внутренней
> получается что обращение из локальной сети на 89.109.236.21 или диверт в локальную
> сеть неработает??? какиенибудь мануалы бы на эту тему...

в конфиге или параметрах командной строки natd что?


"супер шлюз на Freebsd"
Отправлено pak , 02-Окт-10 19:05 
> в конфиге или параметрах командной строки natd что?

у меня написанно для командной строки, так же и в скрипте можно запускать если хочешь, но я что то не вижу разници, зависит от того как ты хочешь это использовать я думаю! В rc.d у меня тоже самое написанно и в конфигурации для ядерного nat теже самые циферки прописываю, можно еще эти параметры в *.conf прописать. если тебя синтаксис интересует то я думаю это так пишется:

rc.d:
natd_enable="YES"
natd_flags="-n em0 -f /etc/nat.conf"
(redirect_port 192.168.220.2:80 89.109.236.21:80 > /etc/nat.conf)

или

natd_enable="YES"
natd_flags="-n em0 -redirect_port 192.168.220.2:80 89.109.236.21:80"


"супер шлюз на Freebsd"
Отправлено Aquarius , 03-Окт-10 20:05 
>[оверквотинг удален]
> у меня тоже самое написанно и в конфигурации для ядерного nat
> теже самые циферки прописываю, можно еще эти параметры в *.conf прописать.
> если тебя синтаксис интересует то я думаю это так пишется:
> rc.d:
> natd_enable="YES"
> natd_flags="-n em0 -f /etc/nat.conf"
> (redirect_port 192.168.220.2:80 89.109.236.21:80 > /etc/nat.conf)
> или
> natd_enable="YES"
> natd_flags="-n em0 -redirect_port 192.168.220.2:80 89.109.236.21:80"

я не для себя спросил, сам уже не помню, когда последний раз natd запускал, с ipfw+natd перешел на ipfilter, потом вернулся на ipfw+kernel nat


"супер шлюз на Freebsd"
Отправлено pak , 08-Окт-10 21:53 
> я не для себя спросил, сам уже не помню, когда последний раз
> natd запускал, с ipfw+natd перешел на ipfilter, потом вернулся на ipfw+kernel
> nat

теперь тоже на ipfw+kernel nat


"супер шлюз на Freebsd"
Отправлено pak , 08-Окт-10 21:58 
Для более удобной и быстрой настройки сети хотелосьбы не бегать по пользователям при введении новых, а также устранении некорректных настроек сети. Так вот отсюда вопрос: есть ли кроме DHCP возможность изменять удаленно настройки не только ip шлюз dns но и настройки прокси в браузерах и прочих приложениях? есть ли что либо подобное и как это называется?

"супер шлюз на Freebsd"
Отправлено pak , 11-Окт-10 22:53 
на двух внешних интерфейсах 10.10.10.10 и 20.20.20.20 стоит NAT с редиректом портов на внутренний ip 192.168.10.3 когда захожу на первый внешний интерфейс редирект работает нормально когда захожу на второй ответы приходят через первый

ipfw nat 123 config if em0 redirect_port tcp 192.168.10.3:80 10.10.10.10:80
ipfw nat 456 config if em1 redirect_port tcp 192.168.10.3:80 20.20.20.20:80

ipfw add 2000 allow ip from 192.168.10.0/24 to any in
ipfw add 2001 allow ip from any to 192.168.10.0/24 out

ipfw add 64000 nat 123 ip from 192.168.10.0/24 to any out via em0
ipfw add 64001 allow ip from 10.10.10.10 to any out via em0
ipfw add 64002 nat 123 ip from any to 10.10.10.10 in via em0
ipfw add 64003 allow ip from any to 192.168.10.0/24 in via em0
ipfw add 64004 allow ip from any to 10.10.10.10 in via em0

ipfw add 64010 nat 456 ip from 192.168.10.0/24 to any out via em1
ipfw add 64011 allow ip from 20.20.20.20 to any out via em1
ipfw add 64012 nat 456 ip from any to 20.20.20.20 in via em1
ipfw add 64013 allow ip from any to 192.168.10.0/24 in via em1
ipfw add 64014 allow ip from any to 20.20.20.20 in via em1

я так понимаю что это происходит из за 64000 правила, как это обойти?


"супер шлюз на Freebsd"
Отправлено pak , 12-Окт-10 01:05 
зделал через setfib defaultroute, но работает только на один порт.

ipfw add 13 setfib 1 ip from 192.168.10.3 to any - для второго

ipfw add 19 setfib 0 ip from 192.168.10.3 to any - для первого

как сделать что бы ответы на пакеты идущие из второго порта попадали на setfib 1, а из первого на setfib 0