Управление сетевым трафиком (Виртуальная локальная сеть) - PullRequest
1 голос
/ 24 июня 2009

Мне интересно узнать больше о манипулировании сетевым трафиком, чтобы использовать программы только для локальной сети (в данном случае игры) через Интернет.

Уже существует несколько программ, которые делают это ( Hamachi , GArena ), но мне интересно узнать, как они подходят к этому и как построить это с самого начала.

Очевидно, что вам нужно захватывать трафик - для Windows я слышал упоминание о WinPCap, который, кажется, способен делать то, что мне нужно, хотя мне нужно изучить его дальше.

Я ищу статьи, общие знания и даже книги, которые могут показать мне, с чего начать, что делать и т. Д. Спасибо.

Ответы [ 2 ]

0 голосов
/ 24 июня 2009
0 голосов
/ 24 июня 2009

Звучит так, будто вы хотите туннелировать существующий протокол локальной сети через wan. Который является другим способом сказать Виртуальную частную сеть. Я бы попытался настроить существующий, используя маршрутизатор, поддерживающий такую ​​функцию, или настроить его, например, на. коробка Linux.

Просто вам нужно найти некоторые материалы по VPN / IP-туннелированию. Как они работают, обычно очень просто (но более сложно, когда вы включаете аутентификацию и шифрование). Основы в значительной степени:

  • Создайте сервер и клиент, которые могут общаться друг с другом через Интернет, имея доступ к локальной сети на обоих концах.
  • Захват трафика в локальной сети. Поместите указанный пакет, например, внутри. пакет UDP и отправьте его через Интернет на другую сторону.
  • При получении пакета получите данные UDP-пакета, который является IP-пакетом с другого конца, отправьте его в локальную локальную сеть.
  • Манипулируйте IP-адресами в вышеуказанном пакете, чтобы они соответствовали локальной сети.

Чем длиннее история, тем длиннее, ваше программное обеспечение должно действовать как прозрачный маршрутизатор, и / или ПК локальной сети должны быть настроены с определенным IP-маршрутом для достижения другого конца.

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

...