Автор Тема: Ejabberd, передача файлов из-за NAT за NAT  (Прочитано 6603 раз)

Оффлайн XBM

  • Участник
  • *
  • Сообщений: 478
  • Бэкап - акт проявления трусости.
Отпишитесь, pls, кто поднял свой ejabberd сервер и добился передачи файлов из-за NAT за NAT.
Ну хотя бы просто скажите "У меня работает, клиенты "такие" и "такие" . (но не обещаю, что вопросов больше не будет :) )
Какой протокол используете? SI/IIB, OOB с прокси, STUN/TURN ? или какой-то более правильный способ? Какие ещё кроме 5222 и 7777 порты надо открыть на сервере?

А то, понимаешь, внутри сети файлы передаются, даже с разных подсетей передаются да и сидя за одним NATом люди могут передавать друг другу файлы, а вот из одного учреждения в другое (из-за NAT за NAT) ну ни как!
В теории "OOB с прокси" весьма удобный способ. Хотелось бы быть уверенным, что он у кого-то работает.

установлен ejabberd-2.0.5-alt1
mod_proxy65 в конфиге сервера установлен, служба proxy.myJabber клиентами (Psi+, Pidgin, Kopete, Qip) видится.



MisHel64

  • Гость
Re: Ejabberd, передача файлов из-за NAT за NAT
« Ответ #1 : 15.05.2010 21:32:22 »
Отпишитесь, pls, кто поднял свой ejabberd сервер и добился передачи файлов из-за NAT за NAT.
Я не поднимал свой джабер, но (возможно) подобную проблему решал. Могу поделится общим алгоритмом решения проблемы, если интересно.

Оффлайн XBM

  • Участник
  • *
  • Сообщений: 478
  • Бэкап - акт проявления трусости.
Re: Ejabberd, передача файлов из-за NAT за NAT
« Ответ #2 : 17.05.2010 08:01:13 »
Да, очень интересно. Напиши пожалуйста. Я уже неделю топчусь на одном месте. :(

MisHel64

  • Гость
Re: Ejabberd, передача файлов из-за NAT за NAT
« Ответ #3 : 17.05.2010 09:05:54 »
Да, очень интересно. Напиши пожалуйста. Я уже неделю топчусь на одном месте. :(
Тогда уточняющий вопрос.
Я так понял, что у вас есть локальная сеть. В этой сети стоит демон джабера. И стоит он не на гейте.

Есть вторая локальная сеть.
1) В ней стоит джабер сервер, и нужно связать его с первым джабер сервером.
2) В ней только джабер клиенты, которые должны получить доступ к серверу из первой сети.
3) Нужно в добавок обеспечить прямое взаимодействие между клиентами?

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

Оффлайн XBM

  • Участник
  • *
  • Сообщений: 478
  • Бэкап - акт проявления трусости.
Re: Ejabberd, передача файлов из-за NAT за NAT
« Ответ #4 : 17.05.2010 10:44:24 »
Цитировать
Я так понял, что у вас есть локальная сеть. В этой сети стоит демон джабера. И стоит он не на гейте.
Да, так. С гейта проброшены три порта (5222, 5280, 7777) на машину, на которой крутится ejabberd.
Демон джабера один и только один.
Далее, есть несколько подведомственных учреждений, которые разбросаны по всему городу. В них есть свои локалки. Эти локалки закрыты снаружи файерволлами. Изнутри выход свободный с NAT(ом). (Если надо, правила и настройки поменяю так как будет нужно) В этих учреждениях запущены jabber-клиенты (этих клиентов зоопарк, опять-же, если надо, то оставим только нужные), клиенты прекрасно видят мой ejabberd-сервер, подключаются и общаются между собой (задача транспорта с другими серверами и протоколами пока неактуальна). Проблема в том, что пользователи не могут передавать друг-другу файлы из одного учреждения в другое. Принимающий получает "Ошибка соединеия с узлом xxx@myjabber", а отправляющий - "yyy@myjabber отменил передачу". Служба proxy.myjabber клиентами видится и указана в настройках. В пределах одной локалки файлы передаются.
Не совсем понял, что такое "прямое взаимодействие", p2p передача файлов? Нет, это не обязательно, достаточно способа передачи "OOB через прокси".
Туннель это VPN? нет, это, мне кажется, неудобно. Но могу и ошибаться . Рассмотрю все варианты.
Спасибо.



MisHel64

  • Гость
Re: Ejabberd, передача файлов из-за NAT за NAT
« Ответ #5 : 17.05.2010 18:09:59 »
клиенты прекрасно видят мой ejabberd-сервер, подключаются и общаются между собой
Это видимость, что они общаются между собой. А на деле трафик идет только от клиента к серверу.

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

Не совсем понял, что такое "прямое взаимодействие", p2p передача файлов?
Да. Передача точка-точка, но термин p2p в данном случае не применим.

Цитировать
"OOB через прокси".
А вот это умеет передавать файлы? И оно работает?

Цитировать
Туннель это VPN? нет, это, мне кажется, неудобно.
Тут вопрос в терминологии. И в зависимости от понимания слова VPN ответ будет или положительный, или отрицательный.

Цитировать
Но могу и ошибаться. Рассмотрю все варианты.
У вас только два варианта.
1) Если клиент может передать файл на прокси, а потом объяснить второму клиенту, что он должен забрать файл с прокси, тогда настраивать этот прокси. И причем именно второй клиент должен забирать с прокси, а не прокси отсылать клиенту.
2) Поднять туннель. GRE туннель поднимается в легкую, и если провайдер не жадный, то отлично работает. Есть и другие типы. Есть OpenVPN.

Оффлайн XBM

  • Участник
  • *
  • Сообщений: 478
  • Бэкап - акт проявления трусости.
Re: Ejabberd, передача файлов из-за NAT за NAT
« Ответ #6 : 17.05.2010 20:21:23 »
клиенты прекрасно видят мой ejabberd-сервер, подключаются и общаются между собой
Это видимость, что они общаются между собой. А на деле трафик идет только от клиента к серверу.
Да, это понятно и именно это имелось ввиду.

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

Цитировать
"OOB через прокси".
А вот это умеет передавать файлы? И оно работает?
Это заявлено в функционале джаббер-сервера в виде наличия транспорта mod_proxy65, у клиентов есть настройки на этот проху. Как раз этого и хотелось бы добится. И менно эта штука не работает! Собственно из-за желания заставить работать "OOB через прокси" возник этот топик.

Цитировать
Туннель это VPN? нет, это, мне кажется, неудобно.
Тут вопрос в терминологии. И в зависимости от понимания слова VPN ответ будет или положительный, или отрицательный.

Цитировать
Но могу и ошибаться. Рассмотрю все варианты.
У вас только два варианта.
1) Если клиент может передать файл на прокси, а потом объяснить второму клиенту, что он должен забрать файл с прокси, тогда настраивать этот прокси. И причем именно второй клиент должен забирать с прокси, а не прокси отсылать клиенту.
2) Поднять туннель. GRE туннель поднимается в легкую, и если провайдер не жадный, то отлично работает. Есть и другие типы. Есть OpenVPN.
Первый вариант предпочтительней. Но то-ли я криво настроил, то-ли реализованный функционал отличается от заявленного.
Со вторым вариантом сложнее. На гейте стоит win2003 и kerio и сносить его я буду не раньше чем разберусь как управляться с iptables.
Могу пробросить нужные порты на машину, где крутится джабер. При таком раскладе возможно поднять GRE туннель? И мне совершенно не нужно
видеть в моей локалке компьютеры подведомственных учреждений, и соответственно им не надо видеть мои. Это возможно сделать?
Городской провайдер не жадный, до многих учреждений проброшена оптика.  ;)

MisHel64

  • Гость
Re: Ejabberd, передача файлов из-за NAT за NAT
« Ответ #7 : 17.05.2010 21:05:42 »
У вас только два варианта.
1) Если клиент может передать файл на прокси, а потом объяснить второму клиенту, что он должен забрать файл с прокси, тогда настраивать этот прокси. И причем именно второй клиент должен забирать с прокси, а не прокси отсылать клиенту.
Первый вариант предпочтительней. Но то-ли я криво настроил, то-ли реализованный функционал отличается от заявленного.
Беглое изучение результатов выданных гуглем по запросу "mod_proxy65" наводит именно на такую мысль. Попробуйте почитать внимательно, может вам повезет, ссылок масса.

У вас только два варианта.
2) Поднять туннель. GRE туннель поднимается в легкую, и если провайдер не жадный, то отлично работает. Есть и другие типы. Есть OpenVPN.
Со вторым вариантом сложнее. На гейте стоит win2003 и kerio и сносить его я буду не раньше чем разберусь как управляться с iptables.
Гейтов у вас как минимум два. Что стоит на других гейтах. Если на всех гейтах windows, то настроить туннели вообще не проблема. Но это выходит за рамки данного форума, и документации как грязи.
Если хоть на одном стоит юникс, то на нем делается сервер PPtP, то любой windows умеет цепляться к этому серверу из коробки. Юниксы научить то же не проблема. То есть гугль в руки, и через пару часов у вас будет туннель. Вопрос только какой.
 
Могу пробросить нужные порты на машину, где крутится джабер. При таком раскладе возможно поднять GRE туннель?
Э.... вы не о том совершенно. Почитайте об этом туннеле.

И мне совершенно не нужно видеть в моей локалке компьютеры подведомственных учреждений, и соответственно им не надо видеть мои. Это возможно сделать?
А вы и не будете. Только допилив напильником получите обратный результат. Тут дока на самбу в помощь, что бы понять, как работают проузеры сети.

Оффлайн XBM

  • Участник
  • *
  • Сообщений: 478
  • Бэкап - акт проявления трусости.
Re: Ejabberd, передача файлов из-за NAT за NAT
« Ответ #8 : 18.05.2010 07:35:33 »
Беглое изучение результатов выданных гуглем по запросу "mod_proxy65" наводит именно на такую мысль. Попробуйте почитать внимательно, может вам повезет, ссылок масса.
Эту массу ссылок за неделю я уже выучил наизусть. :) В подавляющем большинстве они сводится к тому, что написано в поставляемой документации. Мне этого оказалось недостаточно. :( Вот и хочется пообщаться с человеком, у которого вся эта теория воплощена в реальности.

Гейтов у вас как минимум два. Что стоит на других гейтах. Если на всех гейтах windows, то настроить туннели вообще не проблема. Но это выходит за рамки данного форума, и документации как грязи.
Если хоть на одном стоит юникс, то на нем делается сервер PPtP, то любой windows умеет цепляться к этому серверу из коробки. Юниксы научить то же не проблема. То есть гугль в руки, и через пару часов у вас будет туннель. Вопрос только какой.
На других гейтах тоже мешанина. Преимущественно коробочки типа DLink Dir-100, кое-где OutPostFirewall и несколько "Чорт-его-знает-что" куда я доступа не имею.
Нет, туннель отпадает. Слишком много телодвижений. Надо чтобы было не хуже чем сейчас: Разослал пользователям ссылку на клиента с кратким указанием на какой адрес/порт цеплять, они установили и всё, работают.
Спасибо за попытку помочь.

Оффлайн XBM

  • Участник
  • *
  • Сообщений: 478
  • Бэкап - акт проявления трусости.
Re: Ejabberd, передача файлов из-за NAT за NAT
« Ответ #9 : 20.05.2010 14:04:58 »
Вот, из консоли скопировал. (несущественные строки удалил)
<iq type="set" to="000@uo.vega-int.ru/Работа" id="aacca">
<file xmlns="http://jabber.org/protocol/si/profile/file-transfer" size="26671" name="08650138c.jpg">
<field type="list-single" var="stream-method">
....
<iq from="000@uo.vega-int.ru/Работа" type="result" xml:lang="ru" to="ya@uo.vega-int.ru/Psi+" id="aacca">
<x xmlns="jabber:x:data" type="submit">
....
<iq type="get" to="proxy.uo.vega-int.ru" id="aacda">
....
<iq from="proxy.uo.vega-int.ru" type="error" xml:lang="ru" to="ya@uo.vega-int.ru/Psi+" id="aacda">
<error type="cancel" code="503">
<service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
Таки получается, что служба "proxy.uo.vega-int.ru" настроена, но работать отказывается?