проблема с setfib на 2 NAT, не могу настроить :(

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
QweЯty
лейтенант
Сообщения: 795
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

проблема с setfib на 2 NAT, не могу настроить :(

Непрочитанное сообщение QweЯty » 2010-11-21 4:52:33

поставил:
radist04ka# uname -rpsi
FreeBSD 8.1-STABLE-201011 i386 KERN

с опциями:

Код: Выделить всё

include GENERIC
options         IPFIREWALL
options         IPFIREWALL_FORWARD
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=50
options         IPFIREWALL_NAT
options         IPFILTER
options         IPFILTER_LOG
options         DUMMYNET
options         IPDIVERT
options         LIBALIAS
options         ROUTETABLES=4
options         HZ="1000"
options         IPSTEALTH

options         SC_DISABLE_REBOOT
options         PANIC_REBOOT_WAIT_TIME=25
options         SUIDDIR

options         LIBICONV
options         LIBMCHAIN
options         CD9660_ICONV
options         MSDOSFS_ICONV
options         UDF
options         UDF_ICONV

options         NETGRAPH
options         NETGRAPH_NAT
options         NETGRAPH_IPFW
options         NETGRAPH_SOCKET
options         NETGRAPH_KSOCKET
options         NETGRAPH_NETFLOW
options         NETGRAPH_SPLIT
options         NETGRAPH_CAR
options         NETGRAPH_PPPOE
options         NETGRAPH_PPP
options         NETGRAPH_ETHER
options         NETGRAPH_TEE
options         NETGRAPH_BPF
options         NETGRAPH_IFACE
options         NETGRAPH_PPTPGRE
options         NETGRAPH_TCPMSS
options         NETGRAPH_VJC
options         NETGRAPH_ONE2MANY
options         NETGRAPH_RFC1490
options         NETGRAPH_TTY
options         NETGRAPH_UI
options         NETGRAPH_MPPC_ENCRYPTION
options         NETGRAPH_MPPC_COMPRESSION
options         NETGRAPH_L2TP
c поправленными конфигами, касательно net.inet.ip.fw.one_pass:

Код: Выделить всё

radist04ka# cat /sys/netinet/ipfw/ip_fw_pfil.c | grep -A 3 NAT:
        case IP_FW_NAT:
                if ( V_fw_one_pass )
                        break;
        case IP_FW_REASS:
на машине сетевые:

Код: Выделить всё

dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=80008<VLAN_MTU,LINKSTATE>
        ether 00:00:e8:7b:02:eb
        inet 10.10.241.241 netmask 0xffffff80 broadcast 10.10.241.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
        ether 00:02:44:9c:58:2f
        inet 192.168.50.241 netmask 0xffffff00 broadcast 192.168.50.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
stge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
        ether 00:1d:60:5c:c7:c3
        inet 192.168.1.241 netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=2009<RXCSUM,VLAN_MTU,WOL_MAGIC>
        ether 00:07:e9:5f:eb:45
        inet 192.168.60.241 netmask 0xffffff00 broadcast 192.168.60.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
скрипт для таблицы роутов:

Код: Выделить всё

radist# cat /usr/local/etc/rc.d/route.sh
#!/bin/sh

rtcmd=/sbin/route
ipdef="10.10.241.129"

# default shl

${rtcmd} change default 192.168.1.1

# all net

${rtcmd} add 10/8 ${ipdef}
${rtcmd} add 195.208/16 ${ipdef}

# stat net

${rtcmd} add 10.0.0.3 ${ipdef}
${rtcmd} add 10.10.214.155 ${ipdef}
${rtcmd} add 10.10.214.28 ${ipdef}
${rtcmd} add 10.0.5.45 ${ipdef}
${rtcmd} add 10.0.5.41 ${ipdef}
${rtcmd} add 10.0.3.9 ${ipdef}
конфиг файера был такой:

Код: Выделить всё

radist04ka# cat /etc/rc.firewall
#!/bin/sh ~
fw=/sbin/ipfw

RadIf="dc0"
RadIP="10.10.241.241"
RadLan="10.0.0.0/8"

LocIf="fxp0"
LocIP="192.168.60.241"
LocLan="192.168.60.0/24"

MyIf="re0"
MyIP="192.168.50.241"
MyLan="192.168.50.0/24"

MainWLan="192.168.1.0/24"
MainWIf="stge0"
MainWIP="192.168.1.241"

${fw} -f flush
${fw} -f pipe flush

${fw} add 01 deny ip from any to any frag
${fw} add 02 allow ip from any to any via lo0
${fw} add 03 deny ip from any to any not verrevpath in

${fw} add 130 allow ip from any to ${MyLan} via ${MyIf}
${fw} add 140 allow ip from ${MyLan} to any via ${MyIf}

${fw} add 150 allow ip from any to ${LocLan} via ${LocIf}
${fw} add 160 allow ip from ${LocLan} to any via ${LocIf}

${fw} add 170 allow ip from any to ${MainWLan} via ${MainWIf}
${fw} add 180 allow ip from ${MainWLan} to any via ${MainWIf}

${fw} add 310 deny ip from ${RadLan} to any via ${MainWIf}, ${LocIf}
${fw} add 320 deny ip from any to ${RadLan} via ${MainWIf}, ${LocIf}

${fw} add 330 allow ip from ${RadLan} to any via ${RadIf}
${fw} add 340 allow ip from any to ${RadLan} via ${RadIf}

${fw} add setfib 1 all from ${MainWLan} to any

${fw} add 450 nat 1 ip from any to any via ${RadIf}
${fw} nat 1 config ip ${RadIP}

${fw} add 550 nat 2 ip from any to any via ${MainWIf}
${fw} nat 2 config ip ${MainWIP}

весь прикол в том...
что даже не пинговался 10.10.241.241 (что по идее есть 127.0.0.1 для самой машины с bsd)

только тот интерфейс к которому был подключен:
в сети 192.168.50.0/24 пинговался только 192.168.50.241 и никакой другой больше; ни 192.168.60.241, ни 10.10.241.241

тоже самое в 192.168.1.0/24 и 192.168.60.0/24 и 10.10.241.241

на самой машине все работало нармально, пинговалось все и в dc0 и в stge0 и в re0

что то упорно у меня не получается 2 ната поднять... щаз вообще ни один не работает....

p.s. а что делает options IPSTEALTH а то советуют, а не говорят для чего....

p.p.s. чего то я не так сделал :(
теперь NAT'ы даже через ipnat не работают:

Код: Выделить всё

cat /etc/ipnat.rules
map stge0 192.168.0.0/16 -> 192.168.1.241/32
map stge0 192.168.0.0/16 -> 10.10.241.241/32
rc.conf:

Код: Выделить всё

radist04ka# cat /etc/rc.conf | grep "ipnat"
ipnat_enable="YES"
ipnat_program="/sbin/ipnat"
ipnat_rules="/etc/ipnat.rules"
radist04ka# cat /etc/rc.conf | grep fire
firewall_enable="YES"
firewall_quiet="YES"
firewall_logging="YES"
firewall_script="/etc/rc.firewall"
firewall_nat_enable="YES"
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
QweЯty
лейтенант
Сообщения: 795
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: проблема с setfib на 2 NAT, не могу настроить :(

Непрочитанное сообщение QweЯty » 2010-11-21 5:21:43

p.s. хотел сделать 2 NAT'а на ipfw:
один на 10.10.241.241
второй на 192.168.1.1
сейчас один на ipfw nat второй на ipnat
ipnat не подходит по некоторым причинам, а ipfw на 2 NAT'a не могу сделать никак:(

в предыдущем посте исправлено на

cat /etc/ipnat.rules

Код: Выделить всё

map stge0 192.168.0.0/16 -> 192.168.1.241/32
map dc0 192.168.0.0/16 -> 10.10.241.241/32
но все равно даже ipnat не пашет...
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

Аватара пользователя
QweЯty
лейтенант
Сообщения: 795
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: проблема с setfib на 2 NAT, не могу настроить :(

Непрочитанное сообщение QweЯty » 2010-11-21 5:30:51

делал по аналогии с рабочей лошадки:

Код: Выделить всё

radist# ipfw list
00010 deny ip from any to any frag
00020 allow ip from any to any via lo0
00030 deny ip from any to any not verrevpath in
00130 allow ip from any to 192.168.50.0/24 via re0
00140 allow ip from 192.168.50.0/24 to any via re0
00150 allow ip from any to 192.168.60.0/24 via fxp0
00160 allow ip from 192.168.60.0/24 to any via fxp0
00170 allow ip from any to 192.168.1.0/24 via stge0
00180 allow ip from 192.168.1.0/24 to any via stge0
00221 deny ip from 10.0.0.0/8 to any via stge0
00222 deny ip from any to 10.0.0.0/8 via stge0
00230 pipe 2 ip from 192.168.60.0/24 to any via dc0
00240 pipe 4 ip from 192.168.40.0/24 to any via dc0
00250 nat 1 ip from any to any via dc0
00260 pipe 3 ip from any to 192.168.40.0/24 via dc0
00270 pipe 1 ip from any to 192.168.60.0/24 via dc0
00300 allow ip from any to 10.10.241.241 in via dc0
00310 allow ip from 10.10.241.241 to any out via dc0
00320 allow ip from any to 192.168.50.0/24 in via dc0
00330 allow ip from 192.168.50.0/24 to any out via dc0
00340 allow ip from any to 192.168.60.0/24 in via dc0
00350 allow ip from 192.168.60.0/24 to any out via dc0
65534 allow ip from any to any
65535 deny ip from any to any
p.p.p.s. а почему редактировать сообщения можно всего 2 раза?
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

Аватара пользователя
QweЯty
лейтенант
Сообщения: 795
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: проблема с setfib на 2 NAT, не могу настроить :(

Непрочитанное сообщение QweЯty » 2010-11-21 9:16:41

Код: Выделить всё

case IP_FW_NAT:
		if (V_fw_one_pass)
			break;
		goto again;
подправил код, пропустил goto again; в коде...
как скомпилится проверю на работоспособность...
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: проблема с setfib на 2 NAT, не могу настроить :(

Непрочитанное сообщение terminus » 2010-11-21 13:33:30

тут готового решения нет?
http://www.lissyara.su/articles/freebsd ... /ipfw_nat/

вам для чего два ната нужны? балансировка нагрузки между подключениями или что?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
QweЯty
лейтенант
Сообщения: 795
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: проблема с setfib на 2 NAT, не могу настроить :(

Непрочитанное сообщение QweЯty » 2010-11-21 20:49:53

есть "внешка" он же интернет... stge0 192.168.1.241/24 (adsl модем)
есть локалка_1 иже dc0 10/8
есть локалка_2 и локалка_3 re0 и fxp0 192.168.50/60.241

вот хотел сделать 2 ната чтобы прокинуть инет и локалку_1 во все остальное....
чтобы из локалка_2 и локалка_3 можно было выходить и в инет и в локалку_1
как по другому написать, не знаю...
тут готового решения нет?
читал, не помогло, где то ошибся наверное:

нам получается подходит Пример 5
тока не много не то, там сказано:
Есть два подключения к двум независимым провайдерам и одна локальная сеть. На рутере имеется три сетевых адаптера два из которых подключены провайдерам, а третий к своей локальной сети.
...
Задача: обеспечить выход в интернет локальной сети через обоих провайдеров используя балансировку трафика между подключениями. Все это через нат и используя шейпер Dummynet обеспечить честное распределение пропускной способности между клиентами в локальной сети.
у меня по другому:(постараюсь так же описать как и выше, и сам пойму что мне надо:) а там может и решение придет )

есть 2 подключения к 2 провайдерам и две локальных сети. имеется 4 сетевых карты в рутере, из которых 2 идут к провайдерам и 2 к локальным сетям.

задача: эээ.... обеспечить выход обоих локальных сетей черех обоих провайдеров...


имеем:
"пров" один: dc0 10.10.241.241
пров второй: stge0 192.168.1.241
локальная сеть 1: fxp0 192.168.60.241
локальная сеть 2: re0 192.168.50.241
options ROUTETABLES=5 (промахнулся, 5 вместо 2, не стал исправлять, покрывает с 200% резервом :) )

etc/rc.conf

Код: Выделить всё

gateway_enable="YES"
ifconfig_re0="inet 192.168.50.241 netmask 255.255.255.0 -rxcsum -txcsum up"
ifconfig_dc0="inet 10.10.241.241 netmask 255.255.255.128 -rxcsum -txcsum up"
ifconfig_fxp0="inet 192.168.60.241 netmask 255.255.255.0 -rxcsum -txcsum up"
ifconfig_stge0="inet 192.168.1.241 netmask 255.255.255.0 -rxcsum -txcsum up"

defaultrouter="192.168.1.1"

setfib1_enable="YES"
setfib1_defaultroute="10.10.241.241"

firewall_enable="YES"
firewall_quiet="YES"
firewall_logging="YES"
firewall_script="/etc/rc.firewall"
firewall_nat_enable="YES"
dummynet_enable="YES"
ipnat_enable="YES"
ipnat_program="/sbin/ipnat"
ipnat_rules="/etc/ipnat.rules"
etc/sysctl.conf

Код: Выделить всё

net.inet.ip.fw.one_pass=0
/usr/local/etc/rc.d/route.sh

Код: Выделить всё

#!/bin/sh
rtcmd=/sbin/route
ipdef="10.10.241.129"
${rtcmd} change default 192.168.1.1
${rtcmd} add 10/8 ${ipdef}
${rtcmd} add 195.208/16 ${ipdef}
${rtcmd} add 10.0.0.3 ${ipdef}
${rtcmd} add 10.10.214.155 ${ipdef}
${rtcmd} add 10.10.214.28 ${ipdef}
${rtcmd} add 10.0.5.45 ${ipdef}
${rtcmd} add 10.0.5.41 ${ipdef}
${rtcmd} add 10.0.3.9 ${ipdef}
usr/local/etc/rc.d/setfib1

Код: Выделить всё

#!/bin/sh
# PROVIDE: SETFIB1
# REQUIRE: NETWORKING
# BEFORE: DAEMON
#
# Add the following lines to /etc/rc.conf to enable setfib -1 at startup
# setfib1 (bool): Set to "NO" by default.
#                Set it to "YES" to enable setfib1
# setfib1_defaultroute (str): Set to "" by default
#       Set it to ip address of default gateway for use in fib 1

. /etc/rc.subr

name="setfib1"
rcvar=`set_rcvar`

load_rc_config $name

[ -z "$setfib1_enable" ] && setfib1_enable="NO"
[ -z "$setfib1_defaultroute" ] && setfib1_defaultroute=""

start_cmd="${name}_start"
stop_cmd="${name}_stop"

setfib1_start()
{
if [ ${setfib1_defaultroute} ]
then
setfib 1 route delete default
setfib 1 route add default ${setfib1_defaultroute}
else
echo "Can not set default route for fib 1!"
fi
}

setfib1_stop()
{
setfib 1 route delete default
}
run_rc_command "$1"
rc.firewall

Код: Выделить всё

#!/bin/sh ~
fw=/sbin/ipfw

RadIf="dc0"
RadIP="10.10.241.241"
RadLan="10.0.0.0/8"

LocIf="fxp0"
LocIP="192.168.60.241"
LocLan="192.168.60.0/24"

MyIf="re0"
MyIP="192.168.50.241"
MyLan="192.168.50.0/24"

MainWLan="192.168.1.0/24"
MainWIf="stge0"
MainWIP="192.168.1.241"

${fw} -f flush
${fw} -f pipe flush

${fw} add 01 deny ip from any to any frag
${fw} add 02 allow ip from any to any via lo0
${fw} add 03 deny ip from any to any not verrevpath in

# разрешаем ходить пакетам внутри интерфейсов
${fw} add 130 allow ip from any to ${MyLan} via ${MyIf}
${fw} add 140 allow ip from ${MyLan} to any via ${MyIf}

${fw} add 150 allow ip from any to ${LocLan} via ${LocIf}
${fw} add 160 allow ip from ${LocLan} to any via ${LocIf}

${fw} add 170 allow ip from any to ${MainWLan} via ${MainWIf}
${fw} add 180 allow ip from ${MainWLan} to any via ${MainWIf}

${fw} add 310 deny ip from ${RadLan} to any via ${MainWIf}, ${LocIf}
${fw} add 320 deny ip from any to ${RadLan} via ${MainWIf}, ${LocIf}

${fw} add 330 allow ip from ${RadLan} to any via ${RadIf}
${fw} add 340 allow ip from any to ${RadLan} via ${RadIf}
#################
# а что дальше я уже запутался, потому что setfib описан для одной локальной сети, а у меня 2.
#################
# не могу понть что надо писать вместо :
add 1010 prob 0.5 skipto 1060 ip from any to any in recv fxp0

add 1040 setfib 0 ip from any to any via fxp0 keep-state
add 1050 allow ip from any to any via fxp0

add 1060 setfib 1 ip from any to any via fxp0 keep-state
add 1070 allow ip from any to any via fxp0
###########
# а тут как то так будет:
${fw} add 250 nat 1 ip from any to any via ${RadIf}
${fw} nat 1 config ip ${RadIP}

${fw} add 450 nat 1 ip from any to any via ${MainWIf}
${fw} nat 1 config ip ${MainWIP}
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: проблема с setfib на 2 NAT, не могу настроить :(

Непрочитанное сообщение terminus » 2010-11-22 10:56:26

rc.conf

Код: Выделить всё

gateway_enable="YES"
ifconfig_re0="inet 192.168.50.241 netmask 255.255.255.0  up"
ifconfig_dc0="inet 10.10.241.241 netmask 255.255.255.128 up"
ifconfig_fxp0="inet 192.168.60.241 netmask 255.255.255.0 up"
ifconfig_stge0="inet 192.168.1.241 netmask 255.255.255.0  up"

defaultrouter="192.168.1.1"

setfib1_enable="YES"
setfib1_defaultroute="10.10.241.241"

firewall_enable="YES"
firewall_quiet="YES"
firewall_logging="YES"
firewall_script="/etc/rc.firewall"
firewall_nat_enable="YES"
dummynet_enable="YES"
Какой гейтвей у второго провайдера? Почему в setfib1_defaultroute="10.10.241.241" прописан IP самого dc0 10.10.241.241?



/usr/local/etc/rc.d/route.sh

Код: Выделить всё

#!/bin/sh
rtcmd=/sbin/route
ipdef="10.10.241.129"
${rtcmd} change default 192.168.1.1
${rtcmd} add 10/8 ${ipdef}
${rtcmd} add 195.208/16 ${ipdef}
${rtcmd} add 10.0.0.3 ${ipdef}
${rtcmd} add 10.10.214.155 ${ipdef}
${rtcmd} add 10.10.214.28 ${ipdef}
${rtcmd} add 10.0.5.45 ${ipdef}
${rtcmd} add 10.0.5.41 ${ipdef}
${rtcmd} add 10.0.3.9 ${ipdef}
ЗАЧЕМ ЭТО?


rc.firewall

Код: Выделить всё

#!/bin/sh
fw=/sbin/ipfw

#===
MainWLan="192.168.1.0/24"
MainWIf="stge0"
MainWIP="192.168.1.241"

RadLan="10.0.0.0/8"
RadIf="dc0"
RadIP="10.10.241.241"
#===

#===
LocIf="fxp0"
LocIP="192.168.60.241"
LocLan="192.168.60.0/24"

MyIf="re0"
MyIP="192.168.50.241"
MyLan="192.168.50.0/24"
#===


${fw} -f flush

${fw} add 100 allow ip from any to any via lo0
${fw} add 200 reass ip from any to any frag

${fw} add 300 prob 0.5 skipto 350 ip from any to any in recv ${MyIf}
${fw} add 301 prob 0.5 skipto 450 ip from any to any in recv ${LocIf}

${fw} add 310 setfib 0 ip from any to any via ${MyIf} keep-state
${fw} add 320 allow ip from any to any via ${MyIf}
${fw} add 350 setfib 1 ip from any to any via ${MyIf} keep-state
${fw} add 400 allow ip from any to any via ${MyIf}

${fw} add 410 setfib 0 ip from any to any via ${LocIf} keep-state
${fw} add 420 allow ip from any to any via ${LocIf}
${fw} add 450 setfib 0 ip from any to any via ${LocIf} keep-state
${fw} add 500 allow ip from any to any via ${LocIf}

${fw} add 600 deny ip from any to ${LocLan} in recv ${RadIf}
${fw} add 601 deny ip from any to ${MyLan} in recv ${RadIf}
${fw} add 602 deny ip from any to ${LocLan} in recv ${MainWIf}
${fw} add 603 deny ip from any to ${MyLan} in recv ${MainWIf}
${fw} add 604 deny ip from ${LocLan} to any in recv ${RadIf}
${fw} add 605 deny ip from ${MyLan} to any in recv ${RadIf}
${fw} add 606 deny ip from ${LocLan} to any in recv ${MainWIf}
${fw} add 607 deny ip from ${MyLan} to any in recv ${MainWIf}

${fw} nat 1 config log ip ${RadIP} same_ports reset deny_in
${fw} add 1000 nat 1 ip from any to any via ${RadIf}
${fw} add 1010 allow ip from any to any via ${RadIf}

${fw} nat 2 config log ip ${MainWIP} same_ports reset deny_in
${fw} add 2000 nat 2 ip from any to any via ${MainWIf}
${fw} add 2010 allow ip from any to any via ${MainWIf}
Так должен рабьоать. При условии, что разберетесь с тем что у вас в /usr/local/etc/rc.d/route.sh зачем-то прописано...
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
QweЯty
лейтенант
Сообщения: 795
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: проблема с setfib на 2 NAT, не могу настроить :(

Непрочитанное сообщение QweЯty » 2010-11-22 17:51:55

простите, опечатался,

setfib1_defaultroute="10.10.241.129"
terminus писал(а):/usr/local/etc/rc.d/route.sh

Код: Выделить всё

#!/bin/sh
rtcmd=/sbin/route
ipdef="10.10.241.129"
${rtcmd} change default 192.168.1.1
${rtcmd} add 10/8 ${ipdef}
${rtcmd} add 195.208/16 ${ipdef}
ЗАЧЕМ ЭТО?
ээээ, как зачем?
для перенаправления трафика идущего с/на 10/8. т.к. у нас же defaultrouter="192.168.1.1"
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

Аватара пользователя
QweЯty
лейтенант
Сообщения: 795
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: проблема с setfib на 2 NAT, не могу настроить :(

Непрочитанное сообщение QweЯty » 2010-11-23 18:14:17

не знаю в чем прикол, но вот такая конфигурация заработала(раньше упорно работать не хотела :( а щаз нормально)

Код: Выделить всё

#!/bin/sh ~
fw=/sbin/ipfw

RadIf="dc0"
RadIP="10.10.241.241"
RadLan="10.0.0.0/8"

LocIf="fxp0"
LocIP="192.168.60.241"
LocLan="192.168.60.0/24"

MyIf="re0"
MyIP="192.168.50.241"
MyLan="192.168.50.0/24"

MainWLan="192.168.1.0/24"
MainWIf="stge0"
MainWIP="192.168.1.241"

${fw} -f flush
${fw} -f pipe flush

${fw} nat 1 config ip ${RadIP}
${fw} nat 2 config ip ${MainWIP}

${fw} add  nat 1 ip from any to any via ${RadIf}
${fw} add  nat 2 ip from any to any via ${MainWIf}

${fw} add allow all from any to any
тока пока еще не знаю как ограничить pipe'ми
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

Аватара пользователя
Lazy caT
мл. сержант
Сообщения: 98
Зарегистрирован: 2008-09-11 9:59:17
Откуда: Местные мы...
Контактная информация:

Re: проблема с setfib на 2 NAT, не могу настроить :(

Непрочитанное сообщение Lazy caT » 2010-11-30 14:15:21

Пара вопросов уважаемому terminus...
... и дополнение :) ...
Сначала вопрос...
1й. Как заставить демон выходить определенным маршрутом, через определенный интерфейс?

Настраивал ipfw приблизительно так же как и в статье пример 5, только без "труб" и "очередей".
Есть stunnel, который коннектится к внешнему серваку на порт 2254. Есть два fib'а 0 и 1,
через 1й fib должен выходить stunnel, 0й fib по умолчанию...
Пытался прописать в конфиг ipfw:

Код: Выделить всё

${fwcmd} 010 setfib 1 ip from me to any 2254 out
и даже:

Код: Выделить всё

${fwcmd} 010 setfib 1 ip from me to any 2254 out xmit $WAN2_if
в логах stunnel одно и то же... он пытается приконнектится к удаленному серваку используя шлюз по умолчанию...

... Вопрос решился просто, перезапустил stunnel так: setfib 1 /usr/local/etc/rc.d/stunnel restart
Может решение не элегантное, но действенное, после этого, stunnel начал работать через fib 1, как и должен был...

2й. Как можно организовать запуск stunnel (и не только), с присвоением ему первой (не 0й) таблицы маршрутизации, при старте системы?

И дополнение...
В случае если сервер является ещё и VPN сервером, почтовиком и т.д., и требует множественные подключения извне,
Убираем из строк конфигурации nat'а параметр deny_in и после запрещающих правил (пример 5 из статьи)

Код: Выделить всё

...
add 1050 deny ip from any to 192.168.0.0/16 in recv em0
add 1060 deny ip from 192.168.0.0/16 to any in recv em0
add 1070 deny ip from any to 172.16.0.0/12 in recv em0
...
добавляем два правила:

Код: Выделить всё

${fwcmd} 3000 setfib 0 ip from any to me in via $WAN1_if
${fwcmd} 3050 setfib 1 ip from any to me in via $WAN2_if
Т.е. входящему пакету, будет на значатся сразу таблица маршрутизации в зависимости от интерфейса через который он пришел.

Аватара пользователя
Lazy caT
мл. сержант
Сообщения: 98
Зарегистрирован: 2008-09-11 9:59:17
Откуда: Местные мы...
Контактная информация:

Re: проблема с setfib на 2 NAT, не могу настроить :(

Непрочитанное сообщение Lazy caT » 2010-11-30 14:41:01

второй вопрос
Lazy caT писал(а): ...
2й. Как можно организовать запуск stunnel (и не только), с присвоением ему первой (не 0й) таблицы маршрутизации, при старте системы?
...
вроде разрешился, правкой скрипта запуска самого stunnel

Код: Выделить всё

. /etc/rc.subr

name="stunnel"
rcvar=`set_rcvar`

load_rc_config $name

: ${stunnel_enable="NO"}
: ${stunnel_config="/usr/local/etc/stunnel/${name}.conf"}
: ${stunnel_pidfile="/var/run/${name}.pid"}

command="setfib 1 /usr/local/bin/stunnel"
command_args=${stunnel_config}
pidfile=${stunnel_pidfile}

required_files="${stunnel_config}"

run_rc_command "$1"
... добавлением в строку command, setfib 1... только желателен запуск stunnel уже после комманды setfib1_enable="YES" в rc.conf

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: проблема с setfib на 2 NAT, не могу настроить :(

Непрочитанное сообщение terminus » 2010-11-30 21:58:50

1й. Как заставить демон выходить определенным маршрутом, через определенный интерфейс?

Настраивал ipfw приблизительно так же как и в статье пример 5, только без "труб" и "очередей".
Есть stunnel, который коннектится к внешнему серваку на порт 2254. Есть два fib'а 0 и 1,
через 1й fib должен выходить stunnel, 0й fib по умолчанию...
К сожалению ipfw setfib не действует на проходе OUT. Рулить трафиком инициированным от самого сервера или демонов - нельзя через setfib. Демону можно навязать фиб или запуская его из rc.d скрипта с параметром setfib, или поместив в джайл, а уже джайлу назначив фиб.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.