[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: хитрый policy routing



В Пнд, 19/05/2008 в 11:20 +0400, Sapytsky Ilya пишет:
> 19 мая 2008 г. 10:37 пользователь Покотиленко Костик
> <casper@meteor.dp.ua> написал:
>         В Пнд, 19/05/2008 в 09:38 +0400, Sapytsky Ilya пишет:
>         > вья Добрый день!
>         > пару дней тут изучал доку по policy routing.
>         > после прочтения так и не понял можно ли сделать вот такую
>         штуку:
>         > чтобы маршрут ставился в зависимости от интерфейса, по
>         которому пакет
>         > пришел?
>         > типа если пришло через eth0 - обратно все пакеты этого
>         соединения
>         > через этот интерфейс и отправлять.
>         > Если через eth1 - отправлять все пакеты этого соединения
>         через eth1.
>         > И есть default gw, через который отправлять все исходящие
>         соединения.
>         
>         
>         Шаршрутизируй по FWMARK, FWMARK выставляй в iptables. Как
>         известно в
>         iptables критериев мноооого. По входящему интерфейсу совсем не
>         проблема.
>         
> хм... не понял как это сделать?
> пока не понятна технология.
> Почему не понятна - если пришел пакет через eth0, а default gw стоит
> eth1 то будет следующее - пакет будет пытаться пролезть через eth0, но
> при этом ip отправителя будет стоять от интерфейса eth1. Или я не
> прав?
> можно ли примерчик?

Примерчика нет. Скажу сразу, я такое пытался делать давно, но у меня не
получилось. В рассылке netfilter'а проскакивают такие темы, я был на
правильном пути, но видать где-то не доглядел... Если в кратце, то
принцип такой:

1. На интересующее входящее с внешней стороны соединение, на пакет
начинающий соединение (SYN) ставишь CONNMARK в какое-нибудь значение.

2. На обратном пути (пакеты-ответы) будут иметь такое же значение
CONNMARK. Поскольку iproute2 не умеет работать с CONNMARK, а работает с
MARK, тут тебе нужно сделать --restore-mark чтобы скопировать значение
CONNMARK в MARK.

3. С помощью альтернативных таблиц маршрутизации делаешь так, чтобы
пакеты с соответствующей маркой шли куда тебе надо.

Повторить для каждого интерфейса где нада такая фишка.

-- 
Покотиленко Костик <casper@meteor.dp.ua>


Reply to: