Нашел интересную статью с описанием работы межсетевого экрана IPFW
. В частности, упомянута реализация действия, аналогичного reply-to
из PF
:
«
Тот факт, что на самом деле "перепрыгивание" выполняется на параметры действия, позволяет использовать это для интересных вещей. В частности, с использованием появившегося во 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 # зарулим их куда надо
Комментариев нет:
Отправить комментарий