The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Postfix: Temporary lookup failure"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"Postfix: Temporary lookup failure"  
Сообщение от lehase email(ok) on 24-Фев-09, 13:55 
Добрый день!
Система FreeBSD 6.2-RELEASE
Почтовик postfix-current-2.6.20090125,4 из портов.
в один из суровых дней, когда в Финляндии перерубили оптоволоконный канал на Европу, посыпались проблемы с провайдерским DNS'ом. и все бы ничего, но Postfix начал в очень маленьком проценте писем давать отлуп пользователям, ссылаясь на то, что не может определить куда деть письмо. (Большинство писем отправляются нормально).
Выглядит это примерно так:
Feb 24 12:44:58 proliantx postfix/smtpd[26456]: connect from unknown[192.168.0.56]
Feb 24 12:44:58 proliantx postfix/smtpd[26456]: BA6682885B: client=unknown[192.168.0.56]
Feb 24 12:45:02 proliantx postfix/smtpd[26456]: disconnect from unknown[192.168.0.56]
Feb 24 12:45:43 proliantx postfix/smtpd[26456]: connect from unknown[192.168.0.17]
Feb 24 12:45:43 proliantx postfix/smtpd[26456]: warning: SASL authentication failure: realm changed: authentication aborted
Feb 24 12:45:43 proliantx postfix/smtpd[26456]: warning: unknown[192.168.0.17]: SASL DIGEST-MD5 authentication failed: authentication failure
Feb 24 12:45:43 proliantx postfix/smtpd[26456]: NOQUEUE: reject: RCPT from unknown[192.168.0.17]: 451 4.3.0 <rvi@ctc-motors.ru>: Temporary lookup failure; from=<rvi@ctc-motors.ru> to=<kuznetsova@kelin.ru> proto=ESMTP helo=<WS383>
Feb 24 12:45:45 proliantx postfix/smtpd[26456]: disconnect from unknown[192.168.0.17]

Помогает либо
#postfix stop
#postfix start

Что понятное дело - не вариант, либо (иногда) перезапуск почтового клиента.

Конфигурация postfix:
[root@proliantx /home/phoenix]# postconf -n
address_verify_sender = <>
alias_database = hash:/etc/mail/aliases
alias_maps = hash:/etc/mail/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
debug_peer_list = 127.0.0.1, ctc-motors.ru, ctc-c.ru, umgb.ru
default_privs = nobody
disable_vrfy_command = yes
header_checks = regexp:$base/header_checks
html_directory = no
inet_interfaces = all
local_recipient_maps = $virtual_mailbox_maps, $virtual_alias_maps, $alias_maps
mail_owner = postfix
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
message_size_limit = 31457280
mydestination = $myhostname, localhost
mydomain = ctc-motors.ru
myhostname = ctc-c.ru
mynetworks = 192.168.0.0/24, 127.0.0.0/8
mynetworks_style = subnet
myorigin = $mydomain
newaliases_path = /usr/local/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
recipient_delimiter = +
sample_directory = /usr/local/etc/postfix
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop
show_user_unknown_table_name = no
smtp_always_send_ehlo = yes
smtp_helo_timeout = 60s
smtp_mail_timeout = 60s
smtp_rcpt_timeout = 90s
smtpd_banner = $myhostname ESMTP
smtpd_client_restrictions = permit_mynetworks,                          permit_sasl_authenticated,
check_client_access hash:$base/client_access,                                reject_unknown_client
smtpd_etrn_restrictions = reject
smtpd_hard_error_limit = 8
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks,
check_helo_access hash:$base/hello_access,
reject_invalid_hostname,
reject_non_fqdn_hostname

smtpd_recipient_restrictions = permit_mynetworks,                              
permit_sasl_authenticated,
permit_auth_destination,
check_sender_access hash:$base/sender_access,                          
check_recipient_access hash:$base/recipient_access,                                
reject_unauth_destination,
reject_unlisted_recipient,
reject_unknown_recipient_domain,
reject_non_fqdn_recipient,
reject_unverified_recipient

smtpd_reject_unlisted_sender = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sender_restrictions = permit_mynetworks,                          
permit_sasl_authenticated,
check_sender_access hash:$base/sender_access,                                
reject_unknown_sender_domain,                                
reject_unlisted_sender,                                
reject_unverified_sender

smtpd_timeout = 120s
strict_rfc821_envelopes = yes
transport_maps = mysql:$base/mysqlLookupMaps/transport.conf
unknown_local_recipient_reject_code = 550
virtual_alias_maps = mysql:$base/mysqlLookupMaps/alias.conf
virtual_gid_maps = static:1981
virtual_mailbox_base = /var/spool/mail
virtual_mailbox_domains = mysql:$base/mysqlLookupMaps/domain.conf
virtual_mailbox_maps = mysql:$base/mysqlLookupMaps/mailbox.conf
virtual_minimum_uid = 1000
virtual_uid_maps = static:1981

[root@proliantx /home/phoenix]# cat /etc/resolv.conf
options         timeout:4 attempts:3
domain  ctc-motors.ru
nameserver      127.0.0.1

DNS - Кэширующий Bind (Собственно здесь, как мне кажется основная проблема)
хотя не помогали подстановки провайдерских DNS'ов или DNS'а внутри сети.

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

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


1. "Postfix: Temporary lookup failure"  
Сообщение от Michael (??) on 24-Фев-09, 14:30 
>Помогает либо
> #postfix stop
> #postfix start

подозреваю, что исчерпано количество допустимых соединений с mysql

в студию в момент возникновения ошибки
mysql> show status;
особенно интересует строчка Aborted_connects
и еще
show variables like '%connections'
и заодно уж
cat postfix/main.cf | grep smtp

ps uawx -U postfix | grep smtp | wc -l

если я прав, то my.cnf нужно прописать соответсвующее значение, по дефолту 100, увеличивайте на 50 до тех пор, пока проблема не исчезнет и накиньте еще 50 как запас

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Postfix: Temporary lookup failure"  
Сообщение от lehase email(ok) on 24-Фев-09, 15:29 
>в студию в момент возникновения ошибки

Попробую отловить, к сожалению, периодичность возникновения ошибки не велика.

>mysql> show status;
>особенно интересует строчка Aborted_connects

Aborted_connects                  | 75  

>и еще
>show variables like '%connections'

max_connections      | 151  
max_user_connections | 0    

>и заодно уж
>cat postfix/main.cf | grep smtp

smtpd_banner = $myhostname ESMTP
smtpd_helo_restrictions =       permit_mynetworks,
smtpd_sender_restrictions =     permit_mynetworks,
smtpd_recipient_restrictions =  permit_mynetworks,
smtpd_client_restrictions =     permit_mynetworks,
smtpd_etrn_restrictions = reject
smtpd_reject_unlisted_sender = yes
smtpd_helo_required = yes
smtp_always_send_ehlo = yes
smtpd_hard_error_limit = 8
smtpd_timeout = 120s
smtp_helo_timeout = 60s
smtp_mail_timeout = 60s
smtp_rcpt_timeout = 90s
smtpd_sasl_auth_enable = yes
smtpd_sasl_application_name = smtpd
smtpd_sasl_security_options = noanonymous


>ps uawx -U postfix | grep smtp | wc -l
>

27


>если я прав, то my.cnf нужно прописать соответсвующее значение, по дефолту 100,
>увеличивайте на 50 до тех пор, пока проблема не исчезнет и
>накиньте еще 50 как запас

max_connections = 300 поставил

Спасибо за совет!!! судя по всему действительно мускуль выделывался.
Отпишусь как будет себя вести.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Postfix: Temporary lookup failure"  
Сообщение от Michael (??) on 24-Фев-09, 16:45 

>[оверквотинг удален]
>smtpd_helo_required = yes
>smtp_always_send_ehlo = yes
>smtpd_hard_error_limit = 8
>smtpd_timeout = 120s
>smtp_helo_timeout = 60s
>smtp_mail_timeout = 60s
>smtp_rcpt_timeout = 90s
>smtpd_sasl_auth_enable = yes
>smtpd_sasl_application_name = smtpd
>smtpd_sasl_security_options = noanonymous

добавьте сюда
smtpd_client_connection_count_limit = 3
smtpd_client_connection_rate_limit = 10

