Маршрутизация + ipfw + два канал = почта не приходит

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
alex3
лейтенант
Сообщения: 872
Зарегистрирован: 2006-11-20 16:47:56
Откуда: Переславль
Контактная информация:

Маршрутизация + ipfw + два канал = почта не приходит

Непрочитанное сообщение alex3 » 2007-05-16 16:09:44

система такая (я немного упрощу): есть роутер с 3 ифейсами - 1 внешний с реальным айпи, 2- подключен к прову через приватный айпи, 3- локалка.
на 2-х внешних поднят нат (на 1-м с редиректом 25 порта внутрь сети на почтовик). шлюх по дефолту стоит на 1 ифейс. Возникла задача, балансировать между двумя каналами (1-м и 2-м). допустим меняем шлюз по дефолту на шлюз 2 (прова). Но запись МХ в домене указывает на адрес 1-го ифейса... Ситуация - на 1-й ифейс приходят пакеты от почтовиков (типа установить соединение), роутер их честно пробрасывает внутрь локалки, локальный почтовик честно отвечает и.... и ответные пакеты пруться через второй канал. ессно - соединения нет... у кого какие идеи как реализовать, чтоб инет шел через 2-канал, но почта с первого принималась
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-05-16 16:17:11

релей на гейте
Убей их всех! Бог потом рассортирует...

Аватара пользователя
alex3
лейтенант
Сообщения: 872
Зарегистрирован: 2006-11-20 16:47:56
Откуда: Переславль
Контактная информация:

Непрочитанное сообщение alex3 » 2007-05-16 16:19:36

поподробнее...
то, что exim на рутере подымать - это я понял... но основной почтовик на рутер пихать не хочу.
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.

Аватара пользователя
alex3
лейтенант
Сообщения: 872
Зарегистрирован: 2006-11-20 16:47:56
Откуда: Переславль
Контактная информация:

Непрочитанное сообщение alex3 » 2007-05-17 8:01:52

млин. неужели никто с маршрутизацией не сталкивался? хорошо, переформулируем вопрос - как во фре сделать так чтобы входящий запрос на соединение снаружи добавлял в таблицу маршрутов, что ответ надо слать туда-то?
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.

Аватара пользователя
alex3
лейтенант
Сообщения: 872
Зарегистрирован: 2006-11-20 16:47:56
Откуда: Переславль
Контактная информация:

Непрочитанное сообщение alex3 » 2007-05-18 11:31:55

с релеем тоже, думаю, не получится. он тоже ответы будет слать по маршруту по умолчанию... похоже тут надо маршрутизацию копать очень глубоко.
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-05-18 11:45:49

У тебя экспериментировать нельзя, а это плохо. Всегда что-то сразу не работает. Особенно фаер и, тем более, если первый раз решаешь такую задачу.

Для начала нужно понять как работает маршрутизация, я попробую объяcнить в силу моих знаний.

Исходящий траф:
1. Пакет приходит на лок. интерфейс. Должно сработать правило allow
2. Далее определяется исходящий интерфейс для этого пакета, тут сложнее.
2.а Сначала просматриваются статические маршруты (если найдены, то согласно им будет определён исходящий интерфейс)
2.б. Если нет в статических маршрутах адреса назначения, то устанавливается интерфейс default (если задан, иначе unroutable)
3. Далее ты определяешь,что же тебе нужно с этим делать - в твоём случае у тебя есть определённый внутренний IP-Адрес и порт почтового сервера.
Т.е. лучше сделать skipto 50000 на обработку таких пакетов.
4. В 50000 натишь всё и fwd через нужный тебе интерфейс.

На этом всё. Пакет уходит куда надо.
Входящий траф:
1. Пакет приходит на внешний интерфейс.
2. Попадает в nat в котором redirect на почтовик.
3. allow разNATченный пакет
4. allow с внутреннего интерфейса.

Код: Выделить всё

хорошо, переформулируем вопрос - как во фре сделать так чтобы входящий запрос на соединение снаружи добавлял в таблицу маршрутов, что ответ надо слать туда-то?
Я такого не встречал.
Последний раз редактировалось dikens3 2007-05-18 11:49:34, всего редактировалось 3 раза.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-05-18 11:46:12

exim позволяет задать используемый интерфейс
Убей их всех! Бог потом рассортирует...

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-05-18 11:48:51

lissyara писал(а):exim позволяет задать используемый интерфейс
У него внутри стоит сервак. И он у него один. :-)
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-05-18 11:50:28

не. я предлагаю на гейте exim поставить и конфигом разрулить куда слать
Убей их всех! Бог потом рассортирует...

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-05-18 12:00:23

lissyara писал(а):не. я предлагаю на гейте exim поставить и конфигом разрулить куда слать
А что exim фаер научился обходить? Как напишешь фаер, так и будет. :-)
Напишешь фаер неправильно, и не туда пакет уйдёт, независимо от настроек exim'а.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-05-18 12:11:16

Убей их всех! Бог потом рассортирует...

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-05-18 12:34:26

lissyara писал(а):http://www.lissyara.su/?id=1230#interface
копать сюда
Я так понимаю это наезд? Не сможет exim обойти неправильно настроенный фаер, не сможет.

У него там фаер голову сломаешь(в смысле сложный и большой достаточно). Он реально просто написал, чтобы можно было понять.

Рекомендую почтовый траф пускать через один канал. Всегда один и тот же.
Как вариант нужно делать 2-е записи MX с одинаковым приоритетом, но разными IP-Адресами. (разных провов)
Ну и разруливать это дело.
На одном нате делать редирект, к примеру: 192.168.1.1
На другом на 192.168.1.2
И повесить exim слушать 2-а интерфейса.

И ещё что-нибудь думать. Может не работать. Т.к. я всё не продумывал, просто идея.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-05-18 12:47:24

вопрос про отправку вроде, а не приём.
отправлять он удет с указанного интерфейса.
но - не пробовал - надо пробовать.
в конце концов - никто не мешает на гейте поставить почтарь и поколупатсья - как он будет отправлять
Убей их всех! Бог потом рассортирует...

Аватара пользователя
alex3
лейтенант
Сообщения: 872
Зарегистрирован: 2006-11-20 16:47:56
Откуда: Переславль
Контактная информация:

Непрочитанное сообщение alex3 » 2007-05-18 13:11:08

вопрос именно про прием (входящая почта). не устанавливается соединение и соответственно smtp сессия.
пробовал так.

Код: Выделить всё

 divert nat_prov1 tcp from ip_post_local 25 to any
fwd gateway_prov1 from ipprov1 25 to any
что-то в этом духе. не заработало. нат видимо меняет порт.... не выходят пакетики с 25-го порта рутера....
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-05-18 13:25:19

Приём тут не причём вовсе.

Скорее всего у тебя дело обстоит так:

1. Попытка удалённым серваком отправить почту на твой домен
2. Ищем MX запись и IP-Адрес
3. Подключаемся к IP-Адресу
4. Пакет (SYN) попадает на рутер (Канал1)
5. NAT на локальный и 25 порт
6. Приём входящего пакета и выход через внутр. интерфейс
7. Попадает на exim (на 25 порт)
8. Exim отвечает с 25 порта на рутер
9. Рутер выпускает ответ на SYN пакет через канал2. (Другой канал!!! )

Вывод? Соединений нет. :-) (Это совсем не значит что к тебе не коннектятся, а в том, что не получаю ответы от ТЕБЯ!!)
tcpdump на рутере, на cерваке с exim и смотреть что же не так.

P.S. FORWARD_EXTENDED собран на шлюзе? (тот самый что отвечает за fwd)
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
alex3
лейтенант
Сообщения: 872
Зарегистрирован: 2006-11-20 16:47:56
Откуда: Переславль
Контактная информация:

Непрочитанное сообщение alex3 » 2007-05-18 13:37:39

tcpdump на рутере, на cерваке с exim и смотреть что же не так.
сделано
P.S. FORWARD_EXTENDED собран на шлюзе? (тот самый что отвечает за fwd)
А как же он до разборок с маршрутизацией работал? там шлюз по дефолту вообще в локальную горсеть стоял... так что форвардинг работает.
но все равно - попробую еще раз
[/code]
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-05-18 13:38:44

Не путай форвардинг с маршрутизацией.

Если сделано, то что видно на компе с exim? Есть вообще входящие соединения?
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
alex3
лейтенант
Сообщения: 872
Зарегистрирован: 2006-11-20 16:47:56
Откуда: Переславль
Контактная информация:

Непрочитанное сообщение alex3 » 2007-05-18 13:55:12

входящие есть... работает именно по той схеме, что ты набросал выше - ответный пакет уходит по другому каналу... ща экспериментирую с ipfw fwd & divert
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.