fluxy Опубликовано 30 октября, 2007 Жалоба Поделиться Опубликовано 30 октября, 2007 Доброе время суток всем! Есть 2 канала в инет, 2 сетевых адаптера. Необходимо трафик от почтового сервера и от прокси заруливать на определенный интерфейс, а весь остальной трафик на другой (сервисы почты и прокси крутятся на данной машине). Более наглядно: 1 channel - eth0 2 channel - eth1 Шлюз по умолчанию eth0. На шлюз, который определен для eth1 необходимо бросать все пакеты с sport tcp/80, tcp/25. Весь остальной трафик - на шлюз по умолчанию для eth0. Пробовал решить проблему маркирокой пакета на этапе прохождения табл. mangle цепочки OUTPUT, а далее iproute'ом обрабатывать данные пакеты определяя для них другой шлюз по умолчанию (от eth1). Но как выяснилось система принимает решение о маршрутизации сразу после того как пакет вообще попадет в цепочку OUTPUT, следовательно ставить метки на пакет получилось бессмысленным. Как тут быть? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
cppmm Опубликовано 30 октября, 2007 Жалоба Поделиться Опубликовано 30 октября, 2007 Да нет. Должно работать. У меня, во всяком случае, работает. Сперва помечаю пакеты в mangle OUTPUT, потом(создав таблицу с дефолотовым маршрутом для почты) заворачиваю при помощи ip rule fwmark все эти пакеты в эту таблицу. После всего POSTROUTING'ом в nat подменяю адреса. Последний пункт нужен/не нужен в зависимости от настроек сервера, для которого предназначенны эти пакеты. Приведите команды, которыми вы всё это делаете? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
fluxy Опубликовано 30 октября, 2007 Автор Жалоба Поделиться Опубликовано 30 октября, 2007 Типа того... Относительно 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 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
fluxy Опубликовано 30 октября, 2007 Автор Жалоба Поделиться Опубликовано 30 октября, 2007 http://www.opennet.ru/docs/RUS/iptables/#TRAVERSINGGENERAL Таблица 3-3. От локальных процессов CUT -> 1 шаг. Локальный процесс (т.е., программа-сервер или программа-клиент). 2 шаг. Принятие решения о маршрутизации. Здесь решается куда пойдет пакет дальше -- на какой адрес, через какой сетевой интерфейс и пр. 3 шаг. T-mangle, C-OUTPUT. Здесь производится внесение изменений в заголовок пакета. Выполнение фильтрации в этой цепочке может иметь негативные последствия. <- Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
cppmm Опубликовано 30 октября, 2007 Жалоба Поделиться Опубликовано 30 октября, 2007 Попробуйте вместо -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 и т.д. Такой формат чаще всего упоминается в примерах. Может стоит попробовать так? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
fluxy Опубликовано 30 октября, 2007 Автор Жалоба Поделиться Опубликовано 30 октября, 2007 Черт знает что, но устновка значения метки в 10 помогла)))... С --set-mark 1 не работало... Спасибо огромное. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.