Маршрутизация в smtp
Для того чтобы SMPT-сервер доставил почту на имя адресата ivanov@spektr.com, ему предварительно нужно узнать IP-адрес почтового сервера, обслуживающего домен spektr.com, обратившись с соответствующим запросом к серверу DNS. В службе имен DNS предусмотрен специальный тип ресурсной записи для обслуживания такого рода запросов — MX или Mail Exchanger. Данная запись имеет следующий формат: domain MX [cost] hostname
где domain — это имя почтового домена, к которому принадлежит адресат; hostname — символическое имя почтового сервера, располагающего знаниями о том, как осуществлять дальнейшую доставку сообщения; cost — относительная стоимость доставки через этот компьютер. Для получения IP-адреса компьютера с именем hostname выполняется поиск адресной ресурсной записи в DNS. При наличии нескольких МХ-записей для одного и того же домена сначала будет выполнена попытка установить соединение с тем почтовым сервером, у которого стоимость доставки ниже. Если такой компьютер окажется недоступным или перегруженным, будут использоваться компьютеры с большими значениями стоимости.
Таким образом, чтобы доставить сообщение на имя адресата ivanov@spektr.com, сначала будет выполнен запрос к серверу DNS на получение списка ресурсных записей с типом MX. Если список не пуст, по имени компьютера с наименьшим значением стоимости доставки будет получен его адрес (опять же через DNS), после чего будет установлено соединение и отправлена почта. Если для домена spektr.com нет МХ-записи, домен будет трактоваться как имя компьютера. Будет выполнена попытка получить его IP-адрес и доставить сообщение напрямую.
В связи с тем, что служба имен DNS полагается источником статической информации, схема маршрутизации сообщений SMTP является статической. В соответствии с протоколом SMTP в сетях, не имеющих прямого выхода в Internet и не использующих возможности МХ-записей DNS, могут использоваться отдельные статические таблицы маршрутизации почтовых сообщений.
В зависимости от возможностей маршрутизации SMTP-сервер может выступать в одной или нескольких из следующих ролей:
-
mail exchanger — компьютер, непосредственно подключенный к Internet и выполняющий доставку сообщений напрямую адресатам внутри организации, к которой он принадлежит; в организации может быть несколько таких компьютеров с различными или одинаковыми значениями показателя стоимости доставки;
-
relay — компьютер, выполняющий прием почтового трафика от лица других доменов, не имеющих непосредственного и/или постоянного подключения к Internet и, как правило, не принадлежащий к организациям, чьи домены он обслуживает; для каждого отдельного домена может быть определено не более одного relay-сервера;
-
smart host — компьютер, который способен осуществлять пересылку сообщений на основе собственной статической таблицы маршрутизации; одной из функций smart host является переписывание на конверте адреса получателя и/или отправителя перед осуществлением дальнейшей передачи сообщения.
Большинство современных реализаций SMTP-серверов позволяют сочетать все перечисленные функции на одном компьютере.
