pf+nat не работает

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
vastni
рядовой
Сообщения: 11
Зарегистрирован: 2006-12-16 19:03:42
Откуда: Иркутск

pf+nat не работает

Непрочитанное сообщение vastni » 2008-04-02 21:07:27

Добрый день.

Есть машина, на ней стоит FreeBSD 7.0 Release amd64.
На ней настроен pf.
В машине три интерфейса:

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

 rc.conf
ifconfig_em0="inet 192.168.0.2  netmask 255.255.255.0"
ifconfig_em1="inet x.x.x.x1  netmask 255.255.255.252"
ifconfig_em2="inet 10.38.50.17  netmask 255.255.255.0"
router_enable="YES"
router="/sbin/routed"
router_flags="-q"
gateway_enable="YES"
defaultrouter="x.x.x.x2"
static_routes="nr1 nr2"
route_nr1="-net 192.168.0.0/16 192.168.0.254"
route_nr2="-net 10.0.0.0/8 10.38.50.254"
pf_enable="YES"
pf_rules="/etc/pf.conf"
pf_flags=""
pflog_logfile="/var/log/pflog"
pflog_flags=""

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

 Из pf.conf
n1_if="em0"
n2_if="em2" 
ext_if="em1"
Один смотрит в VPN одного провайдера (n1_if)

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

 Из pf.conf
n1="192.168/16"

Другой смотрит в VPN другого провайдера (n2_if)

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

 Из pf.conf
n1="10/8"

Третий смотрит в интернет (ext_if), настроен как static ip (интерфейс в машине имеет адрес, ххх.ххх.ххх.ххх/30, второй хост этой сети для него шлюз)

Пытаюсь проверить нат при таких правилах:

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

 Из pf.conf
nat on $ext_if from any to any -> ($ext_if)
pass quick from any to any keep state
(далее еще прописаны правила, но они не применяются при эксперименте из-за quick).
Трасерт из сети n1 замолкает на интерфейсе n1_if.

Что не так настроено?

P.S. При таком написании статических маршрутов пакеты в локальные сети внутренних интерфейсов будут посылаться на шлюз, а потом только возвращаться обратно в сеть?

Хостинговая компания 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/

Аватара пользователя
voider
лейтенант
Сообщения: 830
Зарегистрирован: 2008-02-21 20:35:03
Откуда: msk

Re: pf+nat не работает

Непрочитанное сообщение voider » 2008-04-02 23:37:59

1.

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

defaultrouter="x.x.x.x2"
в какой сети?
2. dns в какой сети?

Аватара пользователя
voider
лейтенант
Сообщения: 830
Зарегистрирован: 2008-02-21 20:35:03
Откуда: msk

Re: pf+nat не работает

Непрочитанное сообщение voider » 2008-04-02 23:42:28

попробуй вот пример

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

ext_if="xl0"
int_if="rl0"
nat on $ext_if proto { tcp udp icmp } from $int_if:network to any -> ($ext_if) 

vastni
рядовой
Сообщения: 11
Зарегистрирован: 2006-12-16 19:03:42
Откуда: Иркутск

Re: pf+nat не работает

Непрочитанное сообщение vastni » 2008-04-03 17:58:55

voider писал(а):1.

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

defaultrouter="x.x.x.x2"
в какой сети?
2. dns в какой сети?
1. Шлюз по умолчанию вот в этой сети
ifconfig_em1="inet x.x.x.x1 netmask 255.255.255.252"

2. DNS в сети провайдера, но он здесь не при чем. Трасерты не ходят по IP-адресу.

voider писал(а):попробуй вот пример
Нет, не работает.