Вниз
Скачать: CL | DM;

Как сделать туннель между двумя серверами?   Найти похожие ветки 

 
RA81 ©   (2006-04-06 08:28) [0]

Проблема возникла такая. Есть два сервера(1 и 2), между ними стоит фаервол который закрывает все протоколы в одну строну и пропускает некоторые в другую. То есть UDP закрыт напрочь в обе стороны. Открыт ТСР в одну сторону, то есть если запрос на создание соединения прийдет от сервера 2 то коннект произойдет и все ок, а если же запрос идет от сервера 1 то ничего не происходит. Так что имеем некую одностороннюю проводимость. Ну так вот... есть проблема передачи UDP пакетов с сервера 1 на сервер 2 и обратно. Подробнее: сервер 1 рассылает UDP пакеты по адресатам но поскольку ip адреса принадлежащие домену под сервером 2 закрыты фаерволом то фаер не пускает туда ничего. Есть задумка отлавливать на сервере 1 пакеты у которых пункт назначения лежит за фаерволом, затем запаковывать их в ТСР пакеты и по заранее установленному соединению передавать на сервер 2 , где их переконверчивать обратно в UDP и посылать адресату. То есть получатель вообще не должен знать что получил пакеты таким путем, ему должно все быть прозрачно....законнектился мол на нужный ip и работаешь.

Предположительно нужно создать программу сервер и клиента. программа-сервер будет принимать соединения от клиентов и передавать данные через фаервол. То есть пользователь запускает программу клиент, она ловит пакеты на нужном порту с нужным адресом назначения и создает ТСР соединение на программу сервер (которая стоит на сервере 2), пойманные пакеты программа-клиент заворачивает в ТСР пакет и передает программе-серверу. Затем программа-сервер передает ТСР пакеты через фаервол на программу сервер которая стоит на сервере 1. Далее пакеты разворачиваются и передаются по нужному адресу и порту. Такая вот схемка выходит.

Возможен вариант конечно когда программа клиент сразу делает ТСР коннект на прогу-сервер 1, то есть напрямую через фаервол. Стоит заметить что скорость сети между сервером 1 и 2 ниже чем в локальных областях.

Проблема состит в том что нужно обеспечить высокую скорость передачи данных...задержка должна быть не более 25-30 милисекунд. Пинг между серверами 1 и 2 где то 2 милисек. если сеть не загружена.

Никогда таким не занимался. Не знаю стоитли возиться с компонентами делфи или сразу делать на API. Мастера подскажите с какого боку подойти к данной проблеме?


 
RA81 ©   (2006-06-07 12:53) [1]

нашел программу которая осуществляет нужное мне дело :). называется zebedee. Нашел чисто случайно когда уже писал руками.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.029 c
1-1158676217
Express
2006-09-19 18:30
2006.10.29
MDI-дочерная форма из библиотеки


2-1160472952
horse
2006-10-10 13:35
2006.10.29
Как изменить языковую раскладку клавиатуры?


15-1159915299
Multy
2006-10-04 02:41
2006.10.29
Ну и что это за уродство?


2-1160891625
AN\ndrey
2006-10-15 09:53
2006.10.29
Какой командой прервать процедуру?


15-1160573296
Rule
2006-10-11 17:28
2006.10.29
Подскажите пожалуйста где взять формальную граматику T-SQL(MSSQL)




   Наверх