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

Исходное сообщение
"FreeBSD 9.1: пробросить порт при помощи pf (два wan, setfib)"

Отправлено кцу , 26-Янв-13 22:33 
Добрый вечер.

Уже целый день безрезультатно колупаюсь, решил прибегнуть к помощи коллективного разума.
У сервера (server) два аплинка: rl0 (ethernet) и tun0/rl1 (pppoe), и один локальный интерфейс: alc0

Делаю проброс порта в локальную сеть при помощи pf:
rdr on rl1 proto tcp from any to $extip port 49504 -> 192.168.100.2 port 80

С машины снаружи (extmachine_ip) делаю nc $extip 49504.
tcpdump'ом вижу следующее:

1. запрос приходит с extmachine_ip на rl1 на сервере server.
2. запрос на 192.168.100.2:80 уходит через alc0 на внутренний сервер
3. на alc0 приходит ответ от 192.168.100.2 для extmachine_ip
3. ответ от 192.168.100.2 (но уже с $extip) для extmachine_ip пытается уйти с rl0 (вместо rl1)

Естественно, ничего не происходит. Вопрос в том, что мне нужно сказать pf или системе, чтобы ответ уходил через тот же интерфейс, через который пришел запрос.

У rl0 и tun0 свои default route (через setfib настроенные). Может мне как-то нужно сказать, что у rl1 default route тот же что у tun0? Я просто не совсем понимаю как работает pppoe. В общем это вкратце описание проблемы. Дополнительную информацию дам по запросу, возможно кому-то эта ситуация знакома и он скажет хотя бы в каком направлении смотреть. Спасибо.


Содержание

Сообщения в этом обсуждении
"FreeBSD 9.1: пробросить порт при помощи pf (два wan, setfib)"
Отправлено artemrts , 27-Янв-13 01:11 
>[оверквотинг удален]
> с rl0 (вместо rl1)
> Естественно, ничего не происходит. Вопрос в том, что мне нужно сказать pf
> или системе, чтобы ответ уходил через тот же интерфейс, через который
> пришел запрос.
> У rl0 и tun0 свои default route (через setfib настроенные). Может мне
> как-то нужно сказать, что у rl1 default route тот же что
> у tun0? Я просто не совсем понимаю как работает pppoe. В
> общем это вкратце описание проблемы. Дополнительную информацию дам по запросу, возможно
> кому-то эта ситуация знакома и он скажет хотя бы в каком
> направлении смотреть. Спасибо.

Есть параметр

     rtable <number>
           Used to select an alternate routing table for the routing lookup.
           Only effective before the route lookup happened, i.e. when filter-
           ing inbound.

Еще почитайте http://openbsd.org/faq/pf/pools.html#outgoing, только версию pf адаптируйте к pf45.