Добрый вечер.Уже целый день безрезультатно колупаюсь, решил прибегнуть к помощи коллективного разума.
У сервера (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. В общем это вкратце описание проблемы. Дополнительную информацию дам по запросу, возможно кому-то эта ситуация знакома и он скажет хотя бы в каком направлении смотреть. Спасибо.