Клиенты из разных подсетей не могут одновременно подключаться к серверу

Клиенты из разных подсетей не могут одновременно подключаться к серверу

В прошлом я настраивал серверы для нескольких игр, к которым могли присоединиться либо игроки из-за пределов моей локальной сети, либо игроки из моей локальной сети, но не оба одновременно. Тот, кто присоединился первым, блокировал другого. И локальное, и «удалённое» (интернет) соединения подключаются к одному и тому же сетевому интерфейсу на хосте сервера. Другие игроки того же «типа» (локального или интернет), что и первый присоединившийся, могут подключиться, но ни один из другого «типа». Если все эти игроки отключатся, то игроки другого «типа», которые ранее не могли подключиться, смогут подключиться.

Я намеренно опускаю названия конкретных игр, потому что я не спрашиваю об этих играх. Если окажется, что причиной является игровое программное обеспечение, то так тому и быть. Этот вопрос касается потенциальных сетевых проблем, которые могут быть причиной.

  • Есть ли объяснение, почему сеть ведет себя таким образом?
  • Если это проблема сети, есть ли решение или обходной путь?
  • Если это проблема программного обеспечения/сервера, есть ли объяснение, как это может вызывать такое поведение сети? И есть ли какой-либо обходной путь, который не слишком инвазивный, что-то, что не требует изменения топологии? Возможно, какой-то туннелинг/пересылка, чтобы "обмануть" сервер?

Подробности

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я не эксперт по сетям.
У меня два маршрутизатора NAT "соединены в цепочку". Я думаю о них как о "внутренних" и "внешних". Каждый запускает DHCP, создавая две подсети. (192.168.1-2.x)Обратите внимание, что нет известных проблем с сетью как таковой. Каждый может получить доступ к Интернету и всем адресам/сервисам, которые я бы ожидал.

сеть

Серверы обычно находятся за внутренним маршрутизатором. Локальные пользователи находятся за внешним маршрутизатором и подключаются через переадресацию портов (они находятся в другой подсети, чем сервер). Удаленные/интернет-пользователи проходят через внешний маршрутизатор также через переадресацию портов. Опять же, обратите внимание, что каждый сценарий работает независимо. Просто когда и удаленные, и «локальные» клиенты пытаются подключиться одновременно, кто-то блокируется.

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

решение1

Ваша проблема — двойной NAT.

Ваша конфигурациядолженработают, но неудивительно, что у вас проблемы. Настоящие маршрутизаторы будут работать в вашей настройке просто отлично, но шлюзы NAT "маршрутизаторы", когда они расположены друг за другом, могут вызывать различные нежелательные реакции.

Было бы разумно желать получить объяснение этому, но в случае, когда конфигурация «должна» работать, объяснение можно найти в том, как каждый маршрутизатор реализует NAT и/или переадресацию портов, а даже руководство пользователя устройства не предоставит достаточных технических подробностей по этому вопросу.

Если вы переместите игровой сервер в подсеть за одним маршрутизатором/шлюзом, имеющим выход в Интернет, ваши проблемы должны исчезнуть.

Связанный контент