Сервер пытается установить связь с локальным IP-адресом Клиента из другой сети.

311
user3837690

Я неграмотный в сети, но я пытаюсь заставить Сервер в моей домашней сети общаться с некоторыми Клиентами в домашней сети моего друга через Интернет. Ни у моего друга, ни у меня нет статического публичного IP, и мы не собираемся покупать статические IP для наших клиентов и серверов.

Диаграмма нашей настройки ниже: ServerClientWAN

Я настроил переадресацию портов на моем маршрутизаторе так, чтобы связь через определенный порт с моим общедоступным IP-адресом перенаправлялась на локальный IP-адрес моего сервера. При такой настройке мой Сервер может видеть клиентов и получать входящие сообщения от клиента, но по какой-то причине он пытается отправлять сообщения клиентам на их локальные IP-адреса из домашней сети моего друга. Серверы и клиенты используют собственный протокол TCP / IP. Мой сервер видит IP-адреса клиента как 192.168.0.X, как показано на рисунке ниже. Есть идеи о том, что мы можем делать неправильно? Я бы подумал, что общение с клиентами будет происходить с публичного IP моего друга? Это может быть случай, когда наши сообщения протокола поступают с локального IP-адреса, и сервер анализирует эти сообщения, чтобы ответить на конечных точках локального IP-адреса Клиента. В этом случае,

Ограничения заключаются в том, что Сервер и Клиенты являются «заблокированными» устройствами, поэтому мы хотели бы избежать изменений на уровне ОС / приложений. Может быть, мы можем настроить какой-то VPN или VLAN (это через Интернет)? Иными словами, мы предпочитаем придумать сетевое решение этой проблемы. Мы можем добавить устройства, отличные от Сервера и Клиента, в сеть, чтобы решить эту проблему, но мы не хотим «программировать» новое приложение, которое маршрутизирует наши сообщения протокола.

0

1 ответ на вопрос

0
Linef4ult

Без рассматриваемого протокола невозможно сказать подробно, но кажется, что вы намеренно расплывчаты, поэтому я отвечу в целом.

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

Чтобы устранить эту проблему, вам нужно создать Ethernet-соединение с мостовым соединением, OpenVPN или другие будут управлять этим, но его значительно сложнее настроить по сравнению с обычным VPN на уровне IP. Также, поскольку вы не можете изменять клиентов, вам нужно, чтобы его маршрутизатор был VPN-клиентом, поэтому его может потребоваться замена. Вы можете разместить VPN на любом компьютере в сети, на котором может работать программное обеспечение X86.

Оказывается, сервер отвечает клиенту по IP-адресу, который клиент отправляет как часть своего сообщения конфигурации. IP-адрес клиента - это локальный IP-адрес. Итак, вы правы, нам нужно настроить LAN-LAN VPN. Спасибо! user3837690 8 лет назад 0

Похожие вопросы