|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Tarasyuk Dmitry 2:5020/400 11 Mar 2007 04:25:05 To : Andrey Ostanovsky Subject : Re: PF: nat & pass route-to... --------------------------------------------------------------------------------
> >> T> Hо этого не происходит: если пакеты порождаются самим сервером,
> >> T> т.е. правила [***4***] выполняются, но маскарадинг по правилам
> >> T> [**1**] для пакетов с сервера не работает. Tcpdump показывает,
> >> T> что перемаршрутизированные пакеты с SRCIP=1.1.1.2 уходят через
> >> T> fxp0 на 2.2.2.1 и отбрасываются провайдером, как
> >> T> неудовлетворяющие политике.
> >> pass out on $ext_if route-to { ($ext_if2 $ext_gw2) } from $ext_if2
> >> to any # pass out on $ext_if2 route-to { ($ext_if $ext_gw) } from
> >> $ext_if to any #
> TD> Это не правильный ответ! Hужно, чтобы пакеты с самого сервера вели
> TD> себя также, как и пакеты из локальной сети, т.е.
> Они (пакеты) будут вести себя в соответствии с таблицей маршрутизации, а
> приведенные выше правила - просто предохраняют от "неправильных
> программ",
> имеющих наглость отвечать во внешний мир со вторичного интерфейса.
1. Такой "неправильной программой" является, например,
ping/sendmail/squid... Скорее, Вы утверждаете, что неправильно написан
pf.conf. Hо тогда это должно быть объяснимо не догматически введением
сущности "неправильная программа", от которой нужно предохраняться, а
пояснениями, которые могут убедить. Вот я могу предоставить Вам свои
пояснения, которые, как я думаю, показывают, что в PF есть ошибка.
Ошибка может состоять в следующем. Когда пакет проходит "транзитом" через
FreeBSD машину подходящий "pass route-to" перенаправляет его по маршруту
вне зависимости от стандартной route-таблицы в ядре. При этом SRCIP не
меняется, если нет правил маскарадинга. Hо в случае, если пакет _порожден
на самом хосте_ без явной привязки к интерфейсу (например, когда САМАЯ
ОБЫЧHАЯ ПРОГРАММА создает сокет для отправки пакета с указанием порта, но
без указания локального адреса интерфейса), тогда ядро ОС на основании
маршрутов само должно решить каким именно будет SRCIP, а именно IP
интерфейса, через который пакет уйдет. PF, обрабатывая такие пакеты по
route-to _должен изменять_ SRCIP на тот, который присвоен интерфейсу,
через который пакет пойдет на самом деле после перемаршрутизации. Ошибка
именно в том, что PF этого не делает!
--- ifmail v.2.15dev5.3
* Origin: NDIASB (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/201593f753f87.html, оценка из 5, голосов 10
|