Версия 5.1 |
|||||||||||||||||||||||||||||||||
|
|
Каждый адрес электронной почты или адрес Сигналов состоит из двух строк: локальной части и имени домена. Обычно, адрес выглядит как xxxx@yyyyy, где yyyyy - это имя домена (уникальное имя почтовой системы получателя), а xxxx - это его локальная часть, то есть, имя пользователя в той системе.
Когда Маршрутизатор разбирает адрес, он извлекает имя системы, на которую должно быть доставлено сообщение. Оно становиться доменной частью адреса. Остальная часть адреса считается локальной частью - то есть, локальная часть определяет конкретного получателя, которому должны быть доставлены сообщения или сигналы, после доставки их в систему, заданную по имени домена. В примере, приведенном выше, zzzz является доменной частью имени, а xxxx@yyyyy - локальной частью.
Дополнительную информацию о форматах адреса электронной почты вы можете найти в RFC822 и сопутствующих документах.
Если в локальной части содержится сложный адрес (то есть в локальной части содержится имя (имена) домена и локальная часть), то локальная часть представляется с использованием символа '%': local%domain1%domain2; в классической форме в CommuniGate Pro этому соответствует полный адрес local%domain1%domain2@domain.
Когда имя домена извлекается из адреса, Маршрутизатор сравнивает его с именем домена Сервера (смотрите в настройках Общее). Если они совпадают, то значению имени домена присваивается пустая строка. Когда имя домена приравнивается к пустой строке, Маршрутизатор перезапускает обработку локальной части, снова пытаясь разделить её на доменную и локальную часть.
Например, если Имя Главного Домена вашего Сервера company.com, то адреса будут преобразованы следующим образом:
Адрес | локальная часть | доменная часть |
---|---|---|
support@company.com | support | company.com |
--- преобразовывается в ---> | support | |
<@company.com:sales@example.com> | sales@example.com | company.com |
--- преобразовывается в ---> | sales@example.com | |
--- преобразовывается в ---> | sales | example.com |
В дополнение к Главному Домену Сервера, ваш Сервер может обслуживать много независимых Доменов.
Для обработки Сообщений и Сигналов, направляемых на Домены вашего Сервера, вы должны убедиться, что Сообщения, отправленные в какой-либо домен, направляются на ваш Сервер, имеющий соответствующую запись в глобальной системе DNS.
Пример 1: ваш сервер (example.com) обслуживает Домен example.com и Домен parteners-example.com. Убедитесь, что MX-записи DNS созданы для обоих Доменов, и что эти записи указывают на ваш Сервер example.com.
Пример 2: ваш сервер (example.com) работает как "Удалённый POP" почтовый релей для некоторых клиентов системы. Каждый домен имеет своё собственное имя домена (client1.com, client2.com и client3.com), и вы настроили ваш Маршрутизатор таким образом, что бы что вся электронная почта, направляемая на домен client1.com, перенаправлялась на общедоменного Пользователя client1, и т.д.
Для этого вы должны должны убедиться, что вся электронная почта, отправляемая в домен client1.com, направляется на ваш сервер (example.com). В DNS должна быть создана MX-запись client1.com, указывающая на ваш Сервер (example.com).
Когда разбирается адрес и извлекается его доменная часть, Маршрутизатор проверяет записи маршрутизации в Таблице Маршрутизации.
Для того, что бы настроить Таблицу Маршрутизации, используйте Веб Интерфейс Администратора. Откройте страницу Маршрутизатор в разделе Установки:
Каждая строка в Таблице Маршрутизации является записью маршрутизации. Запись маршрутизации содержит опциональные префиксы, левую часть, знак равно (=) и правую часть. Символ точка с запятой (;) используется для указания комментария после правой части записи маршрутизации. В Таблицу может быть добавлена строка с комментарием, начинающаяся с символа точка с запятой.
Маршрутизатор берет разобранный адрес (то есть доменную и локальные части адреса) и сканирует все записи в Таблице сверху вниз. Если найдена подходящая запись, то она применяется (как описано ниже) и модифицированный адрес снова обрабатывается в Маршрутизаторе.
Записи Маршрутизации могут иметь префиксы режима Ретрансляции (релей-префиксы): Relay: (может сокращаться до R:), NoRelay: (может сокращаться до N:) или RelayAll:. Дополнительную информацию смотрите в разделе Защита . Если ни один из этих префиксов не указан, то по умолчанию используется префикс Relay:.
Записи Маршрутизации могут иметь ноль, один или несколько следующих префиксов по типам операций:Левая часть записи Маршрутизации содержит Образец: строку с опциональным шаблоном подстановки.
Поддерживаются шаблоны подстановки:Символ обратной косой черты (\) используется как управляющий символ: \\ обрабатывается как одна косая черта, \* обрабатывается как символ звёздочка и так далее.
В Образце разрешено использовать только один символ шаблона подстановки.
Правая часть записи Маршрутизации содержит Маршрут: строку с опциональным шаблоном подстановки *.
Если Образец Записи содержит соответствует обрабатываемому адресу, адрес изменяется согласно Маршруту Записи. Подстрока, соответствующая шаблону подстановки Образца подставляется в шаблон подстановки Маршрута.
Символ обратной косой черты (\) используется как управляющий символ: \\ обрабатывается как одна косая черта, \* обрабатывается как символ звёздочка и так далее.
В Маршруте разрешено использовать только один символ шаблона подстановки.
Если левая часть записи Маршрутизации содержит имя домена, то запись определяет маршрут для всего этого домена.
Если при обработки какого-либо адреса имя домена соответствует имени домена, указанному в такой записи, то доменная часть заменяется правой частью записи маршрутизации.
Путь маршрутизации может указывать ретрансляторы (релеи).
Если электронная почта и Сигналы должны маршрутизироваться одинаковым или похожим образом, то вы можете использовать символ звёздочка (*) как шаблон подстановки.
Такой тип маршрутизации очень часто используется для обработки всех субдоменов в некотором домене.
Кроме записей маршрутизации уровня домена, маршрутизация для домена может задаваться также через записи уровня пользователя (смотрите ниже).
Записи для Общедоменных Пользователей так же являются записями маршрутизации уровня домена.
Если левая часть записи маршрутизации содержит адрес в угловых скобках(< и >), то это запись уровня Пользователя - правило маршрутизации для конкретного адреса.
Когда разбирается адрес и Маршрутизатор сканирует записи в Таблице, он сравнивает доменную часть адреса с доменной частью всех записей маршрутизации уровня Пользователя.
Если доменная часть совпадает, Маршрутизатор сравнивает локальную часть адреса с локальной частью адреса в записи уровня пользователя. Если обе, доменная и локальная части, совпадают, то правая часть записи маршрутизации уровня пользователя используется для формирования нового адреса. Маршрутизатор перезапускается, разбирает и обрабатывает этот новый адрес.
Обратите внимание: Из-за того, что Имя Главного Домена Сервера в разбираемом адресе сразу же заменяется пустой строкой, записи уровня пользователя, которые должны применяться к адресам в Главном Домене, вообще не должны содержать никакой доменной части.
В примере ниже mycompany.com является Именем Главного Домена Сервера.
Правая часть записи уровня пользователя может быть любым адресом.
Вы можете использовать шаблон подстановки (*) в локальной части записи уровня пользователя. Этот же символ может быть использован и любой части адреса в правой части для задания строки подстановки.
Вы можете использовать записи уровня пользователя для перенаправления электронной почты и Сигналов, отправленных на любой из Доменов вашего Сервера. В следующем примере client.com является локальным Доменом.
В большинстве случаев вы не должны использовать записи Маршрутизатора уровня пользователя: если возникает необходимость использования альтернативных имен для какого-нибудь Пользователя, используйте вместо этого Псевдонимы Пользователя. Если вам необходимо перенаправить электронную почту и Сигналы, отправленные на какое-либо имя в локальном Домене Сервера на какой-нибудь другой адрес, используйте Переадресаторы.
Вы можете создать псевдоним для конкретного пользователя чужой системы. Например, если вся электронная почта, отправленная в какой-нибудь домен, должна быть перенаправлена на определённый почтовый хост или на объединённого пользователя, но определённые адреса в этом домене должны быть направлены на адреса на вашей или другой системе.
Шаблон подстановки (*) может использоваться только в локальной части полного имени пользователя (то есть до символа @).
Вы можете использовать возможности шаблона подстановки для обслуживания нескольких доменов в одном Домене CommuniGate Pro, создав уникальное "адресное пространство" для каждого имени домена.
Этот метод может использоваться когда вы не хотите создавать полнофункциональные Домены CommuniGate Pro для доменов, содержащих в лучшем случае нескольких Пользователей.
В записях уровня пользователя в доменной части может использоваться шаблон подстановки (*). Эти записи применяются к адресам, которые имеются в любом локальном Домене (то есть в Домене, созданном на Сервере или в Кластере Сервера CommuniGate Pro). Правая часть адреса такой записи указывает адрес в этом же локальном Домене.
Если в правой части адреса имеется доменная часть, то адрес перенаправляется в этот домен.
Локальная часть левой стороны адреса может содержать шаблон подстановки (как обычная запись уровня пользователя). Строка, совпадающая с шаблоном подстановки может использоваться в правой части адреса.
Если доменная часть адреса равна NULL, или доменная часть имени пустая, а локальная часть равна NULL, то адрес направляется в фиктивный внутренний модуль "Чёрная дыра".
Когда сообщение направляется в "Чёрную дыру", адрес сразу же получает отметку "доставлено", без какой-либо дальнейшей обработки.
Эта возможность позволяет вам использовать локальное имя NULL или домен NULL как адрес "чёрной дыры": все сообщения, отправленные на этот адрес, выкидываются. Адрес MAILER-DAEMON автоматически перенаправляется на NULL.
Если доменная часть имени адреса ERROR, или если доменная часть пустая, а локальная часть ERROR, адрес отвергается без обработки и генерируется ошибка report/response.
Если доменная часть адреса помещена в чёрный список, или если доменная часть пустая, а локальная часть помещена в чёрный список, адрес отвергается без обработки и генерируется отчет об ошибка "Blacklisted Address". Дополнительную информацию смотрите в разделе SMTP Модуль.
Если доменная часть имени пустая, а локальная часть spamtrap, маршрутизация останавливается. Адреса этого типа отвергаются так же, как и адреса ERROR, но SMTP модуль обрабатывает их особым образом. Дополнительную информацию смотрите в разделе Защита .
Если доменная часть имени пустая, а локальная часть incomplete, маршрутизация останавливается. Сигналы, отправляемые на такие адреса, отвергаются с сообщением об ошибке "Address Incomplete".
Если доменная часть имени заканчивается символами .here, этот суффикс удаляется, и оставшаяся часть имени используется как имя локального Домена CommuniGate Pro. Этот суффикс позволяет вам избежать зацикливания маршрутизации в определённых ситуациях.
После того, как применены все записи из Таблицы Маршрутизации, Маршрутизатор проверяет, не оканчивается ли имя домена суффиксом .via. Суффикс удаляется, имя домена считается хостом - конечным адресатом, а локальная часть адреса используется как адрес, который будет передан на этот хост. Адрес направляется в SIP модуль для операций, связанных с обработкой Сигналов или в SMTP модуль для операций доступа и передачи электронной почты.
Обратите внимание: адреса в домене sales.company.com будут ретранслироваться (релеиться) с удалённой доменной частью, то есть адрес <user@sales.company.com> будет ретранслироваться на хост sales.company.com как <user>.
Это может привести к проблемам, если сервер sales.company.com не принимает адреса без указания домена. Смотрите следующий пример для возможного решения этой проблемы.
Обратите внимание: Здесь вы можете указывать только host.com вместо host.com.via (подразумевается, что нет других записей в Маршрутизаторе для host.com), но в этом случае почта для user@client1.com будет отправляться на host.com как user%client1.com@host.com. Указывая суффикс .via вы не только говорите Маршрутизатору направить адрес в модуль ретрансляции (релеинга), но также заставляете этот модуль отправлять только локальную часть адреса на удалённый сервер.
Обработка Адресов без суффикса .via | ||
---|---|---|
user @ client1.host | Маршрутизатор преобразовывает в | user%client1.host @ relay |
user%client1.host @ relay | Маршрутизатор преобразовывает в | user%client1.host @ host.com |
user%client1.host @ host.com | Маршрутизатор останавливается | нет правил для host.com |
user%client1.host @ host.com | Маршрутизатор принимает | для SIP/SMTP хост host.com как user%client1.host@host.com |
Обработка Адресов с суффиксом .via | ||
user @ client1.host | Маршрутизатор преобразовывает в | user%client1.host @ relay |
user%client1.host @ relay | Маршрутизатор преобразовывает в | user%client1.host @ host.com.via |
user%client1.host @ host.com.via | Маршрутизатор принимает | для host.com как user@client1.host |
Если доменная часть адреса содержит суффикс .via, модуль проверяет последнюю часть доменного имени после удаления суффикса. Если это часть является числом, символ точка (.) отделяющий эту часть заменяется на символ двоеточия (:):
host.domain.26.via --> host.domain:26 Если имя домена содержит символ двоеточие, то SIP и SMTP модули:Маршрутизатор также проверяет доменную часть адреса, оканчивающуюся суффиксом .relay. Суффикс удаляется и получившееся доменное имя используется как конечное имя хоста (после изменения опционального разделителя имени порта на символ двоеточие).
Это имя домена (после удаления опционального имени порта и его разделителя) добавляется к локальному имени, используя символ @ как разделитель.
Множество Сигналов (и в особенности телефонные звонки) должны обрабатываться "стандартными" или специальными Приложениями Реального Времени. Для направления Сигналов в Приложение вам необходимо указать имя Приложения и, отделённое символом решётка (#) имя Пользователя, которое будет использованно для запуска приложения:
Вы можете указать параметры приложения, добавляя их после имени приложения вложенными в фигурные скобки { и } и разделяя их символом запятой (,).
Шаблоны подстановки в правой части записи Маршрутизатора подменяются до начала обработки, так что вы можете использовать значение шаблонов подстановки в качестве параметров приложения.
Если доменной частью адреса является telnum, локальная часть адреса обрабатывается как телефонный номер в стандарте E.164.
Маршрутизатор предпринимает следующие шаги до применения Таблицы Маршрутизации и других методов Маршрутизации:Если телефонный номер не перенаправляется никаким из вышеуказанных методов, Маршрутизатор обрабатывает его как обычный адрес.
Для того, что бы добавить ENUM Домен, введите его имя в пустое поле и нажмите кнопку Модифицировать.
Для того, что бы удалить ENUM Домен, удалите его имя из поля и нажмите кнопку Модифицировать.
Домены используются в определённом порядке.
Смотрите раздел ТфОП для дополнительной информации о работе с Телефонной Сетью Общего Пользования и маршрутизации телефонных номеров.
После того, как применены все записи из Таблицы Маршрутизации, Маршрутизатор проверяет, не оканчивается ли в действительности имя домена IP адресом. Если IP адрес имени домена не заключён в квадратные скобки, Маршрутизатор добавляет их: user@10.34.45.67 преобразовывается в user@[10.34.45.67]. Это позволяет вам указывать записи в Таблице Маршрутизации для IP адресов, полагая, что этот адрес всегда заключён в квадратные скобки.
Для IP адреса, заключённого в квадратные скобки, Маршрутизатор проверяет не назначён ли этот IP адрес одному из Доменов на Сервере. Если такой Домен найден, то IP адрес заменяется именем этого Домена. Если IP адрес является IP адресом Главного Домена Сервера, то вместо доменной части имени используется пустая строка, и Маршрутизатор делает следующую итерацию после разбора локальной части имени адреса.
Если IP адрес на назначен локальному Домену, Маршрутизатор обрабатывает имя домена [10.34.45.67] как имя 10.34.45.67.default_port.via:
Маршрутизатор отправляет адрес в SIP или SMTP модуль, отрезая доменную часть и используя её как имя хоста для ретрансляции (релеинга).
Если никакая запись из Таблицы Маршрутизации не может применена к адресу, и адрес не является специальным адресом или IP адресом локального домена, Маршрутизатор вызывает каждый коммуникационный модуль, запрашивая выполнение операции маршрутизации.
Каждый модуль смотрит на переданный адрес и может:Если модуль изменяет адрес, Маршрутизатор производит новую итерацию, повторяя все шаги для этого нового модифицированного адреса.
Если Маршрутизатор вызывается из компонента Установщик Сообщений в очередь, и модуль принимает адрес, сообщение ставиться в очередь в этот модуль на доставку.
Если Маршрутизатор вызывается из компонента Сигналы, и модуль принимает адрес, Сигнальный Запрос отправляется в этот модуль на обработку.
Каждый модуль вызывается дважды. Первый раз Маршрутизатор вызывает каждый модуль для обработки "очевидных" адресов. В этом вызове модули обрабатывают только те адреса, которые определённо направляются в этот модуль: SMTP модуль обрабатывает адреса с доменной частью, оканчивающейся на .smtp, LIST модуль обрабатывает адреса существующих списков рассылки и так далее.
Если все модули проигнорировали адрес, Маршрутизатор вызывает каждый модуль снова, с запросом на "финальную" попытку. На этой стадии, модуль Местной Доставки обрабатывает все адреса, направляемые в локальные домены, SIP модуль принимает все адреса типа сигналы, SMTP модуль обрабатывает все адреса с именами доменов, в которых содержится хотя бы одна точка и так далее.
Этот двухпроходной метод позволяет нескольким модулям корректно обрабатывать адреса, не полагаясь на определённый порядок вызова модулей. Если бы каждый модуль обрабатывал адрес в один проход, то адреса listname@domainname (которые выглядят как адреса локальных пользователей) отвергались бы модулем Местной Доставки, если бы он вызывался до LIST модуля, адреса user@accountName.local принимались бы SMTP модулем вместо модуля Местной Доставки и так далее.
Дополнительную информацию смотрите в описаниях модулей.
После того, как применены все записи из Таблицы Маршрутизации, Маршрутизатор проверяет, не оканчивается ли имя домена строкой external. В этом случае доменная часть отрезается, а локальная часть передаётся в программу Внешней Аутентификации.
Внешняя программа может использовать любой метод для обработки переданного адреса, и должна возвращать модифицированный адрес или код ошибки.
Если возвращается модифицированный адрес, Маршрутизатор осуществляет следующую итерацию с этим новым модифицированным адресом.
Если Сигнал отправляется на 0115556666@local.domain.dom, где local.domain.dom это локальный Домен, адрес будет перенаправлен на tele-5556666@external и Внешний Помощник получит запрос на маршрутизацию адреса tele-5556666.
Маршрутизатор поддерживает базирующуюся на DNS маршрутизацию телефонных номеров. Это метод обычно применяется для E.164 номеров - телефонных номеров, начинающихся с символа плюс, за которым следует код страны, год города и местный номер.
Если доменное имя содержит суффикс .enum, то Маршрутизатор:Маршрутизатор перезапускается, обрабатывая найденную отображающую строку как новый адрес места назначения.
Если поиск в DNS возвращает ошибку "unknown host name", суффикс домена .enum заменяется суффиксом .noenum, и Маршрутизатор перезапускается для обработки этого модифицированного адреса.
Когда сервер устанавливается впервые, следующие записи помещаются в Таблицу Маршрутизации:
При необходимости, все записи, добавляемые по умолчанию, могут быть изменены или удалены.
Пользователи работающие на сайтах, которые имеют много различных Серверов (server1.myorg.org, server2.myorg.org, server3.myorg.org) часто используют адреса с неквалифицированными доменными именами (user@server1, user@server2, user@server3). Когда вы имеете несколько серверов на вашем домене "верхнего уровня" myorg.org, вы можете "исправлять" такие адреса, указав в Таблице записи:
server1 = server1.myorg.orgЕсли вы имеет много серверов в вашем домене "верхнего уровня" myorg.org, то становится практически невозможно указать в Таблице Маршрутизатора записи для них всех. В этом случае вы можете использовать опцию Добавлять myorg.org к Неквалифицированным Доменным Именам. Если эта опция включена, и адрес не может быть направлен используя Таблицу Маршрутизатора и Модули, и доменная часть адреса не содержит символа точка, то указанная строка myorg.org будет добавлена к доменному имени (разделённая символом точка). Адрес user@someserver будет преобразован в адрес user@someserver.myorg.org и Маршрутизатор попытается направить этот новый, исправленный адрес.
Обратите внимание: Использование Неквалифицированных Доменных Имен в адресах электронной почты или Сигналах является очень плохой практикой. Включите эту опцию только если вы не можете обеспечить выполнение вашими пользователями политики использования корректных, полных имен доменов во всех используемых ими адресах.
Эти записи проверяются когда Сервер CommuniGate Pro обнаруживает сообщение или сигнал, который должен быть направлен на некоторое имя в один из локальных доменов Сервера. Если локальная часть адреса совпадает с полем Локальное Имя в одной из этих записей, то адрес направляется на указанный в поле Преобразовать в.
Если, например, адреса abuse и postmaster@maindomain.dom введены в таблицу Общедоменные Псевдонимы (как показано выше), то все сообщения, направляемые на любой адрес abuse@domain.dom (где domain.com является одним из Доменов CommuniGate Pro) преобразовывается в postmaster@maindomain.com.
Обратите внимание: используя эти записи, можно очень легко создать зацикливание маршрутизации: если введете
Вы можете использовать символы шаблона подстановки (*) в этих полях.
Например, мы можете создать "правила набора номера" вашей организации, которая имеет 10 различных отделов, и каждый обслуживается в собственном Домене:
Если Пользователи в каждом Домене имеют псевдонимы в диапазоне 200-299, то пользователи могут вызывать других пользователей в том же домене, набирая номер 2xx.
Они набирают префикс 91 (номер 912xx) для того, что бы связаться с пользователями в Домене domain1.com.
Они набирают префикс 92 для того, что бы связаться с пользователями в Домене domain2.com, и так далее.
Динамический Кластер CommuniGate Pro обслуживает Таблицу Маршрутизации Общую для Кластера. Когда вы открываете страницу Веб Администрирования Маршрутизатор у любого члена Кластера, то вы видите ссылку, с помощью который вы можете открыть страницу с Таблицей Маршрутизаци, Общей для Кластера. Все изменения, сделанные в этой Таблице, автоматически распространяются на всех членов Кластера.
Таблица Маршрутизации, Общая для Кластера обрабатывается как расширение Таблицы Маршрутизатора Сервера: записи в Таблице Маршрутизации, Общей для Кластера проверяются когда никакие записи из Таблицу Маршрутизатора Сервера не могут быть применены.