![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
Перевод выполнен Алексеем Паутовым в рамках
некоммерческого проекта RussianLDP
(http://www.rldp.ru/). Именно на этом сайте
и надлежит искать новые версии, если таковые будут.
Роутер dnslookup при помощи запросов к DNS ищет узлы,
обрабатывающие почту для данного домена. Если не установлена опция
verify_only, то для этого роутера должен быть всегда определен транспорт.
Если в конфигурации есть поддержка SRV (см. опцию
check_srv ниже), Exim сначала ищет SRV-записи. Если они не найдены или
поддержка SRV отсутствует, то ищутся MX-записи. Если MX-записей нет, ищутся
А-записи. Однако, может быть установлена опция mx_domains для отключения
прямого использования адресных записей.
MX-записи равного приоритета сортируются Exim в случайном
порядке. Затем Exim ищет адресные записи имен узлов, полученных из MX
или SRV-записей. Если узел имеет более одного IP-адреса, они сортируются в
случайном порядке, за исключением того, что IPv6-адреса всегда сортируются
перед IPv4-адресами. Если все найденные IP-адреса
отбрасываются общей опцией ignore_target_hosts, то роутер отклоняется.
Все MX-записи, указывающие на локальный узел или на любое
другое имя узла, определенное опцией hosts_treat_as_local,
и имеющие наивысший приоритет (меньшее из значений MX-записей),
отбрасываются вместе с другими MX-записями равного или меньшего приоритета.
Если узел, на который указывает MX-запись
высшего приоритета или A-запись, является локальным, либо совпадает с
указанным опцией hosts_treat_as_local, то дальнейшее поведение управляется
общей опцией self. Бывают проблемы с DNS-серверами при поиске записей SRV.
Некоторые плохо настроенные серверы возвращают ошибку DNS или не отвечают
вообще (таймаут) при запросе несуществующих записей SRV. Подобные проблемы
были зафиксированы и для MX-записей. Глобальная опция
dns_again_means_nonexist может помочь с этой проблемой, но грубо, поскольку
это глобальная опция.
Поэтому есть две опции, srv_fail_domains и
mx_fail_domains, контролирующие происходящее при поиске в DNS в роутере.
Dnslookup приводит к ошибке DNS или ответу try again (попробуйте снова).
Если попытка поиска SRV или MX записи приводит к
одному из этих результатов, и домен соответствует списку, то exim ведёт себя
так, будто доменная система ответила, что нет такой записи.
В случае поиска SRV-записи это значит, что роутер продолжает
искать MX-записи, в случае поиска MX продолжается поиск A или AAAA-запись,
если домен не совпадает с mx_domains, в случае ошибки маршрутизации. Ниже приведен список специфичных опций, которые
могут быть использованы для изменения способа обработки поиска в DNS.
Если установлена эта опция, роутер отклоняется до тех
пор, пока локальный узел находится в списке узлов, полученном при
запросе MX-записей. Она может быть использована для выявления доменов
для которых локальный узел является вторичным почтовым сервером.
Способ, которым Exim определяет, является ли узел локальным узлом,
описан в секции 13.8.
Роутер dnslookup поддерживает
использование SRV-записей (см. RFC 2782) в дополнение к MX
и A-записям. Поддержка их по умолчанию отключена. Для включения поддержки SRV
нужно определить опцию check_srv именем нужной службы. К примеру:
Если вычисление значения завершилось успешно, то роутер
сначала ищет SRV-записи для данной службы (подразумевается TCP-протокол).
Простая SRV-запись с именем узла . указывает на отсутствие
такой службы для данного домена. В этом случае роутер отклоняется.
Если находятся другие типы SRV-записей, то они
используются для построения списка узелов для доставки в соответствии с
правилами RFC 2782. Поиск MX-записей в этом случае не производится.
Однако, если ни одной SRV-записи не найдено, то
производится поиск MX-записей (и A-записей) традиционным способом.
Другими словами, SRV-записи имеют приоритет над MX-записями, так же как
и MX-записи имеют приоритет над A-записями. Стоит заметить, что такое
поведение не одобряется RFC 2782, хотя предыдущий RFC его определял.
Явно утверждается, что MX-записей достаточно для нужд электронной почты, и
что SRV-записи не должны использоваться для этих целей. Однако, SRV-записи
имеют дополнительное свойство, вес, которое некоторые люди могут найти
полезным, пытаясь распределить SMTP-нагрузку между узлами разной мощности.
Смотрите секцию 17.1
для обсуждения поведения exim при ошибках поиска в DNS.
17. Роутер DNSLOOKUP
17.1. Проблемы с поиском в DNS
17.2. Частные опции для dnslookup
check_secondary_mx
Использование: dnslookup
Тип: boolean
Значение по умолчанию: false
check_srv
Использование: dnslookup
Тип: string†
Значение по умолчанию: unset
ищет SRV-записи, относящиеся к нормальной службе smtp.
Опция является вычисляемой, таким образом имя службы может меняться от
сообщения к сообщению или от адреса к адресу. Это может быть полезно
если SRV-записи используются для службы submission. Если вычисление значения
завершается неудачно, опция check_srv игнорируется, и роутер начинает поиск
MX-записей обычным способом.
check_srv = smtp
mx_domains
Использование: dnslookup
Тип: domain list†
Значение по умолчанию: unset
Домен, попадающий в список mx_domains, должен иметь MX-запись или SRV-запись для того, чтобы быть распознанным надлежащим образом. Имя этой опции может быть усовершенствованно. К примеру, если все почтовые серверы в домене fict.example имеют MX-записи, за исключением узлов в discworld.fict.example, то Вы можете использовать такую запись:
mx_domains = ! *.discworld.fict.example : *.fict.example |
Данная запись определяет что сообщения, адресованные домену, попадающему в этот список, но не имеющему MX-записи, должны быть немедленно отклонены вместо маршрутизации их с использованием A-записи.
mx_fail_domains | Использование: dnslookup | Тип: domain list† | Значение по умолчанию: unset |
Если DNS-поиск MX-записи для одного из доменов в этом списке вернул ошибку DNS, exim ведёт себя как будто MX-записи вообще не найдены. Смотрите секцию 17.1 для получения подробной информации.
qualify_single | Использование: dnslookup | Тип: boolean | Значение по умолчанию: true |
Когда данная опция истинна, опция RES_DEFNAMES механизма разрешения имен устанавливается для посылки DNS-запросов. Обычно, но не стандартно, это указывает механизму разрешения имен соотносить простые имена с доменом по умолчанию. К примеру, на машине dictionary.ref.example домен thesaurus будет изменен на thesaurus.ref.example внутри механизма разрешения имен. Для подробного описания того, что на самом деле выполняет механизм разрешения имен, обратитесь к разделам справочного руководства resolver и resolv.conf.
rewrite_headers | Использование: dnslookup | Тип: boolean | Значение по умолчанию: true |
Если имя домена в обрабатываемом адресе не является полным, оно может быть раскрыто до своей полной формы при помощи DNS-запроса. К примеру, если адрес определен как dormouse@teaparty, то домен может быть расширен до teaparty.wonderland.fict.example. Раскрытие домена также может быть результатом установки опции widen_domains. Если rewrite_headers истинно, то все экземпляры сокращенного доменного имени во всех Bcc:, Cc:, From:, Reply-to:, Sender: и To: строках заголовка сообщения заменяются полным доменным именем.
Эта опция должна быть отключена только тогда, когда точно известно, что никакое сообщение не будет когда-либо отправлено за пределы того окружения, где сокращение имеет смысл.
Если при поиске MX-записи в DNS происходит совпадение по шаблону, серверы имен обычно возвращают запись, содержащую найденное имя, тем самым делая невозможным определение присутствия шаблона. Однако, некоторые серверы DNS возвращают запись шаблона. Если имя, возвращенное в результате DNS-запроса, начинается с *, оно не используется для переписывания заголовков.
same_domain_copy_routing | Использование: dnslookup | Тип: boolean | Значение по умолчанию: false |
Адреса с одинаковым именем домена обычно маршрутизируются роутером dnslookup на один и тот же список узлов. Однако, данный факт не может быть доказан, так как опции роутера и предусловия могут ссылаться на локальную часть адреса. По умолчанию, Exim маршрутизирует каждый адрес независимо друг от друга. DNS-серверы используют кэширование, таким образом повторные DNS-запросы не являются избыточными. В любом случае личная почта в основном имеет немного получателей.
Если Вы обслуживаете списки расылки с большим количеством подписчиков в одном и том же домене и используете роутер dnslookup, который независим от локальной части, Вы можете включить опцию same_domain_copy_routing, чтобы избегать повторяющихся DNS-запросов для идентичных доменов в одном письме. В этом случае, если dnslookup маршрутизирует адрес удаленному транспорту, все остальные адреса в сообщении с тем же самым именем домена получателя автоматически аналогично маршрутизируются без независимой обработки, обеспечивая следующие условия:
search_parents | Использование: dnslookup | Тип: boolean | Значение по умолчанию: false |
Когда эта опция истинна, опция RES_DNSRCH реcолвера устанавливается для выполнения DNS-запросов, что отличается от опции qualify_single, в которой это применимо к доменам, содержащем точки. Обычно, но не стандартно, это указывает механизму разрешения имен искать имя в текущем и родительском доменах. К примеру, если на машине в домене fict.example DNS-запрос teaparty.wonderland не разрешился, то реcолвер попытается разрешить имя teaparty.wonderland.fict.example. Для подробного описания того, что на самом деле выполняет Ваш механизм разрешения имен, обратитесь к разделам справочного руководства по resolver и resolv.conf.
Установка этой опции в значение true может вызвать проблемы в доменах, имеющих шаблонную MX-запись, потому что любой домен, не имеющий своей собственной MX-записи, совпадает с локальным шаблоном.
srv_fail_domains | Использование: dnslookup | Тип: domain list† | Значение по умолчанию: unset |
Если DNS-поиск SRV-записи для одного из доменов в этом списке вернул ошибку DNS, exim ведёт себя так, как будто SRV-записи вообще не найдены. Смотрите секцию 17.1 для получения подробной информации.
widen_domains | Использование: dnslookup | Тип: string list | Значение по умолчанию: unset |
Если DNS-запрос завершился неудачно, и эта опция установлена, то каждая из этих строк по очереди добавляется в конец имени домена, и запрос выполняется снова. К примеру, если
widen_domains = fict.example:ref.example |
Когда домен получателя изменяется механизмом разрешения имен в результате применения опций qualify_single или search_parents, Exim переписывает соответствующий адрес в строках заголовка письма, если опция rewrite_headers не установлена в false. Затем Exim маршрутизирует адрес заново, используя полное доменное имя.
Эти две опции действуют только на DNS-запрос, который выполняется роутером для домена маршрутизируемого адреса. Они не действуют на запросы, выполняемые для записей такого рода:
domains = @mx_any |
Найди своих коллег! |