цифры только под себя подгоните, чтобы не резать легитимную корреспонденцию

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Postfix: Temporary lookup failure"  
Сообщение от lehase email(ok) on 24-Фев-09, 16:51 

>добавьте сюда

Поставил
smtpd_client_connection_count_limit = 10
smtpd_client_connection_rate_limit = 30

Ждем результатов :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Postfix: Temporary lookup failure"  
Сообщение от lehase email(ok) on 24-Фев-09, 15:46 
>в студию в момент возникновения ошибки
>mysql> show status;

После установки max_connections = 300

Aborted_clients                   | 56


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Postfix: Temporary lookup failure"  
Сообщение от Michael (??) on 24-Фев-09, 16:35 
>>в студию в момент возникновения ошибки
>>mysql> show status;
>
>После установки max_connections = 300
>
>Aborted_clients            
>       | 56

это не страшно
Aborted_clients
The number of connections that were aborted because the client died without closing the connection properly

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Postfix: Temporary lookup failure"  
Сообщение от lehase email(ok) on 24-Фев-09, 16:46 

>это не страшно

Страшно то, что проблема осталась.

Интересный момент:

Хотя Temporary lookup failure - насколько я понимаю, ошибка определения места назначения, точнее его ip, должно пройти хотя бы какое-то время. но в любом почтовом клиенте этот ответ от сервера приходит моментально. такое ощущение, что он даже не пытается провести этот самый lookup.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Postfix: Temporary lookup failure"  
Сообщение от Michael (??) on 24-Фев-09, 16:47 
>
>>это не страшно
>
>Страшно то, что проблема осталась.
>

смотрите лог ошибок mysql. лежит в каталоге с данными


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Postfix: Temporary lookup failure"  
Сообщение от lehase email(ok) on 24-Фев-09, 17:39 
>смотрите лог ошибок mysql. лежит в каталоге с данными

