Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.038 c
14-1127425578
Eraser
2005-09-23 01:46
2005.10.16
Multicast


1-1127658051
bravo_elf
2005-09-25 18:20
2005.10.16
Нужна помощь с Delphi Architect 2005


2-1127123367
Wolferio
2005-09-19 13:49
2005.10.16
Как удалить файл


1-1127225050
Германн
2005-09-20 18:04
2005.10.16
Ошибка Invalid File Name


14-1127399213
ПЛОВ
2005-09-22 18:26
2005.10.16
SVGA -> S-Video или композитный выход





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский