![]() |
Модераторы: feodorv |
![]() ![]() ![]() |
|
ShamanUA |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 28.2.2010 Репутация: нет Всего: нет |
Доброго вам дня. Пишу программу и необходимо реализовать связь между двумя комп'ютерами находящихся за цепочкой NAT-ов. (см. рисунок).
Часть роутеров является общой для обоих комп'ютерив. Суть задачи - пропускать трафик через первый совместный маршрутизатор (красная стрелка, цепочка COMP1-NAT3-NAT2-NAT4-COMP2)... Для этого нужно узнать всю цепочку роутеров находящихся между комп'ютером и сервером (см. рис). Как это можно узнать? какие будут идеи? ![]() Это сообщение отредактировал(а) ShamanUA - 23.11.2012, 14:09 |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 10 Всего: 45 |
А как такое знание может помочь задаче? По мне, так нужно прописывать маршрутизацию на NAT2. -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
ShamanUA |
|
||||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 28.2.2010 Репутация: нет Всего: нет |
если знать всю цепочку роутеров стоящие между комп'ютером и сервером и вторим комп'ютером и сервером, можно узнать адрес первого совместного роутера. Программа создается не для конкретного случая а для общего. количество роутеров в схеме неизвестна
Port forwarding (прописывать порты) - нельзя. Запрещена любая конфигурация роутеров. При передаче данных через NAT создается временна запись в таблице роутера, и этого достаточно чтобы обойтись без прописывания портов. Это сообщение отредактировал(а) ShamanUA - 23.11.2012, 16:40 |
||||
|
|||||
tzirechnoy |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 1 Всего: 16 |
Ну, потом он вычислит по айпи админа этих роутеров и с братками завалится к ним, вежливо но настойчиво просить проковырять дырочку в файерволле. PS Надёжно -- никак. В некоторых случаях -- такие вещи представляет инфраструктура uPnP. В некоторых случаях работает вариант послать с обоих оконечных компьютэров одновременно UDP-пакеты в адрес видимых из сети роутеров с одинаковыми (ну, соответствующими друг другу) портами -- тогда каждый роутер думает, что это начало какого-то исходящего UDP-соединения, и, если он оставит номера портов как есть -- то пакеты успешно дойдут до адресата. Вообще, можно начинать читать с [url="http://en.wikipedia.org/wiki/NAT_traversal"] |
|||
|
||||
ShamanUA |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 28.2.2010 Репутация: нет Всего: нет |
скайп умеет такое делать, значыть возможно както
по айпи роутера нельзя вычислить его владельца.
из сети можно видеть любой роутер... tzirechnoy, ваша идея с одновременными пакетами не будет работать я уже прочитал достаточно литературы ... и везде пишет одно и тоже ... читайте внимательнее вопрос Это сообщение отредактировал(а) ShamanUA - 23.11.2012, 18:35 |
||||||
|
|||||||
feodorv |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 10 Всего: 45 |
Роутеры могут иметь 10 тысяч IP адресов, тем более с участием NAT. И IP-адрес одного и того же роутера, видимый с первого компьютера, может отличаться от IP-адреса роутера, видимого со второго компьютера. В общем случае))) Но всё же вопрос повис в воздухе: В чём тогда состоит задача? Начально она была сформулирована так:
Для реализации связи нет необходимости знать структуру сети. Сеть уже должна быть настроена. И даже если Вы каким-то образом узнаете IP-адрес первого совместного роутера, то как это знание поможет с реализацией связи между двумя компьютерами? -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||
|
|||||
ShamanUA |
|
||||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 28.2.2010 Репутация: нет Всего: нет |
интересно где это вы такое вычитали?
с этим я еще не разобрался, но думаю это правильное направление ... Это сообщение отредактировал(а) ShamanUA - 23.11.2012, 19:09 |
||||
|
|||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 10 Всего: 45 |
Я не вычитал, я с этим работал)))
Вот есть сомнение насчёт правильности. В любом случае, если удастся разобраться, дайте знать ![]() Можно же поинтересоваться, как устроена архитектура скайп... -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
ShamanUA |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 28.2.2010 Репутация: нет Всего: нет |
я уверен что роутер имеет одну и ту же айпи из разных компьютеров (если бы он имел различные айпи то тогда с ним не могли бы соединиться другие роутеры в которых прописана адресация в таблице) если можете покажите где написано что он имеет разное айпи. |
|||
|
||||
feodorv |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 10 Всего: 45 |
IP-адрес есть характеристика интерфейса (грубо говоря - сетевой платы), а не компьютера в целом. Маршрутизаторы как раз обычно имеют несколько интерфейсов, соответственно, и несколько IP. В Вашем примере первый компьютер может работать через один интерфейс (и видеть один IP адрес маршрутизатора), другой компьютер - через другой интерфейс (и видеть другой IP адрес того же маршрутизатора). А ещё для интерфейса может быть прописан alias (синоним). В случае с NAT всё усложняется, NAT может использовать целый набор IP-адресов (выделенную подсетку). То есть удалённый сервер с которым Вы соединились второй раз, может увидеть совсем другой Ваш IP-адрес, чем это было в первый раз.
В таблицах адресации обычно всё же указывается IP-адрес интерфейса сервера, ближайшего к компьютеру, на котором формируется эта таблица. Поэтому всё работает. Это сообщение отредактировал(а) feodorv - 23.11.2012, 21:53 -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||
|
|||||
ShamanUA |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 28.2.2010 Репутация: нет Всего: нет |
feodorv, я не имею желания с вами спорить, вижу вы любите читать фантастику, читайте больше документацию ... википедия и гугл вам в помощь ...
Друзья, будьте добры помогите хоть какими-то идеями ... |
|||
|
||||
feodorv |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 10 Всего: 45 |
Не понимаю причин столь странной реакции. Если нечто противоречит Вашим убеждениям, то это не значит, что это нечто - фантастика)))
Для чего нужен маршрутизатор (router)?
Конфигурирование alias на сетевых интерфейсах
wikipedia::NAT -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||||
|
|||||||
ShamanUA |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 28.2.2010 Репутация: нет Всего: нет |
feodorv, Я признаю свою неправоту. я немного неправильно понял ваши мысли и случаи которые вы имели в виду.
Я не розлядав случай который вы привели в пример ( Я рассматривал случай когда викоритсовуеться простой роутер .... и все сети которые он обеденяет одного ИР диапазона. В таком случае как привели вы, моя программа должна считать их разными и подниматься для обмена пакетами на один роутер выше.
думаю программе должно быть все равно такой случай, если соединение ушло с першго айпи то и весь обмен данными должно продолжаться с первого айпи, а о инсування другой программа и не догадываться.
Я буду использовать STUN протокол, и после открытия сессии через роутеры, буду ее поддерживать активной ... следовательно мне те що роутер имеет динаминий нат не вредит, так же как и DHCP. при DHCP - произойдет просто пересединения и докачка файла. Мы отклонились от темы. Вопрос поднят в начале темы остается актуальным .... Прошу помочь форумчат, возможно у кого-то какие-то идеи есть .... Это сообщение отредактировал(а) ShamanUA - 25.11.2012, 11:09 |
||||||
|
|||||||
tzirechnoy |
|
||||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 1 Всего: 16 |
О, я смотрю, я только подумал отписаться на ответ мне -- но не отписался. Мда.
Надёжно -- не умеет. И он использует udp hole punching (это второй мой совет) -- а когда не получается переходит на использование (промежуточных) хостов с анонсированными адресами.
Не вдаваясь в совершэнную неверность этой Вашэй фразы -- я имел в виду в адрес последнего NAT-роутера, который и будет виден в сети.
Ну, что я могу тут сказать. Не будет, так не будет, мне-то что. PS Вы ничего не знаете о работе современного IP. Вашы догадки откровенно смешны. Когда Вашы построения Вашэй будущей сети можно понять -- они тожэ смешны, но чаще всего это какой-то набор несвязанных с реальностью терминов, которые просто нельзя понять однозначно. Я не знаю, проблема это в литературе, которую Вы читаете или в Вашэм умении воспринимать информацыю. Но Вам следует что-то сделать с Вашыми знаниями (например, заняться практикой, или сменить детскую литературу для стран третьего мира на RFC и формально-логический подход к их пониманию). |
||||||
|
|||||||
ShamanUA |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 28.2.2010 Репутация: нет Всего: нет |
tzirechnoy, смешно читать такое от человека, который ничего толкового сказать не может, толкько занимается выпендрежем, говоря "я такой умный, а вы все лузеры" ...
если вы такие умные то прочтите первое сообщение и скажите что-то по теме. |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |