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

Вниз

Nat или Port Mapping, как организовать на дельфях   Найти похожие ветки 

 
2ksion ©   (2005-04-17 05:55) [0]

Вопрос по реализаци данного механизма в свое программе, я поизучал то что нашел по данному вопросу, а нашел я мало =( Мне нужно написать ретранслятор(прокси) с чистым Nat для своей локалки (изученый софт который даже сейчас стоит меня не удовлетворяет =)), я понял что просто открываешь сокс порт и ловишь входящий пакет, переправляешь его на сервер, вопрос в том куда его дальше отправлять когда я его принял?? на гватевей провайдера не измняя, или по другому както, короче где по этому можно почитать?


 
2ksion ©   (2005-04-17 06:55) [1]

Да ещё вопрос есть, обьясните различия открытия портов
UDP порт
TCP порт
Или когда я открываю Сокс порт то всё равно какой трафик идёт по какому протаколу, просто не понятно как реализовать NAT


 
atruhin ©   (2005-04-18 14:17) [2]

Ты уж определись NAT нужен или порт-маппинг, две большие разницы


 
Eraser ©   (2005-04-18 21:47) [3]

2ksion ©

Скажу так. Чтобы написать что-нибудь стОящее (типа WinRoute или WinGate) без драйверописания не обойтись.


 
2ksion ©   (2005-04-19 01:27) [4]

UDP порт
TCP порт
C этим как бы я разобрался, да я понимаю что надо будет писать драйвер, вся проблема складываеться в том чтобы получить ip куда пакет пересылать, и мне подойдёт NAT простоя ретрансляция пакетов.


 
2ksion ©   (2005-04-19 04:32) [5]

Вот как сам драйвер реализовать, написать его мона тока на Delphi 3 версии, это в статье расказано. Но вот что в самом драйвере писать даже не представляю себе, информации просто никакой нет. Меня даже прёт немного, технология проста получи пакет измени ип отправителя и пошли его дальше, получил ответ, отсылаешь запросившему, всё просто, а вот чтобы такое реализовть надо из кожи вон лезть. =(


 
2ksion ©   (2005-04-20 01:22) [6]

up


 
Eraser ©   (2005-04-20 01:58) [7]

2ksion ©
написать его мона тока на Delphi 3


Не вздумай писать драйвера на Делфи! она для этого не предназначена... используй M$C++ и DDK.
Советую заглянуть на wasm.ru


 
2ksion ©   (2005-04-23 04:41) [8]

так я на нём и не пишу и знаю про дельфу 3. мне просто надо реализовать нат.


 
Vladimir D Belousov   (2005-05-02 02:06) [9]

Если тебе нужен NAT, то по большому счету, ты должен построить символьный сокет, и разбирать пришедшие на него пакеты.
И соответственно, на основании этого принимать решение, что с пакетом делать дальше - отправить его следующиему маршрутизатору, либо он предназначен для тебя, либо он вообще должен быть отброшен.

Если ты оправляешь пакет кому-то далее, то ты толжен быть готовым принять ответ на этот пакет на внешнем (условно) интерфейсе и отправить его отправителю первого пакета. При этом конечно, поменяв DST_ADDR.

"На апельсинах" -
пришел пакет, приняли решение отправлять его далее.
В этом случае заносим в некую "карту соединений" SRC_IP, SRC_PORT и DST_PORT этого пакета, его порядковый номер.
Далее меняем SRC_IP на свой, отправляем его (в простейшем случае) с такого же порта, как и оригинальный SRC_PORT на маршрутизатор, который прописан как маршрут к DST_IP.
При приходе пакета на внешний интерфейс, по ACK-у, DST_PORT, SRC_PORT и SRC_IP ищем соответствующий пакет в нашей "карте".
Если находим - отправляем его на SRC_IP, записаный в этой карте.

То есть, когда ты его принял, ты должен его отправить его следующему маршрутизатору (твоему гейтвею, в простейшем случае), подменить SRC_IP на свой, и запомнив параметры этого пакета, чтобы при получении ответа знать, кому и куда его переправить.


 
2ksion ©   (2005-05-12 08:23) [10]


> Vladimir D Belousov  

Спасибо за разьяснения, я это понял из технической документации п данному прооколу какой рфс точно не помню, меня интересует реализация этого дела программно, тоесть написание NDIS драйвера, документы по такому делу я еще не нашёл, есть что-то на си вот тут http://ntdev.h1.ru/ndis_fw.html - если кто разберёться с этим, прошу сообщить сюда. Я доведён до такого состояния что готов уже платить за данны драйвер. =)) (за реализацию его в надлежащем уровне)


 
Deka ©   (2005-05-12 10:59) [11]

Может попробовать использовать готовый драйвер?


 
2ksion ©   (2005-05-12 23:55) [12]


> Deka

Подскажи готовый где взять и хороший хелп к нему желательно


 
Deka ©   (2005-05-13 10:47) [13]

Сходи на www.nat32.com
Это страничка IP Router"а. Он у меня как-то стоял и даже работал. Причем довольно не плохо. Автор говорит что будет к нему API. Может быть удастся договориться с ним насчет драйвера?


 
2ksion ©   (2005-05-16 20:51) [14]

а как он тебе? сам роутер??


 
Lex_! ©   (2005-05-17 05:07) [15]

WinPCap вроде есть еще такой драйверок....  который ловит пакетики на сетевухе... вроде можно узнать куда кто что шлет ...
Хотя может я и не прав...


 
Deka ©   (2005-05-18 13:43) [16]

Да вроде ничего - работает. только в нем нет статистики, точнее она есть, но не доведена до конца. Продукт постоянно обновляется, автор доступен по email. содержит кучу функций и еще большую кучу настроек. В основном все настройки изменяются с консоли и только базовый из GUI. Написан на чистом API.


 
Lex_! ©   (2005-05-24 05:08) [17]

В нем можно собирать пакеты с интерфейса и просматривать, этого чтобы вести статистику помоему вполне достаточно.
:)



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

Форум: "Сети";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.009 c
10-1101741608
Romano
2004-11-29 18:20
2005.09.11
Передача структур (record) в методы COM-объектов


14-1123495177
WondeRu
2005-08-08 13:59
2005.09.11
Только узнал, что Longhorn переименовали в Vista ...


4-1122098994
axx
2005-07-23 10:09
2005.09.11
Цвет фона работчего стола.


8-1114859632
Vladimir D Belousov
2005-04-30 15:13
2005.09.11
Не пойму как работает CopyMode у TCanvas


3-1122783260
makzn
2005-07-31 08:14
2005.09.11
DBF -> TextFile





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский