Страница 1 из 1

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

Добавлено: 2008-04-02 21:07:27
vastni
Добрый день.

Есть машина, на ней стоит 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. При таком написании статических маршрутов пакеты в локальные сети внутренних интерфейсов будут посылаться на шлюз, а потом только возвращаться обратно в сеть?

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

Добавлено: 2008-04-02 23:37:59
voider
1.

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

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

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

Добавлено: 2008-04-02 23:42:28
voider
попробуй вот пример

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

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

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

Добавлено: 2008-04-03 17:58:55
vastni
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 писал(а):попробуй вот пример
Нет, не работает.