[root@proliantx /usr/local/var/db/mysql]# cat /usr/local/var/db/mysql/proliantx.ctc-motors.ru.err | grep 090224
090224 15:15:22 [Note] /usr/local/libexec/mysqld: Normal shutdown
090224 15:15:25  InnoDB: Starting shutdown...
090224 15:15:27  InnoDB: Shutdown completed; log sequence number 0 107356551
090224 15:15:27 [Note] /usr/local/libexec/mysqld: Shutdown complete
090224 15:15:27 mysqld_safe mysqld from pid file /usr/local/var/db/mysql/proliantx.ctc-motors.ru.pid ended
090224 15:15:29 mysqld_safe Starting mysqld daemon with databases from /usr/local/var/db/mysql
090224 15:15:29  InnoDB: Started; log sequence number 0 107356551
090224 15:15:29 [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
090224 15:15:29 [ERROR] Column count of mysql.event is wrong. Expected 22, found 16. Created with MySQL 50114, now running 50122. Please use mysql_upgrade to fix this error.
090224 15:15:29 [ERROR] Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler.
090224 15:15:29 [Note] /usr/local/libexec/mysqld: ready for connections.

Выполнил mysql_upgrade

090224 16:45:08 [Note] /usr/local/libexec/mysqld: Normal shutdown
090224 16:45:10  InnoDB: Starting shutdown...
090224 16:45:12  InnoDB: Shutdown completed; log sequence number 0 107356561
090224 16:45:12 [Note] /usr/local/libexec/mysqld: Shutdown complete
090224 16:45:12 mysqld_safe mysqld from pid file /usr/local/var/db/mysql/proliantx.ctc-motors.ru.pid ended
090224 16:45:14 mysqld_safe Starting mysqld daemon with databases from /usr/local/var/db/mysql
090224 16:45:14  InnoDB: Started; log sequence number 0 107356561
090224 16:45:14 [Note] Event Scheduler: Loaded 0 events
090224 16:45:14 [Note] /usr/local/libexec/mysqld: ready for connections.
090224 17:22:23 [Note] /usr/local/libexec/mysqld: Normal shutdown
090224 17:22:23 [Note] Event Scheduler: Purging the queue. 0 events
090224 17:22:25  InnoDB: Starting shutdown...
090224 17:22:26  InnoDB: Shutdown completed; log sequence number 0 107356561
090224 17:22:26 [Note] /usr/local/libexec/mysqld: Shutdown complete
090224 17:22:26 mysqld_safe mysqld from pid file /usr/local/var/db/mysql/proliantx.ctc-motors.ru.pid ended
090224 17:22:27 mysqld_safe Starting mysqld daemon with databases from /usr/local/var/db/mysql
090224 17:22:27  InnoDB: Started; log sequence number 0 107356561
090224 17:22:27 [Note] Event Scheduler: Loaded 0 events
090224 17:22:27 [Note] /usr/local/libexec/mysqld: ready for connections.


Перезагрузка mysql не помогает, т.е. походу дела проблема всетаки в самом postfix'e
возникает примерно через 30-40 минут после нормальной работы.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Postfix: Temporary lookup failure"  
Сообщение от LS (ok) on 25-Фев-09, 03:21 
>Интересный момент:
>
>Хотя Temporary lookup failure - насколько я понимаю, ошибка определения места назначения,
>точнее его ip, должно пройти хотя бы какое-то время. но в
>любом почтовом клиенте этот ответ от сервера приходит моментально. такое ощущение,
>что он даже не пытается провести этот самый lookup.

это означает, что postfix не смог нормально в данный момент обработать данные из внешнего источника - будь то хеш-файл, БД итд. поскольку у Вас все похоже в мускуле, то ответ напрашивается сам - дело именно в настройках сервера/базы, которая не успевает обслуживать postfix. если он при соединении к БД сразу отлуп получил, то естественно он там посмотреть ничего не сможет и будет ощущение "что он даже не пытается провести этот самый lookup"

PS максимальное количество соединений, которое мускул принимает - это еще далеко не все. советую доки почитать на mysql.org и с буферами поиграться. к сожалению конкретного решения сейчас выдать не могу - давно мускул за вымя не трогал.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "Postfix: Temporary lookup failure"  
Сообщение от lehase email(ok) on 25-Фев-09, 14:25 
>это означает, что postfix не смог нормально в данный момент обработать данные
>из внешнего источника - будь то хеш-файл, БД итд.

Действительно включил расширенный лог:
090225 11:00:56 [Warning] Aborted connection 61 to db: 'postfix' user: 'postfix' host: 'localhost' (Got an error reading communication packets)

и в том же духе пошло поехало.
как это лечится нигде не было током написано, решил обновить порты MySQL server и client'a.
Что-то не помогло.
Пытался вкурить: http://dev.mysql.com/doc/refman/5.1/en/communication-errors....

Значения переменных нормальные.
| connect_timeout            | 30    |
| delayed_insert_timeout     | 300   |
| interactive_timeout        | 28800 |
| wait_timeout               | 28800 |

Причем странно то, что описываются проблемы с подключениями, а postfix и mysql стоят на одном хосте.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "Postfix: Temporary lookup failure"  
Сообщение от ALex_hha (??) on 26-Фев-09, 20:21 
> transport_maps = mysql:$base/mysqlLookupMaps/transport.conf

закоментировать вообще, если у вас нет никакого релея.

Как вариант посмотреть в сторону http://www.postfix.org/proxymap.8.html

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "Postfix: Temporary lookup failure"  
Сообщение от lehase email(ok) on 28-Фев-09, 19:57 
>> transport_maps = mysql:$base/mysqlLookupMaps/transport.conf
>
>закоментировать вообще, если у вас нет никакого релея.

Всем спасибо за ответы, что-то помогло, но сказать сложно. Пробовал уже все подряд.
На вскидку заработало после полной пересборки mysql-server, mysql-client, apache22 (тоже иногда с мусклем общался), проверкой всех таблиц, очисткой от мусора, сокращиением числа одновременно запущенных процессов smtpd. Возможно сейчас что-то упустил из виду, но уже 3 дня полет нормальный!


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

14. "Postfix: Temporary lookup failure"  
Сообщение от LS email(ok) on 01-Мрт-09, 23:13 
>>> transport_maps = mysql:$base/mysqlLookupMaps/transport.conf
>>
>>закоментировать вообще, если у вас нет никакого релея.
>
>Всем спасибо за ответы, что-то помогло, но сказать сложно. Пробовал уже все
>подряд.
>На вскидку заработало после полной пересборки mysql-server, mysql-client, apache22 (тоже иногда с
>мусклем общался), проверкой всех таблиц, очисткой от мусора, сокращиением числа одновременно
>запущенных процессов smtpd. Возможно сейчас что-то упустил из виду, но уже
>3 дня полет нормальный!

с обновленными портами заработало? или все же старые вернул и сделал то что в данном посте?

ЗЫ сдается мне все же дело в "сокращиением числа одновременно запущенных процессов smtpd" - так , что это не нормальное решение проблемы.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

16. "Postfix: Temporary lookup failure"  
Сообщение от LS email(ok) on 01-Мрт-09, 23:58 
>>> transport_maps = mysql:$base/mysqlLookupMaps/transport.conf
>>
>>закоментировать вообще, если у вас нет никакого релея.
>
>Всем спасибо за ответы, что-то помогло, но сказать сложно. Пробовал уже все
>подряд.
>На вскидку заработало после полной пересборки mysql-server, mysql-client, apache22 (тоже иногда с
>мусклем общался), проверкой всех таблиц, очисткой от мусора, сокращиением числа одновременно
>запущенных процессов smtpd. Возможно сейчас что-то упустил из виду, но уже
>3 дня полет нормальный!

не  - разобраться надо. дай версию постфикса и версию мускула. дай тип движка, который для таблиц в мускуле пользуешь (innodb-таблицы есть?).

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

18. "Postfix: Temporary lookup failure"  
Сообщение от lehase email(ok) on 02-Мрт-09, 11:42 
>не  - разобраться надо. дай версию постфикса и версию мускула. дай
>тип движка, который для таблиц в мускуле пользуешь (innodb-таблицы есть?).

hosts = localhost - что есть соединение через UNIX Socket

pkg_info | grep postfix
postfix-current-2.6.20090212,4 A secure alternative to widely-used Sendmail

pkg_info | grep mysql
mysql-client-5.1.30 Multithreaded SQL database (client)
mysql-server-5.1.30 Multithreaded SQL database (server)

Все таблицы postfix'a - MyISAM

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

15. "Postfix: Temporary lookup failure"  
Сообщение от LS email(ok) on 01-Мрт-09, 23:22 
>[оверквотинг удален]
>| connect_timeout          
> | 30    |
>| delayed_insert_timeout     | 300   |
>| interactive_timeout        | 28800 |
>
>| wait_timeout          
>    | 28800 |
>
>Причем странно то, что описываются проблемы с подключениями, а postfix и mysql
>стоят на одном хосте.

а как постфикс к БД лезет - ч/з 127.x.x.x?

[добавил]
прочухал просмотрев в очередной раз пост.

localhost и в африке localhost. соединение по tcp/ip к БД твое происходит, следовательно все "кривые" которые сделаны в настройках сетевых сервисов здесь могут проявиться. но твоя ошибка вряд ли вызвана этим. это просто ответ на вопрос о "Причем странно то, что описываются проблемы с подключениями, а postfix и mysql стоят на одном хосте".

в линухе существует еще способ подключения ч/з сокет, т.е. фактически ч/з локальные потоки обмен данными идет. в БСД такой механизм есть (это мне просто ради интереса)?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

17. "Postfix: Temporary lookup failure"  
Сообщение от Stonecold email on 02-Мрт-09, 10:38 
>localhost и в африке localhost. соединение по tcp/ip к БД твое происходит,
>следовательно все "кривые" которые сделаны в настройках сетевых сервисов здесь могут
>проявиться. но твоя ошибка вряд ли вызвана этим. это просто ответ
>на вопрос о "Причем странно то, что описываются проблемы с подключениями,
>а postfix и mysql стоят на одном хосте".
>
>в линухе существует еще способ подключения ч/з сокет, т.е. фактически ч/з локальные
>потоки обмен данными идет. в БСД такой механизм есть (это мне
>просто ради интереса)?

есть. более того, даже если не указывать в постфиксе подключение конкретно через сокет, а просто указать hosts = localhost, он будет подключаться через стандартный сокет, а не tcp (а вот если указать 127,0,0,1 - то по tcp). http://www.postfix.org/mysql_table.5.html

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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