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

Ответить