The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Exim. Как исключить домен из маршрутизации."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Почта / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Exim. Как исключить домен из маршрутизации."  +/
Сообщение от zabrat email(ok) on 06-Июл-12, 13:56 
Здравствуйте. Прошу спецов помочь.
В Exim под Freebsd настроена маршрутизация

smarthost:
  driver = manualroute
  transport = remote_smtp
  domains = !+local_domains : !whost.ru : !wwhost.ru
  route_list = \
    * remote.smtp.ru;

т.е. все письма в зоне +local_domains (берется из СУБД) ходят локально, на внешние адреса, вся остальная почта, кроме whost.ru, wwhost.ru ходят через remote.smtp.ru. Все устраивало, но возникла необходимость один локальный хост вынести из этого правила, т.е. в базе +local_domains прописано два хоста lhost.ru и llhost.ru надо чтоб lhost.ru использовал роутер smarthost, а llhost.ru игнорировал его и при маршрутизации использовался только штатный dnslookup. Вот такая проблема.
пробовал

route_list = \
domains = +relay_domains  
lhost.ru remote.smtp.ru;

но если так, то  получается что вся почта с lhost.ru идет через remote.smtp.ru, в том числе и локальная(((
как исключить llhost.ru из отправки на remote.smtp.ru, при этом сохранить локальную маршрутизацию, ломаю голову третий день??    
  

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Exim. Как исключить домен из маршрутизации."  +/
Сообщение от Евгений (??) on 06-Июл-12, 17:37 
>[оверквотинг удален]
> надо чтоб lhost.ru использовал роутер smarthost, а llhost.ru игнорировал его и
> при маршрутизации использовался только штатный dnslookup. Вот такая проблема.
> пробовал
> route_list = \
> domains = +relay_domains
> lhost.ru remote.smtp.ru;
> но если так, то  получается что вся почта с lhost.ru идет
> через remote.smtp.ru, в том числе и локальная(((
> как исключить llhost.ru из отправки на remote.smtp.ru, при этом сохранить локальную маршрутизацию,
> ломаю голову третий день??

Сделайте отдельный роутер сверху для нужного вам домена.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Exim. Как исключить домен из маршрутизации."  +/
Сообщение от zabrat (ok) on 06-Июл-12, 20:49 
> Сделайте отдельный роутер сверху для нужного вам домена.

Спасибо что откликнулись.

Я пробовал так (соответственно в начале маршрутизации прописывал):

smarthost:
  driver = manualroute
  transport = remote_smtp
  domains = +relay_domains
  route_list = \
    lhost.ru remote.smtp.ru;

так получается, что вся исходящая почта с lhost.ru идет через remote.smtp.ru, а остальные домены пропускаются, такой вариант бы устраивал, если бы прописать чтоб с @lhost.ru на @lhost.ru, т.е. локальная почта не ходила бы тоже через remote.smtp.ru, потому как удаленный smtp находится не близко, и если вся почта, в том числе и локальная начнет ходить через него, то канал забъется(.  

Или я что-то не так прописываю?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Exim. Как исключить домен из маршрутизации."  +/
Сообщение от Bosh on 07-Июл-12, 14:47 
smarthost:
  sender_domains = !lhost.ru
  driver = manualroute
  transport = remote_smtp
  domains = +relay_domains
  route_list = lhost.ru remote.smtp.ru;

>[оверквотинг удален]
>   domains = +relay_domains
>   route_list = \
>     lhost.ru remote.smtp.ru;
> так получается, что вся исходящая почта с lhost.ru идет через remote.smtp.ru, а
> остальные домены пропускаются, такой вариант бы устраивал, если бы прописать чтоб
> с @lhost.ru на @lhost.ru, т.е. локальная почта не ходила бы тоже
> через remote.smtp.ru, потому как удаленный smtp находится не близко, и если
> вся почта, в том числе и локальная начнет ходить через него,
> то канал забъется(.
> Или я что-то не так прописываю?

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Exim. Как исключить домен из маршрутизации."  +/
Сообщение от Bosh on 07-Июл-12, 14:52 
Или

acl_smtp_rcpt:
set acl_c_sender_domain = $sender_domains

smarthost:
  condition = ${if !eq {$acl_c_sender_domain}{lhost.ru}}
  driver = manualroute
  transport = remote_smtp
  domains = +relay_domains
  route_list = \
    lhost.ru remote.smtp.ru;

>[оверквотинг удален]
>   domains = +relay_domains
>   route_list = \
>     lhost.ru remote.smtp.ru;
> так получается, что вся исходящая почта с lhost.ru идет через remote.smtp.ru, а
> остальные домены пропускаются, такой вариант бы устраивал, если бы прописать чтоб
> с @lhost.ru на @lhost.ru, т.е. локальная почта не ходила бы тоже
> через remote.smtp.ru, потому как удаленный smtp находится не близко, и если
> вся почта, в том числе и локальная начнет ходить через него,
> то канал забъется(.
> Или я что-то не так прописываю?

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Exim. Как исключить домен из маршрутизации."  +/
Сообщение от zabrat email(ok) on 09-Июл-12, 12:01 

> acl_smtp_rcpt:
> set acl_c_sender_domain = $sender_domains
> smarthost:
>   condition = ${if !eq {$acl_c_sender_domain}{lhost.ru}}
>   driver = manualroute
>   transport = remote_smtp
>   domains = +relay_domains
>   route_list = \
>     lhost.ru remote.smtp.ru;

Спасибо, но не получается предложенными вами способами отправить почту как надо. В первом случае sender_domains неизвестная команда пишет,
а во втором так же с lhost.ru на lhost.ru ходит через remote.smtp.ru(

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Exim. Как исключить домен из маршрутизации."  +/
Сообщение от tux2002 email(ok) on 09-Июл-12, 17:19 
>[оверквотинг удален]
>   domains = +relay_domains
>   route_list = \
>     lhost.ru remote.smtp.ru;
> так получается, что вся исходящая почта с lhost.ru идет через remote.smtp.ru, а
> остальные домены пропускаются, такой вариант бы устраивал, если бы прописать чтоб
> с @lhost.ru на @lhost.ru, т.е. локальная почта не ходила бы тоже
> через remote.smtp.ru, потому как удаленный smtp находится не близко, и если
> вся почта, в том числе и локальная начнет ходить через него,
> то канал забъется(.
> Или я что-то не так прописываю?

smarthost:
   driver = manualroute
   transport = remote_smtp
   domains = lhost.ru    !!!!!!!!!!!!!!!!!1
   route_list = \
     lhost.ru remote.smtp.ru;

Уж это наверняка сработает

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

7. "Exim. Как исключить домен из маршрутизации."  +/
Сообщение от zabrat (ok) on 09-Июл-12, 22:35 
>  smarthost:
>    driver = manualroute
>    transport = remote_smtp
>    domains = lhost.ru    !!!!!!!!!!!!!!!!!1
>    route_list = \
>      lhost.ru remote.smtp.ru;
> Уж это наверняка сработает

Так будет работать

mail# exim -bt admin@lhost.ru admin@mail.ru
admin@lhost.ru
    <-- admin@lhost.ru
  router = smarthost, transport = remote_smtp
  host remote.smtp.ru [192.168.0.1]
admin@mail.ru
    <-- admin@mail.ru
  router = dnslookup, transport = remote_smtp
  host mxs.mail.ru [94.100.176.20]

или

mail# exim -bt admin@lhost.ru user@1host.ru
admin@lhost.ru
    <-- admin@lhost.ru
  router = smarthost, transport = remote_smtp
  host remote.smtp.ru [192.168.0.1]
user@1host.ru
    <-- user@1host.ru
  router = smarthost, transport = remote_smtp
  host remote.smtp.ru [192.168.0.1]

т.е. видно что локальная почта будет ходить через remote.smtp.ru
единственно что получилось на сегодня, это при конфиге

smarthost:
  driver = manualroute
# domains = +relay_to_domains
  domains = !+local_domains
  transport = remote_smtp
  route_list = * remote.smtp.ru;

получаем

mail# exim -bt admin@lhost.ru admin@mail.ru
admin@lhost.ru
    <-- admin@lhost.ru
  router = dovecot_user, transport = dovecot_delivery
admin@mail.ru
  router = smarthost, transport = remote_smtp
  host remote.smtp.ru [192.168.0.1]

или

mail# exim -bt admin@lhost.ru user@lhost.ru
admin@lhost.ru
    <-- admin@lhost.ru
  router = dovecot_user, transport = dovecot_delivery
user@lhost.ru
    <-- user@lhost.ru
   router = dovecot_user, transport = dovecot_delivery

т.е. локальная почта не покидает локальную сеть, тут все норм, но

mail# exim -bt admin@2host.ru admin@mail.ru
admin@2host.ru
    <-- admin@2host.ru
  router = dovecot_user, transport = dovecot_delivery
admin@mail.ru
    <-- admin@mail.ru
  router = smarthost, transport = remote_smtp
  host remote.smtp.ru [192.168.0.1]

такой вариант не устраивает, нужно чтоб

mail# exim -bt admin@2host.ru admin@mail.ru
admin@2host.ru
    <-- admin@2host.ru
  router = dovecot_user, transport = dovecot_delivery
    <-- admin@mail.ru
  router = dnslookup, transport = remote_smtp
  host mxs.mail.ru [94.100.176.20]

вообщем чтоб @1host.ru в мир через smarthost
            @2host.ru в мир через dnslookup
,а  @1host.ru на @1host.ru, @2host.ru и  обратно через dovecot_user

я уже не знаю... пробовал по разному, но...(((


Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Exim. Как исключить домен из маршрутизации."  +/
Сообщение от tux2002 email(ok) on 10-Июл-12, 16:16 
      
> @2host.ru в мир через dnslookup
> ,а  @1host.ru на @1host.ru, @2host.ru и  обратно через dovecot_user
> я уже не знаю... пробовал по разному, но...(((

Я твою простынку не читал ;) но уж понятно пусть всё идёт серез dnslookup, а перед dnslookup поставь жёсткий роутер с domains = 1host.ru и no_more и что тебе нужно.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Exim. Как исключить домен из маршрутизации."  +/
Сообщение от zabrat (ok) on 10-Июл-12, 20:56 
> Я твою простынку не читал ;) но уж понятно пусть всё идёт
> серез dnslookup, а перед dnslookup поставь жёсткий роутер с domains =
> 1host.ru и no_more и что тебе нужно.

ну вообщем получилось как надо

smarthost:
  driver = manualroute
  domains = !+local_domains
  transport = remote_smtp
  condition = ${if match{$sender_address_domain}{1host.ru}{yes} {no}}
  route_list = * remote.smtp.ru;

локальная почта не покидает локальную сеть, в мир с 1host.ru через remote.smtp.ru, все остальные локальные хосты через dns, кстати через такой роутер можно любой локальный хост отправить в мир через свой удаленный smtp;)


Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Exim. Как исключить домен из маршрутизации."  +/
Сообщение от Andrey Mitrofanov on 10-Июл-12, 21:15 
> локальная почта не покидает локальную сеть, в мир с 1host.ru через remote.smtp.ru,
> все остальные локальные хосты через dns

В spec.txt это [почти] выглядит так:

hub_route:
  driver = manualroute
  transport = remote_smtp
  route_list = *.rhodes.tvs.example  $domain

В дебиановском exim4-config вот так:

# see exim4-config_files(5) and spec.txt chapter 20.3 through 20.7 for
# more detailed documentation.

hubbed_hosts:
  debug_print = "R: hubbed_hosts for $domain"
  driver = manualroute
  domains = "${if exists{CONFDIR/hubbed_hosts}\
                   {partial-lsearch;CONFDIR/hubbed_hosts}\
              fail}"
  same_domain_copy_routing = yes
  route_data = ${lookup{$domain}partial-lsearch{CONFDIR/hubbed_hosts}}
  transport = remote_smtp


>, кстати через такой роутер можно
> любой локальный хост отправить в мир через свой удаленный smtp;)

Это называется smarthost. spec.txt:

smart_route:
  driver = manualroute
  domains = !+local_domains
  transport = remote_smtp
  route_list = * smarthost.ref.example


exim4-config:

smarthost:
  debug_print = "R: smarthost for $local_part@$domain"
  driver = manualroute
  domains = ! +local_domains
  transport = remote_smtp_smarthost
  route_list = * DCsmarthost byname
  host_find_failed = defer
  same_domain_copy_routing = yes
  no_more


Это если вдруг кому нечего почитать будет.

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру