Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.16;
Скачать: CL | DM;

Вниз

UDP port mapping   Найти похожие ветки 

 
bugman   (2005-06-21 16:53) [0]

Короче, требуется помощь в следующей ситуации. Голову разбил - не понимаю, почему не выходит. Вначале опишу ситуацию: есть "большая" локальная сеть, к ней подсоединено много мелких сегментов. Рассмотрим два из них, назовем их L и С. Чтобы дальше не путаться: сеть L = 192.168.6.xxx, C = 192.168.8.xxx. Они рутятся. Т.е. сеть L висит на шлюзе 192.168.6.1, сеть C на шлюзе 192.168.8.1. Через шлюз проходят только те, кто на шлюзе "прописан", т.е. "договорные" товарищи (я один из них), которые проплачивают владельцу крупной "белой" сети за Инет + абонентка, а забивать канал только из-за сетевых игр "провайдеру" не охота. Но всем, не смотря на договора или их отсутствие охота вместе хотя бы играть в CS (Counter-Stike). Доступа к шлюзу мы не имеем. Не долгая думая, я как администратор одного из сегментов, понимаю, что тут нам на помощь придет port mapping =) Т.е. на одной из машин (которая прописана на шлюзе) в сегменте L, к примеру, устанавливаем ПО, которое осуществляет redirect по определенным TCP/UDP портам на CS-сервер в другом сегменте или же на официальный CS-сервер провайдера. Решил написать небольшой сервис под win32 с иcпользованием INDY10. На форумах по этой потрясающей игре раздобыл инфу по портам, получилось следующее: UDP/1200, UDP/27000-27015 (включительно), TCP/27030-27039 (включительно). Короче, использую TIdMappedPortTCP и TIdMappedPortUDP. Для теста беру следующий конфиг: машину из C-сегмента (192.168.8.11), "прошитую" на шлюзе, свою машину (тоже прошитую) из L-сегмента (192.168.6.3) и непрошитую L-машину, на которой запускаю выделенный CS-сервер, который биндю на ее IP (192.168.6.30:27015). Итак, вернемся к самому приложению =) Динамически создаю 15 TIdMappedPortUDP, биндю их на 192.168.6.3:порт, в качестве MappedHost / MappedPort = 192.168.6.30:порт, аналогично с TIdMappedPortTCP (+ UDP/1200 еще, он еще в design time). Что происходит при попытке C-машины осуществить коннект на 6.3 - происходит запрос на UDP/27015 в этотм момент на CS-клиенте 8.11 начинает происходить загрузка, я же локально на 6.3 вижу, что идет запрос от 8.11 на мою, от меня на 6.30 и обратно. Происходит это все буквально секунду и ступорится. Т.е. 8.11 продолжает сыпать мне пакеты, я же молчу, даже не передавая их на 6.30. В чем мой вопрос? =) Вопросов несколько - 1. Может у кого есть идеи, где тут собака зарыта? 2. Как я правильно понял доки IndyProject, обрабатывать какое-либо событие компонентов TIdMappedPortXXX мне в данном случае не надо. Достаточно их забиндить, прописать mapped host/port, активировать? 3. Кто может дать работспособный пример, можно не на INDY с UDP bridging =) ? Помогите разобраться. Прошу вас, мастера. Кто сталкивался? Сразу отвечу на пару возможных вопросов, уточняющих ситуацию: использовать WinRoute / UserGate и т.д. не хочу до последнего - я считаю что это равносильно забиванию гвоздей микроскопом. К роутеру даже за ящик пива админу "белой" сети меня не пустят =)


 
bugman   (2005-06-21 16:57) [1]

Создание:

procedure TMainForm.CreateMP;
var
i: Integer;
begin
for i:=0 to 15 do
begin
 UDPArray[i]:=TIdMappedPortUDP.Create(MainForm);
 UDPArray[i].Bindings.Add;
 UDPArray[i].Bindings[0].IP:="192.168.6.3";
 UDPArray[i].Bindings[0].Port:=27000+i;
 UDPArray[i].MappedHost:="192.168.6.30";
 UDPArray[i].MappedPort:=27000+i;
 UDPArray[i].DefaultPort:=27000+i;
 UDPArray[i].ThreadedEvent:=True;
end;
for i:=0 to 9 do
begin
 TCPArray[i]:=TIdMappedPortTCP.Create(MainForm);
 TCPArray[i].Bindings.Add;
 TCPArray[i].Bindings[0].IP:="192.168.6.3";
 TCPArray[i].Bindings[0].Port:=27030+i;
 TCPArray[i].MappedHost:="192.168.6.30";
 TCPArray[i].MappedPort:=27030+i;
 TCPArray[i].DefaultPort:=27030+i;
end;
end;


З.Ы. Попутно =) В чем заключается разрешение / запрет broadcast для TIdMappedPortUDP? как такогового же броадкаста же нету? только если я его буду где-нибудь использовать сим компонентом непосредственно, верно?

З.Ы.Ы Наставьте меня на путь истиный. Когда-нибудь я тоже вам пригожусь.


 
Eraser ©   (2005-06-21 21:10) [2]

bugman   (21.06.05 16:53)

А ещё есть символы #10 и #13 )


 
DeadMeat ©   (2005-06-21 21:57) [3]

Все читать не смог..
Поэтому такое.. Возьми HLProxy и не мучайся..

---
...Death Is Only The Begining...


 
bugman   (2005-06-21 22:11) [4]

Eraser ©   (21.06.05 21:10) [2]
ты веткой не ошибся? =) я такое уже в какой-то ветке видел =)))

DeadMeat ©   (21.06.05 21:57) [3]
не канает HLProxy почему-то. вроде все верно. пробовал разных юзверей на разные порты (от 16000 и выше). не вышло. а так вроде все номрально - хотя бы грузиться начинает. помогите с маппингом разобраться. вдруг когда понадобится. плиз, спецы, подсобите в вопросе.

З.Ы. Простите что так много написал в первом посте, что аж читать трудно и долго. Извините. Просто хотел максимально детально обрисовать ситуацию.


 
bugman   (2005-06-21 22:12) [5]

Eraser ©   (21.06.05 21:10) [2]
ты веткой не ошибся? =) я такое уже в какой-то ветке видел =)))

DeadMeat ©   (21.06.05 21:57) [3]
не канает HLProxy почему-то. вроде все верно. пробовал разных юзверей на разные порты (от 16000 и выше). не вышло. а так вроде все номрально - хотя бы грузиться начинает. помогите с маппингом разобраться. вдруг когда понадобится. плиз, спецы, подсобите в вопросе.

З.Ы. Простите что так много написал в первом посте, что аж читать трудно и долго. Извините. Просто хотел максимально детально обрисовать ситуацию.


 
bugman   (2005-06-22 21:32) [6]

помогите. прошу вас. может все-такие есть какие мысли? извините, что текст вопроса так ужасно оформил... может новую ветку создать? )


 
panov ©   (2005-06-22 22:28) [7]

>bugman   (22.06.05 21:32) [6]
может новую ветку создать? )

Создай. Только разбей на строки текст.



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

Текущий архив: 2005.10.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.047 c
2-1127000813
Mid
2005-09-18 03:46
2005.10.16
как переместить изображение с одной Панели на другую, если...


6-1119913547
LzeX7
2005-06-28 03:05
2005.10.16
POST запрос на winsock как правельно?


3-1125657938
Alex Kryuchkov
2005-09-02 14:45
2005.10.16
Транзакции в DBXpress


3-1125482468
Layner
2005-08-31 14:01
2005.10.16
Инсталляция серверной части ПО на MSSQL 2000


5-1101362935
diabolik_krsk
2004-11-25 09:08
2005.10.16
Помогите с наследником DBGrid