19. IPLOOKUP ROUTER
Перевод выполнен Алексеем Паутовым в рамках
некоммерческого проекта RussianLDP
(http://www.rldp.ru/). Именно на этом сайте
и надлежит искать новые версии, если таковые будут.
19. IPLOOKUP ROUTER
Роутер Iplookup был написан для выполнения специальных
требований в Кэмбриджском университете. По этой причине он не включен в
исполняемый файл Exim по умолчанию. Если Вы хотите включить его,
то должны указать:
в конфигурационном файле
Local/Makefile.
Роутер Iplookup маршрутизирует адрес путем посылки его
посредством TCP или UDP-соединения одному или нескольким особым узлам.
Затем узел может возвратить либо тот же самый, либо другой адрес,
в действительности переписав адрес получателя в конверте сообщения.
Затем новый адрес передается последующим роутерам, или доставка
может быть задержана. Так как iplookup только маршрутизатор перезаписи,
транспорт для этого не должен быть определен.
hosts |
Использование: iplookup |
Тип: string |
Значение по умолчанию: unset |
|
Эта опция должна быть установлена. Ее значение: список
имен узлов, разделенный двоеточиями. Разрешение IP-адресов узлов
осуществляется при помощи функций gethostbyname() (или
getipnodebyname(), если доступна). Затем адреса пробуются по очереди до тех
пор, пока один из них не ответит на запрос. Если ни один узел не ответил, то
дальнейшие действия управляются опцией optional.
optional |
Использование: iplookup |
Тип: boolean |
Значение по умолчанию: false |
|
Если optional истинна (true), и если ни от одного узла
не поступил ответ, то адрес передается следующему роутеру, перекрывая
опцию no_more. Если optional ложна (false), то доставка на
этот адрес откладывается.
port |
Использование: iplookup |
Тип: integer |
Значение по умолчанию: 0 |
|
Эта опция должна быть установлена. Она определяет номер
TCP или UDP-порта назначения.
protocol |
Использование: iplookup |
Тип: string |
Значение по умолчанию: udp |
|
Эта опция может быть установлена либо в udp, либо в
tcp для определения того, какой из этих двух протоколов использовать:
query |
Использование: iplookup |
Тип: string† |
Значение по умолчанию:
$local_part@$domain $local_part@$domain |
|
Опция определяет содержание запроса, посылаемого на
удаленные узлы. Повтор служит как способ проверки, что ответ на
корректный запрос приходит в регистре по умолчанию
(см. опцию response_pattern ниже).
reroute |
Использование: iplookup |
Тип: string† |
Значение по умолчанию: unset |
|
Если эта опция не определена, то адрес измененного
маршрута (rerouted address) есть строка байтов, возвращенная удаленным
узлом до первого пробела. Она может включать в себя фрагменты,
полученные в ответ на опцию response_pattern, ссылаясь на них посредством
числовых переменных, таких как $1, $2, $3 и т. д. Переменная $0 ссылается на
целую входную строку, независимо от использования шаблона. Во всех случаях
адрес измененного маршрута должен оканчиваться в виде local_part@domain.
response_pattern |
Использование: iplookup |
Тип: string |
Значение по умолчанию: unset |
|
Эта опция может быть определена как регулярное выражение,
которое применяется к строке, возвращаемой удаленным узлом.
Если шаблон не совпадает с ответом, роутер отклоняется. Если опция
"response_pattern" не определена, то проверки ответа не происходит, пока
запрос не выполнен, в этом случае проверяется что текст, возвращенный после
первого пробела, является исходным адресом. Этим проверяется, что
полученный ответ является откликом на корректный вопрос. К примеру, если
ответ это просто новый домен, то может быть
использована следующая конструкция:
response_pattern = ^([^@]+)$
reroute = $local_part@$1
|
timeout |
Использование: iplookup |
Тип: time |
Значение по умолчанию: 5s |
|
Эта опция определяет время ожидания
ответа удаленного узла. Тайм-аут с этим же значением используется функцией
connect() в случае TCP-соединения. Опция к протоколу UDP неприменима.