Назад | Перейти на главную страницу

Создайте одноранговую VPN с 4 узлами

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

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

Потребность будет:

  1. Сеть без центра (без единой точки отказа)
  2. Пакет идет прямо к месту назначения (от узла к узлу)
  3. Это должна быть единая сеть (без маршрутизации)

Я могу придумать некоторые решения, но они не проверяют эти три пункта:

Первым решением (S1 на изображении) будет создание мостовой VPN на узле и подключение к нему других узлов. Эти два пункта не соблюдаются. Действительно, существует единственная точка отказа (VPN-сервер), и пакет, который переходит от VPN-клиента к другому, должен будет пройти через VPN-сервер (точка 2).

Другое решение (S2 на изображении) - создать мост между каждым узлом (с VPN-клиентом и сервером) и включить связующее дерево для очистки петель. Здесь мы соблюдаем первое правило, так как STP изменит форму сети в случае отказа узла, но мы по-прежнему не соблюдаем пункт 2, поскольку протокол связующего дерева отключит некоторые ссылки.

Для третьего (S3 на изображении) решения можно было бы создать 3 разных частных сети (например, 10.1.0.0/16 для узла 1, 10.2.0.0/16 для узла 2 ... и маршрутизировать пакет между серверы, использующие связь между узлами. Это решение удовлетворит потребности 1 и 2, но, конечно, не 3.

Фактически, я хотел бы, чтобы весь узел работал как распределенный коммутатор, отправляя пакет только тому узлу, который содержит IP-адрес назначения.

Есть ли решение, которое соответствовало бы этим трем точкам?

IPsec в транспортном режиме сделает это, но на самом деле это невозможно масштабировать. Четыре узла - это максимум, о котором я бы даже подумал.

В настоящее время я использую strongSwan для IPsec в Linux, который достаточно легко настроить таким образом.


Поскольку вы отредактировали свой вопрос и немного изменили требования, я рекомендую вам вместо этого взглянуть на Open vSwitch.