Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Dmitry Liakh                         2:5020/400     24 Jan 2002  18:56:58
 To : All
 Subject : траблы с NAT
 -------------------------------------------------------------------------------- 
 
 Добрый вечер, All!
 
 Помогите пжлста с одной небольшой проблемкой. 
 
 Ситуация, значит, следующая:
 
 Локалка на серых адресах подключена к инету через машинку,
 работающую под фрей 4.4-R и имеющую 1 статический реальный IP.
 Для связи с провайдером на ней работают pppd и natd. 
 Также на ней работает апач, раздающий служебный сайт, используемый
 удаленными филиалами. 
 
 Внутри локалки, есть машинка с апачем под NT, которая исполняет единственный
 CGI-скрипт (это екзешник, написанный на Delphi не мной, и перекинуть
 его на фрю пока не предоставляется возможным бо он для формирования контента
 юзает борландовскую технологию MIDAS. Короче - пишет в stdout, данные
 из MIDAS'овского ClientDataset'а, а затем на удаленной стороне его проглатывает
 на Delphi же писанная программа). 
 
 Для того, чтоб клиент из инета мог вызвать этот скрипт, на фре в natd'е
 проброшен порт 8080 на 80'й порт машинки под NT.
 
 Проблема в том, что когда клиент вызывает этот скрипт снаружи -
 скрипт выполняется, но данные клиенту обратно не возвращает. Вместо
 данных клиенту возвращается сообщение о таймауте от его прокси. Причем,
 если снаружи с этого же NT'вого апача запросить простую html страницу
 - то все ок, клиент ее увидит. Зато результат работы скрипта можно получить
 обратившись к этому апачу из *локалки*, причем никаких задержек не наблюдается.
 
 Покопавшись немного (путем включения на фре net.inet.tcp.log_in_vain=1,
 и просматривания /var/log/messages на фре и апачевского access.log на NT
 в момент запроса удаленным клиентом вышеназванного скрипта), я обнаружил,
 что перед возникновением таймаута происходит следующее:
 
 удаленный клиент коннектится снаружи на порт 8080 фри, natd успешно
 пробрасывает его запрос на 80 порт NT, на NT запускается скрипт,
 успешно отрабатывает и в access.log появляется подтверждающая этот факт запись
 (http 200 и т.д.)
 
 после этого на фре в /var/log/messages начинают лезть сообщения о том,
 что NT со своего 80-го порта пытался коннектнуться к произвольному (очевидно,
 к тому, с которого обращался клиент) закрытому порту на *внешнем* (ppp)
 интерфейсе фри. Через некоторое время у клиента вылазит сообщение о таймауте.
 
 Если я правильно понял, выходит что natd пробрасывает запрос на NT, и после
 этого считает сокет закрытым.
 
 В man natd ничего, обьясняющего причину проблемы и пути ее решения не нашел.
 
 natd запускается с use_sockets и same_ports.
 
 Что мудрый All посоветует в этой ситуёвине делать?
 
 -- 
 WBR
 Dmitry
 --- ifmail v.2.15dev5
  * Origin: Hansa (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 траблы с NAT   Dmitry Liakh   24 Jan 2002 18:56:58 
 Re: траблы с NAT   Valentin Davydov   25 Jan 2002 15:25:27 
 Re: траблы с NAT   Dmitry Liakh   28 Jan 2002 14:05:27 
 траблы с NAT   Stas Degteff   25 Jan 2002 20:11:35 
 Re: траблы с NAT   Dmitry Liakh   28 Jan 2002 14:34:16 
 траблы с NAT   Stas Degteff   28 Jan 2002 17:43:59 
 Re: траблы с NAT   Dmitry Liakh   29 Jan 2002 18:36:07 
 траблы с NAT   Stas Degteff   30 Jan 2002 11:09:24 
Архивное /ru.unix.bsd/17301325a7719.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional