s.lobanov Опубликовано 16 апреля, 2010 · Жалоба С помощью iptables и ip rule заруливаю трафик на не дефолтную таблицу маршрутизации: iptables -t mangle -A OUTPUT <критерии> -j MARK --set-mark 0xa ip rule fwmark 0xa table test10 В таблице test10 всего один(но может быть и не один) маршрут - default, но отличный от того, что в главной таблице # ip route list table test10 default via 192.168.3.7 dev eth0.7 В главной таблице шлюз другой default via 192.168.2.2 Смотрю tcpdump'ом что получается - правила обрабатываются, но source ip в исходящих пакетах берётся 192.168.2.3(на основе дефолтной таблицы роутинга) и приходится делать SNAT чтобы его заменить на 192.168.3.3(который навешан на сабе eth0.7) Поэтому у меня есть вопрос - можно ли заставить linux делать выбор source ip не на основе главной таблицы маршрутизации(для трафика от определённого пользователя или определённого приложения(-m owner)), а на основе нужной мне таблицы или вообще как-то его задать? Просто мне кажется что цепочка действий, которую я делаю слишком громоздка и слишком геморно всё это будет траблшутить. И ещё вопрос, насколько громоздко эта задача(заруливать трафик от приложения или пользователя через отдельную таблицу маршрутизации) будет выглядеть на freebsd? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Lynx10 Опубликовано 16 апреля, 2010 (изменено) · Жалоба Во Фре фаерволом ipfw add XX fwd бла бла бла читайте документацию по фаерволу Выглядит не так громоздко чем в линуксе может так попробовать ? ip route add default via 192.168.3.7 table test10 src IP_на_машине_в_ту_сторону ? Изменено 16 апреля, 2010 пользователем Lynx10 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Jugernault Опубликовано 17 апреля, 2010 (изменено) · Жалоба С помощью iptables и ip rule заруливаю трафик на не дефолтную таблицу маршрутизации:iptables -t mangle -A OUTPUT <критерии> -j MARK --set-mark 0xa ip rule fwmark 0xa table test10 В таблице test10 всего один(но может быть и не один) маршрут - default, но отличный от того, что в главной таблице # ip route list table test10 default via 192.168.3.7 dev eth0.7 Заменить наdefault via 192.168.3.7 dev eth0.7 src 192.168.3.3 При этом локальный (локальносгенеренный трафик маршрутизируемый через эту таблицу) будет иметь этот "сырец". Смотрю tcpdump'ом что получается - правила обрабатываются, но source ip в исходящих пакетах берётся 192.168.2.3(на основе дефолтной таблицы роутинга) и приходится делать SNAT чтобы его заменить на 192.168.3.3(который навешан на сабе eth0.7) Поэтому у меня есть вопрос - можно ли заставить linux делать выбор source ip не на основе главной таблицы маршрутизации(для трафика от определённого пользователя или определённого приложения(-m owner)), а на основе нужной мне таблицы или вообще как-то его задать? Просто мне кажется что цепочка действий, которую я делаю слишком громоздка и слишком геморно всё это будет траблшутить. И ещё вопрос, насколько громоздко эта задача(заруливать трафик от приложения или пользователя через отдельную таблицу маршрутизации) будет выглядеть на freebsd? Нууу маркировка IPTABLES для того что бы раскрасить трафик и в последствии выбрать таблицу маршрутизации это наверное слишком изящно - можно было бы этот этап и пропустить (сделать все при помощи iproute2).А вот касаемо "сырцов", нужно четко разделять понятия - трафик от приложений (локальный трафик) и трафики от пользователей (транзитный трафик других хостов) - на "сырцы" в транзитном трафике Вы только NATом повлиять сможете. Изменено 17 апреля, 2010 пользователем Jugernault Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 18 апреля, 2010 · Жалоба Jugernault >default via 192.168.3.7 dev eth0.7 src 192.168.3.3 Не помогает, source ip всё равно выбирается на основе главной таблицы. Трафик только локальный(генерится кронами на этом сервере от различных локальных пользователей). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Умник Опубликовано 18 апреля, 2010 · Жалоба s.lobanov, ip route flush cache после изменения настроек сделали? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
voron Опубликовано 18 апреля, 2010 · Жалоба Трафик только локальный(генерится кронами на этом сервере от различных локальных пользователей).а если простой SNAT в 192.168.3.3 ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Jugernault Опубликовано 18 апреля, 2010 · Жалоба s.lobanov, ip route flush cache после изменения настроек сделали? Очень похоже что нет... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 18 апреля, 2010 (изменено) · Жалоба >ip route flush cache после изменения настроек сделали? Попробовал, не помогает. Всё равно source ip берётся на основе главной таблицы роутинга >а если простой SNAT в 192.168.3.3 ? Не очень понятна мысль. Если заменить все правила на <критерии> -j SNAT --to 192.168.3.3, то откуда будет известно что надо слать пакетики на шлюз 192.168.3.7? Изменено 18 апреля, 2010 пользователем s.lobanov Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
voron Опубликовано 18 апреля, 2010 · Жалоба Если заменить все правила на <критерии> -j SNAT --to 192.168.3.3, то откуда будет известно что надо слать пакетики на шлюз 192.168.3.7?правила не заменять а добавить, ну и выше сделанный policy routing не убирать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 18 апреля, 2010 (изменено) · Жалоба На текущий момент и я делаю SNAT для того, чтобы пакеты отправлялись с нужным мне source адресом. Вроде как об этом написал в первом посте Изменено 18 апреля, 2010 пользователем s.lobanov Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...