Проблема в играх с использованием OpenVPN, которые используют широковещательные пакеты. Другие игры работают, хозяева могут пинговать друг друга

12

Я использую сервер OpenVPN в мостовом режиме, и клиенты могут успешно подключаться, просматривать общую папку и играть в сетевые игры, которые позволяют вводить IP-адрес локальной сети. Однако я не могу играть в такие игры, как Sacred Underworld, я верю, потому что он отправляет широковещательные пакеты. Игра даже не отображается в списке игр на клиентском компьютере.

Я новичок в OpenVPN, но я думаю, что это может быть связано с одной из следующих двух проблем:

  1. Мне может понадобиться какой-нибудь маршрут для правильной обработки широковещательных пакетов (хотя я не уверен, как это настроить)

  2. Мой VPN работает в другой подсети, чем мой маршрутизатор. Т.е. моя домашняя сеть есть 192.168.1.xxи мой VPN использует что-то вроде 10.0.0.xx. Возможно ли, что мне нужно, чтобы мой VPN разделял ту же подсеть, что и моя настоящая сеть (т.е. 192.168.1.xx)? Если так, как я могу настроить это?

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

Ответы:

11

По вопросу 1:

Игры для локальной сети, использующие (UDP) широковещательные рассылки, обычно выбирают сетевой интерфейс, который использует самый низкий показатель для своего широковещательного маршрута (т.е. ip 255.255.255.255). Скорее всего, ваш сетевой интерфейс по умолчанию (например, ваша сетевая карта) имеет наименьшую метрику, поэтому игры транслируются, например, по 192.168.1.0/24локальной сети вместо VPN. Вы можете проверить свою таблицу маршрутов route -vnв Linux или route printWindows.

Чтобы получать широковещательные рассылки по VPN, выполните следующие действия на всех клиентах OpenVPN ( не на сервере):

Добавьте новый широковещательный маршрут ( 255.255.255.255/32) на свой интерфейс OpenVPN с более низкой метрикой, чем та, которую использует ваш сетевой интерфейс по умолчанию. Если такой маршрут уже существует в вашем интерфейсе OpenVPN, просто измените показатель на самый низкий.

В Windows широковещательный маршрут уже существует, поэтому вы можете просто изменить глобальную метрику интерфейса следующим образом:

netsh int ip set int <name_of_your_openvpn_connection> metric=5

Это будет определять приоритет интерфейса OpenVPN, если соединение установлено. Если у вас возникли проблемы с настройкой метрики, попробуйте отключить параметр « Автоматическая метрика» для интерфейса.

В Linux вам, вероятно, просто нужно добавить соответствующий маршрут (при необходимости добавьте метрику):

route add -host 255.255.255.255/32 <your_openvpn_device>

В результате игры, такие как WarCraft III или Anno 1404, будут транслироваться на VPN, а не на локальную локальную сеть (успешно протестирована с сервером Debian OpenVPN и несколькими клиентами Windows 7).


По вопросу 2:

Есть много из учебников (также вспомогательные скрипты ) , доступных на том , как настроить поддержку бриджей в OpenVPN.

Обратите внимание, что вам вообще не нужен сетевой мост, если вы просто хотите играть в сетевые игры через OpenVPN. Достаточно использовать OpenVPN с устройствами-кранами, например, для обработки трансляций или протоколов, таких как IPX, которые необходимы для старых игр.

speakr
источник
1
Потрясающие! Первая часть вашего ответа решила все наши проблемы. Хотя я не понимал, что именно я делал. route printдал мне метрику 286, а ваша команда изменила ее на 261. Как это совпадает с метрикой = 5?
AmShaegar
2
Метрика используется для определения приоритетности маршрутов, когда существует аналогичный маршрут. Я не знаю точно, почему Windows не принимает заданное значение для метрики, но я заметил, что использование подобного метода с низкой метрикой metric=5создает маршрут с самой низкой метрикой, если существуют другие подобные маршруты. Поэтому новый маршрут будет приоритетным для трансляций UPD.
спикер
netsh int ip set int MyTap metric=5не имеет никакого эффекта для Windows 7 32-битной. route printвсе еще показывает старую метрику 265
Alex G
@AlexG Вы пытались установить более низкие значения? Я также добавил ссылку, касающуюся параметра « Автоматическая метрика» для сетевых интерфейсов в Windows, возможно, отключение поможет. Кроме того, я не думаю, что вы уже должны понизить мой ответ, если бы мы даже не могли обсудить проблему, которая у вас возникла с Win7 x86.
спикер
@speakr Я перепробовал все возможные способы, включая отключение автоматической метрики во всех интерфейсах.
Alex G
-1

Существует две метрики: метрика интерфейса и метрика шлюза. Для IPv4 реальная метрика является суммой обоих.

Один или оба могут быть настроены как автоматические. Если вы хотите точное значение, вы должны указать оба.

Вы можете сделать это с помощью мыши, настроив расширенные свойства интерфейса протокола IPv4.

Антонио
источник