Перевод анонса и небольшой документации проекта PeerVPN, который показался мне интересным.
Это программа, создающая виртуальную локалку из нескольких удалённых компьютеров. Такие сети могут быть полезны для непосредственного общения приложений, например совместного использования файлов или игр. Часто обычными способами наладить такое взаимодействие невозможно из-за фаерволов или NAT.
Традиционные VPN работают по схеме клиент-сервер, когда много узлов соединяются с одним сервером. У такой звёздной топологии есть недостатки. Центральный сервер должен обладать большой пропускной способностью, чтобы обрабатывать весь трафик сети. Если сервер падает, сеть падает следом.
PeerVPN работает по распределённой технологии, когда все узлы общаются друг с другом без необходимости в центральном сервере. Если один узел отключается, на сеть это не влияет.
Настроить сеть просто. Нужно задать имя сети, пароль и контактную информацию (IP и порт) другого узла. Добавление новых узлов не требует перенастройки сети, их адреса раздаются по сети автоматически.
— поддержка Ethernet через TAP
— поддержка IPv6
— распределённая технология
— автоматическое поднятие туннелей через фаервол и NAT без дополнительных настроек
— поддержка совместно используемых ключей и авторизации
Linux и FreeBSD. Требуется наличие OpenSSL
PeerVPN распространяется по лицензии GPLv3.
Версия 0.042 (2015-01-21)
source code: peervpn-0-042.tar.gz
statically linked x86 binary for Linux: peervpn-0-042-linux-x86.tar.gz
www.peervpn.net
Допустим, вы установили PeerVPN на два Linux-компьютера, которые мы будем называть «Узел А» и «Узел Б».
Создайте файл peervpn.conf следующего содержания:
Будет открыт UDP-порт 7000 и создан виртуальный Ethernet-интерфейс под именем peervpn0 и с адресом 10.8.0.1.
Узел А должен быть доступен напрямую с узла Б. Если узел А находится за NAT, нужно прокинуть 7000 порт.
Создайте файл peervpn.conf следующего содержания:
Вместо node-a.example.com нужно подставить адрес узла А.
Запустите PeerVPN на обоих нодах. На каждой должен появиться интерфейс peervpn0. Установка туннеля VPN может занять некоторое время. Попробуйте пингануть 10.8.0.2 с узла А или 10.8.0.1 с узла Б. Если ответ получен, то VPN работает!
Скопируйте peervpn.conf с узла Б на новый узел и поменяйте IP в команде ifconfig на 10.8.0.3, 10.8.0.4, и т.д. При запуске узла сначала будет построен туннель к узлу А, а через некоторое время – к узлу Б и другим узлам сети.
PeerVPN
Это программа, создающая виртуальную локалку из нескольких удалённых компьютеров. Такие сети могут быть полезны для непосредственного общения приложений, например совместного использования файлов или игр. Часто обычными способами наладить такое взаимодействие невозможно из-за фаерволов или NAT.
Традиционные VPN работают по схеме клиент-сервер, когда много узлов соединяются с одним сервером. У такой звёздной топологии есть недостатки. Центральный сервер должен обладать большой пропускной способностью, чтобы обрабатывать весь трафик сети. Если сервер падает, сеть падает следом.
PeerVPN работает по распределённой технологии, когда все узлы общаются друг с другом без необходимости в центральном сервере. Если один узел отключается, на сеть это не влияет.
Настроить сеть просто. Нужно задать имя сети, пароль и контактную информацию (IP и порт) другого узла. Добавление новых узлов не требует перенастройки сети, их адреса раздаются по сети автоматически.
Свойства
— поддержка Ethernet через TAP
— поддержка IPv6
— распределённая технология
— автоматическое поднятие туннелей через фаервол и NAT без дополнительных настроек
— поддержка совместно используемых ключей и авторизации
Платформы
Linux и FreeBSD. Требуется наличие OpenSSL
Лицензия
PeerVPN распространяется по лицензии GPLv3.
Скачать
Версия 0.042 (2015-01-21)
source code: peervpn-0-042.tar.gz
statically linked x86 binary for Linux: peervpn-0-042-linux-x86.tar.gz
Веб-страница
www.peervpn.net
Пример настройки
Допустим, вы установили PeerVPN на два Linux-компьютера, которые мы будем называть «Узел А» и «Узел Б».
Настройка узла А
Создайте файл peervpn.conf следующего содержания:
port 7000
networkname ExampleNet
psk mysecretpassword
enabletunneling yes
interface peervpn0
ifconfig4 10.8.0.1/24
Будет открыт UDP-порт 7000 и создан виртуальный Ethernet-интерфейс под именем peervpn0 и с адресом 10.8.0.1.
Узел А должен быть доступен напрямую с узла Б. Если узел А находится за NAT, нужно прокинуть 7000 порт.
Настройка узла Б
Создайте файл peervpn.conf следующего содержания:
port 7000
networkname ExampleNet
psk mysecretpassword
enabletunneling yes
interface peervpn0
ifconfig4 10.8.0.2/24
initpeers node-a.example.com 7000
Вместо node-a.example.com нужно подставить адрес узла А.
Тестирование
Запустите PeerVPN на обоих нодах. На каждой должен появиться интерфейс peervpn0. Установка туннеля VPN может занять некоторое время. Попробуйте пингануть 10.8.0.2 с узла А или 10.8.0.1 с узла Б. Если ответ получен, то VPN работает!
Добавление узлов в сеть
Скопируйте peervpn.conf с узла Б на новый узел и поменяйте IP в команде ifconfig на 10.8.0.3, 10.8.0.4, и т.д. При запуске узла сначала будет построен туннель к узлу А, а через некоторое время – к узлу Б и другим узлам сети.