LINUX.ORG.RU
ФорумAdmin

Как соединить 2 сетки за NAT


0

0

Есть 2 сети обе находться за NAT не подконтрольный мне можно ли их соединить, может есть в сети службы которые например принимают входящие с 2х tcp соединений и перенаправляют одно в другое?

anonymous

Это будет сложно сделать, однако...
Тебе нужен туннель (хорошая идея - OpenVPN), но проблема тут в том, что инициатор соединения не сможет достучаться до второй стороны. 

Поэтому:
1. или придется просить прова, чтобы он сделал статический нат на одну из твоих машин в одной из сетей.
2. или использовать сервер, который стоит в голом инете и на который есть доступ, и установить из обоих сетей с ним туннель OpenVPN в режиме роутинг. Тогда два любых компа из разных сетей будут пинговаться. А если можно посадить все компы в одну общую сеть, то тогда делаешь туннель в режиме бриджинг и тогда даже броадкасты ходить будут (надо ли это?).

Думай, что легче сделать :)

Spez
()
Ответ на: комментарий от Spez

нет компа в голом интернете может есть стандартные службы?

anonymous
()

Ни одна служба не сможет установить соединение с двумя компами, находящимися за NAT'ом, т.к. они имеют серые адреса. Так что даже не беспокойся на эту тему. В твоем варианте напрямую не получится, надо искать обходные пути.

Spez
()
Ответ на: комментарий от Spez

ну дык я и ищи может есть служба ... регистрируешся тебе дают порты куда надо коннектиться я изнутри обеих сетей инициирую tcp или udp соединения а эта служба мне "туда-сюда" ... :-)

anonymous
()

Значит мы имеем в виду разные понятия слова "служба"...

Не знаю, есть ли такие службы.

Spez
()
Ответ на: комментарий от Spez

а может у меня получиться пиринговые сети в этой роли заюзать?

anonymous
()
Ответ на: комментарий от anonymous

Что то я совсем не понял это послание:

>регистрируешся тебе дают порты куда надо коннектиться я изнутри обеих сетей инициирую tcp или udp соединения а эта служба мне "туда-сюда"

Где регестрируешься? Если обе сети за NAT, то все проблема в том, как установить хотя бы одно соедиенени, а не в службе, которая:

>принимают входящие с 2х tcp соединений и перенаправляют одно в другое?

ИМХО, Теоретически возможность установления соединия/тунеля есть, так как обыно NAT не изменяет порты, а только src ip адрес, поэтому если комп первой сети отправит UDP пакет с TTL=2 на адрес, с которого NAT'ят вторую сеть, то после этого пакет отправленый из второй сети на адрес, с которого NAT'ят первую сеть может пройти... Но это все теория, пока у меня нет времени ее проверить. Для ее реализации нужен cipe, синхронизация часов компьютеров за NAT'ом и программка, генерящая заданный UDP пакет и скрипт, все этим управляющий...

mky ★★★★★
()
Ответ на: комментарий от mky

я пробовал делать это не с udp а с icmp маршрутизатор внешний предположительно cisco она меняет у исходящих icmp датаграм поле ID IP пакета. При этом когда приходит ответный icmp то видимо трасировщик нат убирает запись и поэтому ответный трафик с таким же ID второй раз уже не проходит. должно работать только как запрос-ответ. у UDP скорей всего ID тоже меняет да и вдобавок может порт источника всеже смениться (хотя опятьже наврядли.) но как быть с ID их всеже 65к вариаций :-)

anonymous
()
Ответ на: комментарий от anonymous

Да, надо проверит насчет id поля ip пакета.

SRC порт обычно стараются не менять, меняют только если он не привелигированный или уже занят для NAT... хотя все зависит от реализации NAT... Я свое утверждение проверял только на Linux и Cisco (ADSL)

mky ★★★★★
()
Ответ на: комментарий от anonymous

Сомневаютсь, что кто-нибудь даст конкретный рецепт как это сделать. Думаю, что и в Инете нет готового решения. Да к тому же, часто NAT объединяют с firewall и достаточно хорошо перекрывают порты.

В общем, удачи...

mky ★★★★★
()

Что тебе надо понятно: тебе нужен тунель в инете к концам которого ты мог бы приконектиться из за ната. Это типа SOCKS которые надо натравить друг на друга ;) или stunnel (или любая другая хрень которая умеет делать тунели).

user----socks-----socks----user

user----stunnel----stunnel----user

может поможет

infinite
()
Ответ на: комментарий от infinite

Иметь отдельную машину с реальным ипом в инете нужно, но вот весь трафик гонять через неё необязательно. Машина нужна только для установки соединения. Подробное описание схемы работы тут кто-то уже бросал:

http://www.brynosaurus.com/pub/net/p2pnat/

Проще всего можно сделать прямое udp-соединение из-за специфики этого протокола. Над udp можно уже сделать IP-туннель. Только вот я не нашел готовых реализаций такой схемы. Может, плохо искал.

Sorcerer ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.