Перейти к содержанию

роутинг пакетов от локальных приложений на основе dport(sport)...


Рекомендуемые сообщения

Доброе время суток всем!

Есть 2 канала в инет, 2 сетевых адаптера. Необходимо трафик от почтового сервера и от прокси заруливать на определенный интерфейс, а весь остальной трафик на другой (сервисы почты и прокси крутятся на данной машине).

Более наглядно:

1 channel - eth0

2 channel - eth1

Шлюз по умолчанию eth0.

На шлюз, который определен для eth1 необходимо бросать все пакеты с sport tcp/80, tcp/25. Весь остальной трафик - на шлюз по умолчанию для eth0.

Пробовал решить проблему маркирокой пакета на этапе прохождения табл. mangle цепочки OUTPUT, а далее iproute'ом обрабатывать данные пакеты определяя для них другой шлюз по умолчанию (от eth1). Но как выяснилось система принимает решение о маршрутизации сразу после того как пакет вообще попадет в цепочку OUTPUT, следовательно ставить метки на пакет получилось бессмысленным. Как тут быть?

Ссылка на комментарий
Поделиться на другие сайты

Да нет. Должно работать. У меня, во всяком случае, работает.

Сперва помечаю пакеты в mangle OUTPUT, потом(создав таблицу с дефолотовым маршрутом для почты) заворачиваю при помощи ip rule fwmark все эти пакеты в эту таблицу. После всего POSTROUTING'ом в nat подменяю адреса. Последний пункт нужен/не нужен в зависимости от настроек сервера, для которого предназначенны эти пакеты.

Приведите команды, которыми вы всё это делаете?

Ссылка на комментарий
Поделиться на другие сайты

Типа того...

Относительно IPTables:

iptables -t mangle -A OUTPUT -p tcp --dport 25 -j MARK --set-mark 1

iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 1

Относительно iproute2:

echo eth1out >> /etc/iproute2/rt_tables

ip rule add fwmark 1 table eth1out

ip route add default via ETH1_GW dev eth1 table eth1out

ip route flush cache

Ссылка на комментарий
Поделиться на другие сайты

http://www.opennet.ru/docs/RUS/iptables/#TRAVERSINGGENERAL

Таблица 3-3. От локальных процессов

CUT ->

1 шаг. Локальный процесс (т.е., программа-сервер или программа-клиент).

2 шаг. Принятие решения о маршрутизации. Здесь решается куда пойдет пакет дальше -- на какой адрес, через какой сетевой интерфейс и пр.

3 шаг. T-mangle, C-OUTPUT. Здесь производится внесение изменений в заголовок пакета. Выполнение фильтрации в этой цепочке может иметь негативные последствия.

<-

Ссылка на комментарий
Поделиться на другие сайты

Попробуйте вместо -A использовать -I, чтобы правило выполнялось в первую очередь. Также посмотрите после задания правила и попытки передать почту на таблицу с ключом -v, чтобы узнать, проходят ли пакеты через правило или нет.

А здесь лучше указать номер

Цитата:

echo eth1out >> /etc/iproute2/rt_tables

т.е. echo "100 eth1out" >> /etc/iproute2/rt_tables

А поповоду OUTPUT вот выдержка из man iptables:

mangle:
                  This  table  is used for specialized packet alteration.  Until kernel 2.4.17 it had two built-in chains:
                  PREROUTING (for altering incoming packets before routing) and  OUTPUT  (for  altering  locally-generated
                  packets  before  routing).   Since  kernel 2.4.18, three other built-in chains are also supported: INPUT
                  (for packets coming into the box itself), FORWARD (for altering packets being routed through  the  box),
                  and POSTROUTING (for altering packets as they are about to go out).

Нас интересует "OUTPUT (изменение локально сгенерированных пакетов до маршрутизации)".

P.S. Я обычно ставлю метку вида 0x10 и т.д. Такой формат чаще всего упоминается в примерах. Может стоит попробовать так?

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...