Лечим 504 в ответ на xexch50
Зачастую видим во входящей ESMTP сессии глагол xexch50 в адрес нашего сервера. При этом результат отрицательный – 504 (для общения через глагол xexch50 требуется предварительная авторизация. Предполагается, что оба сервера принадлежат одной exchange организации). Попробуем “вылечить” наши сервера.
Исключаем XEXCH50 из исходящих SMTP сессий
Для начала следует научить свой собственный SMTP не использовать xexch50 в исходящих сессиях. Смотрим статью http://support.microsoft.com/kb/843106 по данному вопросу. Повторять сам рецепт не буду – там подробно.
Но не все такие внимательные. Поэтому для решения проблемы с xexch50 во входящих сессиях мы вынуждены исключить явно xexch50 из перечня поддерживаемых глаголов в ответ на ehlo от наших серверов.
Исключаем XEXCH50 из поддерживаемых расширений ESMTP
Следует поблагодарить microsoft, в частности – разработчиков exchange. Поддержка глагола XEXCH50 в ответ на EHLO объявляется посредством отдельного smtp sink. Итак, отключаем sink от smtp, сообщающий о поддержке команды xexch50 в канале smtp.
Естественно, привязки sink к событиям хранятся в iis metabase. Наши действия:
-
Запускаем редактор метабазы IIS.
-
Находим событие {F6628C8D-0D5E-11D2-AA68-00C04FA35B82}(SMTP Protocol OnInboundCommand) для интересующего нас экземпляра SMTP сервиса (для того, который обслуживает входящую почту).
-
Ищем интересующий нас sink.В разделе rule привязок определяется глагол, на который в этом событии (OnInboundCommand) привязывается этот обработчик. Нашёл обработчик:peexch50.ehlo {B8AE826A-DB15-11D2-9500-00C04F79F1D6}.
-
По сути, именно его и следует отвязать. Обратно привязать его можно будет через regsvr32 peexch50.dll.
-
Удаляем найденную привязку
Ответ сервера до наших манипуляций на telnet mail.services.local.domain:25 (подробнее о использовании telnet http://support.microsoft.com/kb/153119/en-us, http://searchexchange.techtarget.com/generic/0,295582,sid43_gci1280938_mem1,00.html):
220 novgaro.ru Microsoft ESMTP MAIL Service, Version: 6.0.3790.4675 ready at Tue, 19 Oct 2010 12:42:05 +0400EHLO test 250-novgaro.ru Hello [172.31.3.12] 250-TURN 250-SIZE 20971520 250-ETRN 250-PIPELINING 250-DSN 250-ENHANCEDSTATUSCODES 250-8bitmime 250-BINARYMIME 250-CHUNKING 250-VRFY 250-X-EXPS GSSAPI NTLM 250-AUTH GSSAPI NTLM 250-X-LINK2STATE 250-XEXCH50 250 OK quit 221 2.0.0 novgaro.ru Service closing transmission channelИтак, перезапускаю smtp и снова пробую telnet:
220 novgaro.ru Microsoft ESMTP MAIL Service, Version: 6.0.3790.3959 ready at Tue, 13 Apr 2010 15:02:26 +0400EHLO novgar.ru 250-novgaro.ru Hello [127.0.0.1] 250-TURN 250-SIZE 250-ETRN 250-PIPELINING 250-DSN 250-ENHANCEDSTATUSCODES 250-8bitmime 250-BINARYMIME 250-CHUNKING 250-VRFY 250-X-EXPS GSSAPI NTLM 250-AUTH GSSAPI NTLM 250-X-LINK2STATE 250 OK quit 221 2.0.0 novgaro.ru Service closing transmission channelВидим, что более в ответ на EHLO наш сервер не отвечает 250-XEXCH50, что и требовалось. С этого момента Вы не будете видеть ошибок (504) в Вашем журнале SMTP во входящих сессиях от exchange серверов Ваших контрагентов, Вы будете видеть глагол BDAT вместо XEXCH50.
Отзывы » (3)
RSS комментарии
Обратная ссылка
> Обратно привязать его можно будет через regsvr32 peexch50.dll.
Быть может для того, чтобы «отвязать» будет достаточно выполнить обратную операцию: regsvr32 /u peexch50.dll ?
ЗЫ Естественно сам не проверял, просто пытаюсь провести аналогию.
Безусловно, действие
даст нам желаемый эффект. Но при этом исчезнет поддержка не только XEXCH50, но и всех других глаголов exchange, в частности (из перечисленных в посте): X-LINK2STATE. Часть глаголов может быть отключена манипуляциями в реестре (что сделано, мы их уже здесь не видим).
Суть задачи состояла в том, чтобы отключить поддержку только XEXCH50, оставив поддержку других глаголов exchange.
Кстати, здесь как раз такой вариант и предлагают. Последствия и его минусы я уже объяснил. Однако, по указанной ссылке более наглядно показана суть проблемы, стоит взглянуть.