Связь между сокетами ZMQ в распределенной системе через Интернет - PullRequest
0 голосов
/ 28 апреля 2018

Я работал над проектом распределенной системы, моя система частично p2p. Моя проблема очень проста, я не знаю, как люди обычно решают ее, потому что у меня нет опыта в этой области, я очень новичок во всем этом.

Я хочу общаться через Интернет между двумя клиентами, у каждого из которых есть сокеты ZMQ .

В моей локальной сети или на моей машине они работают нормально, но при общении через Интернет я никогда не получаю сообщения. Я включил это в список по двум причинам:

1) NAT - он не позволяет моему сообщению добраться до клиентского хоста, кто-нибудь знает, как решить проблему NAT в ZMQ, я слышал о пробое TCP-дыры и тому подобное, как веб-разработчики и другие люди, которые имеют дело с этим, часто справляются с этим?

2) Розетки ZMQ не могут обмениваться данными через Интернет, даже если связь строго между двумя розетками ZMQ, а не розетками BSD и т. Д. Я не уверен в этом, хотя.

Если у кого-то есть опыт в этой области, я был бы благодарен, и это помогло бы мне двигаться вперед, спасибо!

1 Ответ

0 голосов
/ 28 апреля 2018

2) Розетки ZMQ не могут обмениваться данными через Интернет, даже если связь строго между двумя розетками ZMQ

Ну, 2) это просто, сокеты ZeroMQ, очевидно, работают через Интернет.

К этому добавить особо нечего.

1) NAT - он не позволяет моему сообщению добраться до клиентского хоста,

1) заслуживает немного большего внимания:

Правильно, NAT может быть на месте, когда локальные маршрутизаторы локальной сети подключены к одному общедоступному (зарегистрированный, согласованный адрес IPv4 / IPv6).

Далее, в игре может быть еще один ограничитель шоу, FireWall, помещенный в одно или несколько мест (!) - будь то локальный (управляемый O / S, который можно проверить, если у него есть администратор). оценка входа на локальный хост) или один, интегрированный в любой из шлюзов / прокси / политик.

В любом случае, следует провести тщательный анализ проекта с вашим местным администратором (-ами), ответственным за localhost-O / S и элементы сетевой инфраструктуры, и ответственным за всю сеть менеджером / инженером по безопасности.

Часть " КАК? ":

Именно эта (основная) сложность - именно поэтому Game Studios стараются избежать головной боли пользователя при решении этих сложностей и пытаются выработать некоторую стратегию побега.

Для тривиального случая 1-к-1:
Можно действительно использовать набор правил для настройки переадресации портов (если это позволяет FireWall + Gateway), и ваше подключение ZeroMQ может быть направлено на
tcp://<public-IP>:<_a_port#_known_to_be_FWDed_to_a_target_HOST_> адрес.

Для больше, но все еще единиц:
Этот сценарий может показаться легким для одной настройки соединения, но если необходимо иметь единицы или десятки целевых хостов, администраторы шлюза (маршрутизатора) / брандмауэра будут иметь довольно ограниченное желание открывать все больше и больше портов на свободе сторона периметра безопасности. Здесь может помочь другой прием - использование стандартных ssh -инструментов, где соединения могут использовать так называемую локальную переадресацию портов и переадресацию удаленных портов, а межсоединения пользуются одним портом для прохождения брандмауэра + шлюз, плюс содержимое защищено шифрованием. Конечно, с обеих сторон требуются дополнительные административные усилия, однако это известный и разумный способ, если эти усилия и немного увеличенная задержка (добавлено шифрование + обработка дешифрования) не портят ваши планы по задержке UX в игре.

Для более, более нескольких единиц:
Существует возможность повторного использования специального, но опасного для безопасности двустороннего меча - многопользовательской (!) VPN, которая решает глобальные проблемы «видимости» (чаще всего с некоторыми центральными (будь то опубликованными) или нет) координатор обслуживания сопоставления предоставления услуг и аутентификации). Приложения на стороне локального хоста просто начинают видеть другой «локальный» интерфейс, не скоординированный по отношению к его адресам IPv4 / IPv6, но эта частная виртуальная частная сеть VPN, похоже, объединяет всех игроков, чтобы выглядеть так, как будто все они совместно используют одну общую IP-сеть, эффективно обойдя все усилия по обеспечению безопасности / брандмауэру из общепринятых сетевых практик, что в то же время является ее самым серьезным риском для внедрения (не говоря уже о риске основного SPOF в удаленном , центральный, поставщик услуг авторизации / сопоставления, будь то набор мотивов, опубликованных или скрытых).

Игровая индустрия паниковала по всем этим вопросам, так как многопользовательские игры начали продаваться (что для геймеров 2018 / Q2 может выглядеть как с тех пор ), и индустрия пыталась избежать именно этих сложностей. связанные с этим боли, поскольку доминирующая доля подростков, покупающих игры, также не приобрела как настойчивость пациента (для систематического создания правильной настройки), так и достаточно глубокие знания (чтобы знать все общесистемные детали того, где и что нужно настроить или перенастроить, чтобы разблокировать защищенную сквозную онлайн-видимость в игре).

Для действительно многих ко многим случаям:
Хороший пример был начат в конце 1990-х / начале 2000-х годов, когда Сообщество пилотов и виртуальных эскадрилий Ил-2 Штурмовика начало функционировать 24/7/365 «с тех пор». Они использовали спонсируемый Сообществом HyperLobby a Узел-посредник , чтобы все эти сложности были решены раз и навсегда для всех заинтересованных Участников. Облегченная сервисная инфраструктура клиент / сервер HyperLobby выполняла все настройки перенаправления портов и другие посреднические действия на стороне сервера, все грязные хаки невидимы для Pilot (ов) и обеспечивала дополнительные средства для администрирования многих подключенных многопользовательских игровых театров для IL-2. , F / A-18, Су-27 Flanker, CFS, Medal Of Honor и многое другое, что я пытаюсь вспомнить сегодня (превысив десятки тысяч подключенных пилотов IIRC в часы пик). Отличный образец звукового дизайна и выдающихся усилий в течение десятилетий для действительно Глобального онлайн-сообщества (имеющего честь служить в псевдоисторическом VFSQ, с членами, охватывающими 13 часовых поясов - от Гавайев, Бразилии, США, Великобритании, Франции, Германии, Италии, Греции до Турция - летающая с друзьями-единомышленниками из Японии, Австралии, Новой Зеландии и многих других стран по всему земному шару - будь то Восточный / Западный фронт + Тихоокеанский театр, глобально скоординированные выходные дни - миссии, реконструированные до самых исторических деталей, или наслаждение Мемориалом Парад Flyovers на V-Day-годовщины) - ~ Салют ~ Иржи Фойтасек, молодец действительно! - идея которой помогает проиллюстрировать путь, по которому можно идти / следовать (как многие молодые игровые порталы действительно следовали по этому пути).

...