Маршрутизация + ipfw + два канал = почта не приходит
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- alex3
- лейтенант
- Сообщения: 872
- Зарегистрирован: 2006-11-20 16:47:56
- Откуда: Переславль
- Контактная информация:
Маршрутизация + ipfw + два канал = почта не приходит
система такая (я немного упрощу): есть роутер с 3 ифейсами - 1 внешний с реальным айпи, 2- подключен к прову через приватный айпи, 3- локалка.
на 2-х внешних поднят нат (на 1-м с редиректом 25 порта внутрь сети на почтовик). шлюх по дефолту стоит на 1 ифейс. Возникла задача, балансировать между двумя каналами (1-м и 2-м). допустим меняем шлюз по дефолту на шлюз 2 (прова). Но запись МХ в домене указывает на адрес 1-го ифейса... Ситуация - на 1-й ифейс приходят пакеты от почтовиков (типа установить соединение), роутер их честно пробрасывает внутрь локалки, локальный почтовик честно отвечает и.... и ответные пакеты пруться через второй канал. ессно - соединения нет... у кого какие идеи как реализовать, чтоб инет шел через 2-канал, но почта с первого принималась
на 2-х внешних поднят нат (на 1-м с редиректом 25 порта внутрь сети на почтовик). шлюх по дефолту стоит на 1 ифейс. Возникла задача, балансировать между двумя каналами (1-м и 2-м). допустим меняем шлюз по дефолту на шлюз 2 (прова). Но запись МХ в домене указывает на адрес 1-го ифейса... Ситуация - на 1-й ифейс приходят пакеты от почтовиков (типа установить соединение), роутер их честно пробрасывает внутрь локалки, локальный почтовик честно отвечает и.... и ответные пакеты пруться через второй канал. ессно - соединения нет... у кого какие идеи как реализовать, чтоб инет шел через 2-канал, но почта с первого принималась
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- Alex Keda
- стреляли...
- Сообщения: 35466
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
- alex3
- лейтенант
- Сообщения: 872
- Зарегистрирован: 2006-11-20 16:47:56
- Откуда: Переславль
- Контактная информация:
- alex3
- лейтенант
- Сообщения: 872
- Зарегистрирован: 2006-11-20 16:47:56
- Откуда: Переславль
- Контактная информация:
млин. неужели никто с маршрутизацией не сталкивался? хорошо, переформулируем вопрос - как во фре сделать так чтобы входящий запрос на соединение снаружи добавлял в таблицу маршрутов, что ответ надо слать туда-то?
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.
- alex3
- лейтенант
- Сообщения: 872
- Зарегистрирован: 2006-11-20 16:47:56
- Откуда: Переславль
- Контактная информация:
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
У тебя экспериментировать нельзя, а это плохо. Всегда что-то сразу не работает. Особенно фаер и, тем более, если первый раз решаешь такую задачу.
Для начала нужно понять как работает маршрутизация, я попробую объяcнить в силу моих знаний.
Исходящий траф:
1. Пакет приходит на лок. интерфейс. Должно сработать правило allow
2. Далее определяется исходящий интерфейс для этого пакета, тут сложнее.
2.а Сначала просматриваются статические маршруты (если найдены, то согласно им будет определён исходящий интерфейс)
2.б. Если нет в статических маршрутах адреса назначения, то устанавливается интерфейс default (если задан, иначе unroutable)
3. Далее ты определяешь,что же тебе нужно с этим делать - в твоём случае у тебя есть определённый внутренний IP-Адрес и порт почтового сервера.
Т.е. лучше сделать skipto 50000 на обработку таких пакетов.
4. В 50000 натишь всё и fwd через нужный тебе интерфейс.
На этом всё. Пакет уходит куда надо.
Входящий траф:
1. Пакет приходит на внешний интерфейс.
2. Попадает в nat в котором redirect на почтовик.
3. allow разNATченный пакет
4. allow с внутреннего интерфейса.
Я такого не встречал.
Для начала нужно понять как работает маршрутизация, я попробую объя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
- стреляли...
- Сообщения: 35466
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
- Alex Keda
- стреляли...
- Сообщения: 35466
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
А что exim фаер научился обходить? Как напишешь фаер, так и будет. :-)lissyara писал(а):не. я предлагаю на гейте exim поставить и конфигом разрулить куда слать
Напишешь фаер неправильно, и не туда пакет уйдёт, независимо от настроек exim'а.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
- Alex Keda
- стреляли...
- Сообщения: 35466
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Я так понимаю это наезд? Не сможет exim обойти неправильно настроенный фаер, не сможет.lissyara писал(а):http://www.lissyara.su/?id=1230#interface
копать сюда
У него там фаер голову сломаешь(в смысле сложный и большой достаточно). Он реально просто написал, чтобы можно было понять.
Рекомендую почтовый траф пускать через один канал. Всегда один и тот же.
Как вариант нужно делать 2-е записи MX с одинаковым приоритетом, но разными IP-Адресами. (разных провов)
Ну и разруливать это дело.
На одном нате делать редирект, к примеру: 192.168.1.1
На другом на 192.168.1.2
И повесить exim слушать 2-а интерфейса.
И ещё что-нибудь думать. Может не работать. Т.к. я всё не продумывал, просто идея.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
- Alex Keda
- стреляли...
- Сообщения: 35466
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
- alex3
- лейтенант
- Сообщения: 872
- Зарегистрирован: 2006-11-20 16:47:56
- Откуда: Переславль
- Контактная информация:
вопрос именно про прием (входящая почта). не устанавливается соединение и соответственно smtp сессия.
пробовал так.
что-то в этом духе. не заработало. нат видимо меняет порт.... не выходят пакетики с 25-го порта рутера....
пробовал так.
Код: Выделить всё
divert nat_prov1 tcp from ip_post_local 25 to any
fwd gateway_prov1 from ipprov1 25 to any
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Приём тут не причём вовсе.
Скорее всего у тебя дело обстоит так:
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)
Скорее всего у тебя дело обстоит так:
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
- Откуда: Переславль
- Контактная информация:
сделаноtcpdump на рутере, на cерваке с exim и смотреть что же не так.
А как же он до разборок с маршрутизацией работал? там шлюз по дефолту вообще в локальную горсеть стоял... так что форвардинг работает.P.S. FORWARD_EXTENDED собран на шлюзе? (тот самый что отвечает за fwd)
но все равно - попробую еще раз
[/code]
Если ipfw можно считать речью обычного человека, то pf - речь политика. За каждой ошибкой -ядерный песец.
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
- alex3
- лейтенант
- Сообщения: 872
- Зарегистрирован: 2006-11-20 16:47:56
- Откуда: Переславль
- Контактная информация: