Мне нужно связать две подсети через VPS по этой схеме:
192.168.1.0/24 -> VPN-клиент -> VPS <- VPN-клиент <- 192.168.2.0/24
Поэтому я хочу достичь, например, 192.168.2.2 из 192.168.1.0/24 и наоборот. Я создал два туннеля OpenVPN, так что 192.168.1.0/24 подключен к первому туннелю, а 192.168.2.0/24 подключен ко второму туннелю. Конечно, я настроил статические маршруты, добавив 192.168.2.0/24 в локальные сети первого туннеля и 192.168.1.0/24 в локальные сети второго туннеля.
Проблема в том, что я ничего не могу получить от клиентов.
Я действительно использовал нечто подобное, чтобы подключиться к моей домашней сети из Интернета.
Моя домашняя сеть находится за сетью операторского класса, поэтому мне приходится перепрыгивать через все наборы обручей, чтобы использовать VPN.
Обратная сторона: очень низкая производительность, когда мы измеряем пропускную способность через VPN по сравнению с обычным интернет-соединением.
Подсказка: у меня соединение 300/300 Мбит / с, но я измерил максимум 17 Мбит / с через VPN.
я использую OpenVPN
в качестве моего VPN-сервера. В основном потому, что мне нужен VPN-сервер, поддерживающий пакеты TCP, поскольку я не могу поддерживать соединение VPN через UDP.
Это настолько плохо, что мне нужно установить таймер поддержки активности на 10 секунд или меньше, иначе NAT операторского класса упадет мое VPN-подключение из моей домашней сети к VPN-серверу. :-(
Итак, мой совет: если вам нужна максимальная производительность вашего VPN-соединения. Переключитесь на пакеты UDP, если это возможно.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ:
Моя сеть VPN в настоящее время неактивна, поэтому в приведенной ниже информации могут быть опечатки здесь и там, но общая идея должен работай.
Тем не мение. Вперед к моей настройке:
Большая часть волшебства происходит на VPN-сервере.
Каждый из моих клиентов подключается к моему серверу с помощью уникального клиентского сертификата. Я использую предоставленное CommonName из клиентского сертификата для поиска в каталоге конфигурации клиента для дальнейших настроек.
Мой VPN-сервер размещен на VPS-сервере (TransIP.eu), который находится в совершенно другой стране, чем я. Я выбрал их, потому что они были дешевыми, а у VPN-сервера есть действительно быстрое соединение в Интернет (10 Гбит / с).
Вам не нужно использовать моего VPS-провайдера. Любой может сделать это, если у вас есть доступ к настройке OpenVPN самостоятельно. :-)
Мое решение в основном построено на этом:
Несколько клиентов OpenVPN на маршрутизируемом TUN
Важные строки в моем server.conf
:
# The actual VPN net.
# Each VPN client connected to the VPN server can ping each other
# on the 192.168.100.0/24 subnet.
server 192.168.100.0 255.255.255.0
# I can't really remember if I need to push the 192.168.100.0/24 subnet
# from the general settings to the client.
#
# All VPN clients gets an IP address from this range.
#
# Comment it out if not needed.
push "route 192.168.100.0 255.255.255.0
ifconfig-pool-persist ipp.txt
# Location of the client specific configuration files.
# It is in the 'ccd/' subfolder.
client-config-dir ccd
# Neccessary so that each VPN client can see each other (aka 'ping').
client-to-client
В моем ccd
в подпапке у меня есть следующие файлы:
RasberryPi4
MyFriend
Содержание файла RasberryPi4
:
ifconfig-push 192.168.100.2 255.255.255.0
push "route 192.168.0.0 255.255.255.0 192.168.100.3 1"
iroute 192.168.1.0 255.255.255.0
Содержание файла MyFriend
:
ifconfig-push 192.168.100.3 255.255.255.0
push "route 192.168.1.0 255.255.255.0 192.168.100.2 1"
iroute 192.168.0.0 255.255.255.0
Теперь предположим, что клиент подключается к VPN-серверу с клиентским сертификатом с общим именем «RasberryPi4», в то время как другой клиентский сертификат имеет общее имя «MyFriend».
Для моего сотового телефона нет специального файла, поэтому, когда он подключается к VPN-серверу, ему назначается доступный IP-адрес в подсети 192.168.100.0/24, но он не может достичь ни 192.168.0.0/24, ни 192.168.1.0/ 24 подсеть.
Если я хочу подключиться к обеим подсетям и у моего телефонного сертификата есть CommonName MyPhone
, то мне нужен другой файл в ccd
подкаталог с именем MyPhone
хотя бы с этими минимальными настройками:
push "route 192.168.0.0 255.255.255.0 192.168.100.3 1"
push "route 192.168.0.0 255.255.255.0 192.168.100.2 1"
Я также расширил приведенную выше конфигурацию, так что я мог отделить подсеть / 48 IPv6 от Hurricane Electric, чтобы у меня и у моего друга была собственная подсеть / 56 IPv6 дома, к которой мог получить доступ любой, у кого есть IPv6-адрес.
... но это совсем другая история. :-)
Надеюсь это поможет. :-)