URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 95267
[ Назад ]

Исходное сообщение
"Раскидать новые соединения по маршрутам"

Отправлено Паша , 06-Дек-13 19:44 
Здравствуйте.

Есть сервер под Debian, на нём 2 uplink-канала и внутренняя сетка с белыми IP.
Задача состоит в сдедующем: нужно сделать так, чтобы новые соединения, иницированные из внутренней сетки распределялись по разным каналам и ходили по ним (не без помощи NAT, конечно); а соединения, иницированные из внешки (обращение на белые IP) уходили туда же, откуда пришли (т.е. только в один из каналов).
Первой идеей было метить в iptables пакеты с состоянием NEW и адресом источника из внтуренней сетки, а потом уже через ip rule направить куда надо:
iptables -A PREROUTING -t mangle -s [внутр.сетка] -m state --state NEW -j MARK --set-mark 1.
ip rule add to [специфичное_назначение] fwmark 1 table [таблица]
Но не сработало. Пробовал много разных вариантов, пока ничего толкового не вышло.

Помогите советом.


Содержание

Сообщения в этом обсуждении
"Раскидать новые соединения по маршрутам"
Отправлено PavelR , 06-Дек-13 20:02 

>(не без помощи NAT, конечно);

Если с использованием NAT - то в чем проблема? Вообще проблемы нет.

> Но не сработало.

А что не сработало?
Не осилили разницу между MARK и CONNMARK ? Там еще --restore-mark есть.

>Пробовал много разных вариантов, пока ничего толкового не вышло.
> Помогите советом.

Входящие _соединения_ маркируем.

Когда идет ответный пакет, проверяем, не маркирован ли он уже. Если маркирован - не перемаркировываем, не натим, отправляем "откуда пришел".