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


1

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

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

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

подробности

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

сеть

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

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


Находится ли сервер в той же сети, что и локальные пользователи? Как входят удаленные пользователи - через переадресацию портов?
Пол

Я обновлю вопрос.
Аллен

Мой ответ нуждается в пересмотре на основе вашей графики. Является ли IP-адрес локальной сети вашего «внутреннего» маршрутизатора (тот, который находится на игровом сервере и клиенте A) 192.168.2.10? Если ДА, какой это IP-адрес в подсети «Внешний маршрутизатор» (это IP-адрес интерфейса WAN / Internet)?
Twisty Impersonator

Ах, стреляй! Моя схема противоречива. WAN IP внутреннего маршрутизатора: 192.168.2.10. Его локальный IP-адрес - 192.168.1.1.
Аллен

Не волнуйтесь. Это имеет смысл сейчас. Два вопроса: 1) Может ли Клиент А , находящийся в той же подсети, что и игровой сервер, подключаться к нему одновременно с подключением пользователя из Интернета? 2) Вы пытались в целях тестирования переместить игровой сервер в 192.168.2.1/24подсеть?
Twisty Impersonator

Ответы:


2

Двойной NAT-инг - это ваша проблема.

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

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

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


Если проблема заключается в переадресации двух портов, то почему она работает? Описанная мной проблема возникает только с некоторыми серверами. На некоторых серверах как локальные, так и удаленные клиенты могут подключаться одновременно. Даже для серверов, имеющих эту проблему, клиенты с двойным NAT могут подключаться, это просто предотвращает подключение локальных клиентов (и наоборот). Если проблема связана с двойным NAT, то объясните, пожалуйста, как это происходит.
Аллен

2
Это, вероятно, ошибка в реализации NAT. Каковы различия между теми, которые делают и не делают? Лучшим вариантом будет не NAT на внутреннем маршрутизаторе, а только статический маршрут подсети от внешнего маршрутизатора. Это исправление, а не ответ.
Пол

1
Я установил новый сервер за внешним маршрутизатором и установил выделенный сервер CS: Source. Был в состоянии соединиться от Клиента A, ноутбука в подсети 192.168.2.x, и от интернет-клиента. Это один из серверов, который доставлял мне проблемы раньше, когда он находился за внутренним маршрутизатором. «Глючная реализация NAT» кажется мне довольно неправдоподобной, но пока это единственное объяснение.
Аллен

1
Да, это одна из тех вещей, где вы должны видеть, что это происходит снова и снова, прежде чем вы признаете, что то, что должно работать, редко бывает.
Twisty Impersonator
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.