The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Проблема в тестировании маршрута в Exim-е., !*! korbnik, 01-Авг-17, 10:49  [смотреть все]
Есть два хоста relay1.domain.ru и relay2.domain.ru - на них крутится EXIM:
Они друг друга дублируют. Если один выйдет из строя,
другой работает, обеспечивая отказоустойчивость.

Версия EXIM и там и там:   Exim version 4.77 #2 built 29-Oct-2011 09:18:27

Разница в конфигурациях exim-а только в названии имени хоста и в интерфейсе (ну, это понятно)

diff relay2:/etc/exim/exim.conf relay1:/etc/exim/exim.conf

49,50c49,50
< primary_hostname = relay2.domain.ru
< log_file_path = /var/log/exim/%slog : syslog
---
> primary_hostname = relay1.domain.ru
> log_file_path = /var/log/exim/%slog

622c622
<   interface = <; 10.1.10.8
---
>   interface = <; 10.1.10.2 ; 10.1.10.5

Когда я тестирую маршрут доставки до указанного адреса,
то на первом хосте вот что выдаёт:

[root@relay1 exim]# exim -bt user@domain.ru
LOG: MAIN
  lowest numbered MX record points to local host: domain.ru (while routing <user@domain.ru>)
user@domain.ru cannot be resolved at this time: lowest numbered MX record points to local host

а на втором хосте выдаёт нормально:

[root@relay2 exim]# exim -bt user@domain.ru
user@domain.ru
  router = dnslookup, transport = remote_smtp
  host relay1.domain.ru [10.1.10.2]  MX=10
  host relay0.domain.ru [10.1.10.30] MX=20

В ЧЁМ МОЖЕТ БЫТЬ ПРОБЛЕМА?

Подскажите, пожалуйста.


Сетевые службы на первом:

[root@relay1 exim]# netstat -ntulp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name  
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      23359/zabbix_agentd
tcp        0      0 0.0.0.0:514                 0.0.0.0:*                   LISTEN      17517/rsyslogd      
tcp        0      0 10.1.10.5:53                0.0.0.0:*                   LISTEN      31440/named        
tcp        0      0 10.1.10.2:53                0.0.0.0:*                   LISTEN      31440/named        
tcp        0      0 127.0.0.1:53                0.0.0.0:*                   LISTEN      31440/named        
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1715/sshd          
tcp        0      0 0.0.0.0:25                  0.0.0.0:*                   LISTEN      31861/exim          
tcp        0      0 127.0.0.1:953               0.0.0.0:*                   LISTEN      31440/named        
udp        0      0 0.0.0.0:514                 0.0.0.0:*                               17517/rsyslogd      
udp        0      0 0.0.0.0:162                 0.0.0.0:*                               1696/snmptrapd      
udp        0      0 10.1.10.5:53                0.0.0.0:*                               31440/named        
udp        0      0 10.1.10.2:53                0.0.0.0:*                               31440/named        
udp        0      0 127.0.0.1:53                0.0.0.0:*                               31440/named        
udp        0      0 10.1.10.5:123               0.0.0.0:*                               2480/ntpd          
udp        0      0 10.1.10.2:123               0.0.0.0:*                               2480/ntpd          
udp        0      0 127.0.0.1:123               0.0.0.0:*                               2480/ntpd          
udp        0      0 0.0.0.0:123                 0.0.0.0:*                               2480/ntpd          

и сетевые службы на втором:

[root@relay2 exim]# netstat -ntulp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name  
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      12587/zabbix_agentd
tcp        0      0 10.1.10.8:53                0.0.0.0:*                   LISTEN      14526/named        
tcp        0      0 127.0.0.1:53                0.0.0.0:*                   LISTEN      14526/named        
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      18969/sshd          
tcp        0      0 0.0.0.0:25                  0.0.0.0:*                   LISTEN      2458/exim          
tcp        0      0 127.0.0.1:953               0.0.0.0:*                   LISTEN      14526/named        
udp        0      0 0.0.0.0:514                 0.0.0.0:*                               28687/rsyslogd      
udp        0      0 0.0.0.0:162                 0.0.0.0:*                               1713/snmptrapd      
udp        0      0 10.1.10.8:53                0.0.0.0:*                               14526/named        
udp        0      0 127.0.0.1:53                0.0.0.0:*                               14526/named        
udp        0      0 10.1.10.8:123               0.0.0.0:*                               8948/ntpd          
udp        0      0 127.0.0.1:123               0.0.0.0:*                               8948/ntpd          
udp        0      0 0.0.0.0:123                 0.0.0.0:*                               8948/ntpd          

