Today Nov 4, 2014 at 01:01 Alexander wrote: > Hello UAFUG, > > Доброе время суток! Пните в нужную сторону, как сделать правильно в > топике. Есть шлюз с несколькими наружними интерфейсами, на котором > сделан проброс входящих портов на внутренние сервисы с помощью ipfw и > ядрёного nat-а. Не могу придумать, как сделать так, чтоб ответ на > входящий запрос уходил через тот же интерфейс и с того же адреса через > который пришёл запрос. А не через defaultroute. Т.к. тот же ssh не > желает категорически принимать ответы от "чужого" сервера. :( Или на > топике такого не сделать? > > На всяк случай, система 7.4, но мне что-то кажется, что это не > принципиально...
Некропостинг :) ------------------------------------------------------ Date: Wed, 28 Sep 2011 14:10:23 +0300 (EEST) From: Oleksandr V. Typlyns'kyi <ast...@wangsamp.km.ua> To: Maxim Ignatenko <i...@ukrweb.net> Cc: freebsd@uafug.org.ua Subject: Re: [freebsd] PBR & dyn ip Today Sep 28, 2011 at 13:54 Maxim Ignatenko wrote: > > > > Читайте ман лучше. > > > > fwd <gw ip> ip from any to any in recv 'ng*' > > > > > > Такая конструкция, увы, не работает. > > > Для теста подставляю руками выданный ip > > > > > > fwd <gw ip> ip from <dyn if ip> to any in recv ng1 - не работает > > > fwd <gw ip> ip from <dyn if ip> to any - работает > > > > У меня работает. Что я делаю не так? > > Ищите у себя ошибки, опечатки и прочее. tcpdump в руки. Всё работает. > > Может таки out xmit ng1 надо? Так если оно и так out через ng1, то зачем его туда же полисить? Две недели назад была тема "ECMP + ipfw nat port redirect" Там я приводил ссылку на статью Вадима Гончарова: http://nuclight.livejournal.com/124348.html Тут же тоже хотят аналога pf route-to. В частности, с использованием появившегося во FreeBSD 6.2 параметра tag на каждый пакет можно навешивать внутриядерный тег, что в применении со skipto позволяет сделать, к примеру, запоминание, с какого шлюза пришел входящий пакет на машине с каналами к двум разным провайдерам, и ответные пакеты отправлять в тот канал, откуда они пришли (допустим, у вашей машины только один IP-адрес, и сделать fwd на базе внешнего адреса не получится), т.е. реализовать аналог reply-to из pf: ipfw add 100 skipto 300 tag 1 in recv $ext_if1 keep-state ipfw add 200 skipto 300 tag 2 in recv $ext_if2 keep-state ipfw add 300 allow { recv $ext_if1 or recv $ext_if2 } # входящие снаружи ipfw add 400 allow in recv $int_if # разрешить ответы на внутреннем проходе ipfw add 500 fwd $gw1 tagged 1 # остались ответы на внешнем интерфейсе, ipfw add 600 fwd $gw2 tagged 2 # зарулим их куда надо -- WNGS-RIPE