pf+nat не работает
Добавлено: 2008-04-02 21:07:27
Добрый день.
Есть машина, на ней стоит FreeBSD 7.0 Release amd64.
На ней настроен pf.
В машине три интерфейса:
Один смотрит в VPN одного провайдера (n1_if)
Другой смотрит в VPN другого провайдера (n2_if)
Третий смотрит в интернет (ext_if), настроен как static ip (интерфейс в машине имеет адрес, ххх.ххх.ххх.ххх/30, второй хост этой сети для него шлюз)
Пытаюсь проверить нат при таких правилах:
Трасерт из сети n1 замолкает на интерфейсе n1_if.
Что не так настроено?
P.S. При таком написании статических маршрутов пакеты в локальные сети внутренних интерфейсов будут посылаться на шлюз, а потом только возвращаться обратно в сеть?
Есть машина, на ней стоит 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"
Код: Выделить всё
Из 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).
Что не так настроено?
P.S. При таком написании статических маршрутов пакеты в локальные сети внутренних интерфейсов будут посылаться на шлюз, а потом только возвращаться обратно в сеть?