Заренее благодарен. Борис.

  • Проблема в тестировании маршрута в Exim-е., !*! Andrey Mitrofanov, 11:44 , 01-Авг-17 (1)
    https://github.com/Exim/exim/wiki/Q0301

      + у меня на Debian-е в дистрибутивном конфиге оно в CONFIG/hubbed_hosts

    https://wiki.debian.org/PkgExim4UserFAQ#What_do_.22lowest_nu...

    ///


    >[оверквотинг удален]
    > Они друг друга дублируют. Если один выйдет из строя,
    > другой работает, обеспечивая отказоустойчивость.
    > Когда я тестирую маршрут доставки до указанного адреса,
    > то на первом хосте вот что выдаёт:
    > [root@relay1 exim]# exim -bt user@domain.ru
    > LOG: MAIN
    >   lowest numbered MX record points to local host: domain.ru (while
    > routing <user@domain.ru>)
    > user@domain.ru cannot be resolved at this time: lowest numbered MX record points
    > to local host

    Мммм... Ну, он обнаружил, что ему сказали роутить на него самого -- и недоумевает "чего-чего? куда-куда??".  Подумайте сами: это же странно слать принимаемую почту самому себе (по smtp), ведь её, по логике -- и конфигурации, снова придётся слать себе и дальше по кругу (до истечения loop-счётчикоов~).

    Подозреваю, на релеях д.б. отдельные и явные правила доставки для "своих"/локальных доменов ... Пошёл в поиск---^^^^ нашёлся FAQ....

    > а на втором хосте выдаёт нормально:
    > [root@relay2 exim]# exim -bt user@domain.ru
    > user@domain.ru
    >   router = dnslookup, transport = remote_smtp
    >   host relay1.domain.ru [10.1.10.2]  MX=10
    >   host relay0.domain.ru [10.1.10.30] MX=20

    Не смотря на то, что, казалось бы с такими MX-ами надо/можно слать на оба релея, говорят -- слыхала я ТМ, что в RFC написано, что слать надо на "первый", а на второй _только_ при отсутствии связи с первым.

    > В ЧЁМ МОЖЕТ БЫТЬ ПРОБЛЕМА?

    Ну-у-у-у.... Почта не доходит?!

  • Проблема в тестировании маршрута в Exim-е., !*! ПавелС, 10:44 , 03-Авг-17 (2)
    >[оверквотинг удален]
    >>   interface = <; 10.1.10.2 ; 10.1.10.5
    > Когда я тестирую маршрут доставки до указанного адреса,
    > то на первом хосте вот что выдаёт:
    > [root@relay1 exim]# exim -bt user@domain.ru
    > LOG: MAIN
    >   lowest numbered MX record points to local host: domain.ru (while
    > routing <user@domain.ru>)
    > user@domain.ru cannot be resolved at this time: lowest numbered MX record points
    > to local host
    > а на втором хосте выдаёт нормально:

    А если быть внимательным, то relay2 и его IP нет среди MX записей.

    > [root@relay2 exim]# exim -bt user@domain.ru
    > user@domain.ru
    >   router = dnslookup, transport = remote_smtp
    >   host relay1.domain.ru [10.1.10.2]  MX=10
    >   host relay0.domain.ru [10.1.10.30] MX=20

    А почему собственно на релее срабатывает роутер dnslookup причем для локального домена? Этот роутер срабатывает на отправку на чужие домены. Куда в конечном итоге должна попадать почта для @domain.ru?

    >[оверквотинг удален]
    >            
    >            
    >      8948/ntpd
    > udp        0    
    >   0 0.0.0.0:123        
    >          0.0.0.0:*  
    >            
    >            
    >        8948/ntpd
    > Заренее благодарен. Борис.

    • Проблема в тестировании маршрута в Exim-е., !*! korbnik, 15:22 , 04-Авг-17 (3)

      > А почему собственно на релее срабатывает роутер dnslookup причем для локального домена?
      > Этот роутер срабатывает на отправку на чужие домены. Куда в конечном
      > итоге должна попадать почта для @domain.ru?

      А вот это я сам не понимаю, почему.
      Вот часть конфига по роутерам.

      Здесь я организую переменную acl_c5
      для того чтобы в зависимости от отправителя посылать сообщение по разному каналу:

      ####################

      warn set acl_c5 = ${eval:0}

      warn  message = Alt user
            domains = !+local_domains
            condition = ${if eq {${lookup{$sender_address_domain}lsearch{/etc/exim/sender_domain_alt}}}{yes}}
            set acl_c5 = ${eval:1}

      ####################

      begin routers

      my_router:
        driver = manualroute
        transport = remote_smtp
        domains = ! +local_domains
        hosts_randomize = false
        host_find_failed = pass
        route_list = \
              domain.ru                 10.1.10.140     ; \
              reg.domain.ru             10.1.10.140     ; \
              nvs.domain.ru             10.1.10.140     ; \
              krasnodar.domain.ru       10.1.10.140     ; \
              samara.domain.ru          10.1.10.140     ; \
              spb.domain.ru             10.1.10.140     ; \
              nft.domain.ru             10.1.10.140     ; \
              gbk.domain.ru             10.1.10.140     ; \
              subdomain.ru              10.50.1.14      ; \
              *                       10.1.10.31:10.1.10.32 randomize
        condition = ${if eq {$acl_c5}{0}{1}{0}}
        no_more

      my_router_alt:
        driver = manualroute
        transport = remote_smtp
        domains = ! +local_domains
        route_list = \
              domain.ru                 10.1.10.130     ; \
              nvs.domain.ru             10.1.10.130     ; \
              krasnodar.domain.ru       10.1.10.130     ; \
              samara.domain.ru          10.1.2.14       ; \
              spb.domain.ru             10.1.10.130     ; \
              *                        10.1.10.31:10.1.10.32 randomize
        condition = ${if eq {$acl_c5}{1}{1}{0}}
        no_more

      dnslookup:
        driver = dnslookup
        domains = ! +local_domains
        transport = remote_smtp
        ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
        no_more

      system_aliases:
        driver = redirect
        allow_fail
        allow_defer
        data = ${lookup{$local_part}lsearch{/etc/aliases}}
        user = exim
        file_transport = address_file
        pipe_transport = address_pipe

      userforward:
        driver = redirect
        check_local_user
        file = $home/.forward
        no_verify
        no_expn
        check_ancestor
        file_transport = address_file
        pipe_transport = address_pipe
        reply_transport = address_reply
        condition = ${if exists{$home/.forward} {yes} {no} }

      localuser:
        driver = accept
        check_local_user
        transport = local_delivery

      • Проблема в тестировании маршрута в Exim-е., !*! ПавелС, 16:32 , 04-Авг-17 (4)
        Я бы переписал роутеры в такой последовательности без использования переменной:

        my_router_alt:
          driver = manualroute
          transport = remote_smtp
          domains = ! +local_domains
          route_list = \
                domain.ru                 10.1.10.130     ; \
                nvs.domain.ru             10.1.10.130     ; \
                krasnodar.domain.ru       10.1.10.130     ; \
                samara.domain.ru          10.1.2.14       ; \
                spb.domain.ru             10.1.10.130     ; \
                *                        10.1.10.31:10.1.10.32 randomize
          condition = ${if eq {${lookup{$sender_address_domain}lsearch{/etc/exim/sender_domain_alt}}}{yes}}
          no_more

        my_router:
          driver = manualroute
          transport = remote_smtp
          domains = ! +local_domains
          hosts_randomize = false
          host_find_failed = pass
          route_list = \
                domain.ru                 10.1.10.140     ; \
                reg.domain.ru             10.1.10.140     ; \
                nvs.domain.ru             10.1.10.140     ; \
                krasnodar.domain.ru       10.1.10.140     ; \
                samara.domain.ru          10.1.10.140     ; \
                spb.domain.ru             10.1.10.140     ; \
                nft.domain.ru             10.1.10.140     ; \
                gbk.domain.ru             10.1.10.140     ; \
                subdomain.ru              10.50.1.14      ; \
                *                       10.1.10.31:10.1.10.32 randomize
          no_more

        exim -bt не знает домен отправителя, но так без переменной сработает второй точно.




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

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