Страница 1 из 1

Ответ с того же интерфейса, с которого пришёл запрос

Добавлено: 2010-06-04 12:03:40
Alex27
Суть, есть сервер с фрёй, в нём 2 интерфейса смотрящих в двух разных провайдеров (интерфейс1 и интерфейс2).

Задача - при запросе извне на интерфейс1 получить ответ с интерфейса1 (а не через дефолтный гейтвей).
В линухе это реализовывается с помощью iproute2. Во фре ничего подобного не нашёл.

И очень желательно в реализации не использовать pf.

З.Ы. Именно такая простая задача. Постучаться из мира на интерфейс1 и получить с него-же ответ.

Re: Ответ с того же интерфейса, с которого пришёл запрос

Добавлено: 2010-06-04 12:15:28
terminus
надо смотреть в сторону keep-state, tag и fwd.
через setfib такого не сделать.

Re: Ответ с того же интерфейса, с которого пришёл запрос

Добавлено: 2010-06-04 12:42:12
hizel
почему не сделать с помощью setfib? также как и через fwd пожалуйста

Re: Ответ с того же интерфейса, с которого пришёл запрос

Добавлено: 2010-06-04 13:27:11
terminus
setfib не работает на проходе OUT - система не станет пересматривать варианты какую табдицу маршрутизации юзать, а использует дефолтную.
Где-то в листах Julian Elisher писал, что теоретически возможно сделать чтобы фиб проверялся на OUT, но очень гиморно.
Если у него работает апача то ответ от нее всегда пойдет через дефолт вне зависимости от фиба.

вот такая штука может сработать:

Код: Выделить всё

add 1100 skipto 5000 tag 1 ip from any to any via fxp1 keep-state
add 1200 skipto 5000 tag 2 ip from any to any via fxp2 keep-state

add 5000 allow ip from any to any in

add 6000 fwd 1.2.3.4 ip from any to any out tagged 1
add 7000 fwd 5.6.7.8 ip from any to any out tagged 2
:unknown:

Re: Ответ с того же интерфейса, с которого пришёл запрос

Добавлено: 2010-06-04 14:13:12
terminus
Если у него работает апача то ответ от нее всегда пойдет через дефолт вне зависимости от фиба.
Уточню - реч идет именно о действии setfib в ipfw, а не о команде setfib.

То есть если сделать так:

Код: Выделить всё

setfib 1 ping 8.8.8.8
то это будет работать, а если сделать так:

Код: Выделить всё

ipfw add 1 setfib 1 icmp from me to any
то не прокатит.