Есть несколько LAN. Можно ли настроить на разных LAN интерфейсах TCPMAP на один порт? Например: LAN1 25 smtp1.ru и LAN2 25 smtp2.ru? Тоже и с Eproxy. Как научить отвечать по LAN2, LAN3 и игнорировать LAN1? Спасибо.
Комментарии к этой версии (28.06.2006 14:25) [~Terkoest] 024b970d
Самостоятельно можно побиться с программированием правила Eproxy\conf\plugins\tcpmap\OnThreadConnect.rules.txt, которое получает на стеке имя хоста и номер порта и возвращает его же (то есть, можно подменить).
Можно несколько уточнений ?
Как я понял слово " | " это такой "IF-THEN" и можно использовать вложенную конструкцию? Какой глубины?
Вместо: Port= 25 | IP= LAN1 | MAPTO: smtp1.ru 25 можно записать: Port= 25 IP= LAN1 AND | MAPTO: smtp1.ru 25 ?
Надо ли заканьчивать строку в примерах "\EOF"?
Каков порядок выполнения *.rules.txt?
В чем разница(смысл) между OnConnect и OnThreadConnect?
Да, черта | в конфиг-файлах Eserv это вариант IF-THEN ветвления, пропускающий остаток строки, если дан 0; иначе же остаток транслируется обычным порядком. Доступная вложенность определяется длиной строки (несколько килобайт).
Да, строки Port= 25 | IP= LAN1 | MAPTO: smtp1.ru 25 Port= 25 IP= LAN1 AND | MAPTO: smtp1.ru 25 по результату идентичны.
\EOF — это "конец файла", типа return на уровне текущего файла. Для приведеных строк допустимо, но не обязательно. (бывает удобно для упрощения условных конструкций).
Первое работает в контексте потока, принимающего соединения, а второе работает в контексте потока, обслуживающего TCP-сеанс и позволяет установить локальные для этого сеанса атрибуты. Выполняются в перечисленном порядке.
Еще одно замечание. Если вносите изменения в *.rules.txt, то помещайте измененные файлы в каталог myconf (рядом с conf, внутренняя иерархия идентична), — для того, чтобы при обновлении версии они сохранились (инсталятор обновляет каталог conf, а myconf не трогает).
Самостоятельно можно побиться с программированием правила Eproxy\conf\plugins\tcpmap\OnThreadConnect.rules.txt, которое получает на стеке имя хоста и номер порта и возвращает его же (то есть, можно подменить).
25 LAN1
25 LAN2
А в OnConnect.rules.txt прописать отображение (tcpmap должен быть включен, ессно):
Port= 25 | IP= LAN1 | MAPTO: smtp1.ru 25
Port= 25 | IP= LAN2 | MAPTO: smtp2.ru 25
(LAN2 и LAN2 — IP-адреса).
В ListenPorts.rules.txt прописать порт прокси с привязкой к интерфейсам:
3128 LAN2
3128 LAN3
А LAN1 — не упоминать и Eproxy там слушать не будет.
Как я понял слово " | " это такой "IF-THEN" и можно использовать вложенную конструкцию? Какой глубины?
Вместо: Port= 25 | IP= LAN1 | MAPTO: smtp1.ru 25 можно записать: Port= 25 IP= LAN1 AND | MAPTO: smtp1.ru 25 ?
Надо ли заканьчивать строку в примерах "\EOF"?
Каков порядок выполнения *.rules.txt?
В чем разница(смысл) между OnConnect и OnThreadConnect?
Спасибо за терпение к вопрошающим
Да, строки
Port= 25 | IP= LAN1 | MAPTO: smtp1.ru 25
Port= 25 IP= LAN1 AND | MAPTO: smtp1.ru 25 по результату идентичны.
\EOF — это "конец файла", типа return на уровне текущего файла. Для приведеных строк допустимо, но не обязательно. (бывает удобно для упрощения условных конструкций).
Первое работает в контексте потока, принимающего соединения, а второе работает в контексте потока, обслуживающего TCP-сеанс и позволяет установить локальные для этого сеанса атрибуты. Выполняются в перечисленном порядке.
Еще одно замечание. Если вносите изменения в *.rules.txt, то помещайте измененные файлы в каталог myconf (рядом с conf, внутренняя иерархия идентична), — для того, чтобы при обновлении версии они сохранились (инсталятор обновляет каталог conf, а myconf не трогает).