Как объединить две локальные сети через OpenVPN?

Ребят, всем доброго времени суток!
Имею следующее оборудование:
1) Квартира №1 - ASUS RT-AC1300GPLUS на борту есть функция OPENVPN SERVER так же и клиента.
2) Квартира №2 - ASUS TUF-AX3000 V2 на борту есть функция OPENVPN SERVER так же и клиента.
3) Дополнение : Квартира номер 1 имеет статик ip и на 1 роутере развёрнут опенвпн сервер.

Задача состоит в следующем, мне нужно чтобы я мог пинговать все локальные устройства с 1 роутера все устройства второго и всё в точности да наоборот, со 2 на 1 чтобы проходили пинги.
Первая сетка имеет локалку 192.168.0.1-192.168.0.100 со включенным DHCP.
Вторая сетка имеет локалку 192.168.1.1-192.168.1.254 со включенным DHCP.

На первом роутере был создан опенвпн сервер, конфиг прилагаю ниже:
646539a19cc4a912647298.png

На втором сервере, был создан профиль с конфигом первого роутера, всё казалось бы хорошо, конект есть, всё круто!
НО, пингуется лишь только локалка которая находится на первом роутере, тобишь 2 роутер пингует 1, а вот 1 не может пинговать 2....

Мне нужна лишь только локалка, сугубо из-за камер видеонаблюдения и некоторых устройств.

Эксперты подскажите пожалуйста как быть, как выйти из данной проблемы?
Знаю что можно прописать свои команды в конфиг, но какие я так и не нашёл ответ...
Тяжело для меня особенно касаясь роутеров..

Конект со второго роутера ниже:64653a8b32612563699371.png

Заранее спасибо, всем за помощь! Может быть кому-то ещё интересен данный вопрос..
  • Вопрос задан
  • 1686 просмотров
Решения вопроса 1
Frostealth
@Frostealth
Backend Developer
Не помешают конфиги OpenVPN и таблицы маршрутизации с обоих роутеров.
Предполагаю, что на роутере1 (кв1) отсутствует маршрут до сети кв2 через VPN.
Исходный ответ

Настройка маршрутов в ASUS описана здесь: https://www.asus.com/ru/support/FAQ/1011706/

Итак, требуется на роутере1 прописать маршрут к роутеру2 для сети кв2.
Маршрут примерно такой:
- IP-адрес сети: 192.168.1.0
- Сетевая маска: 255.255.255.0
- Шлюз: IP-адрес роутера2 внутри сети VPN, например 10.8.0.2

И не забыть прописать для роутера2 статический адрес (10.8.0.2) для OpenVPN. Иначе OpenVPN сервер может выдать роутеру2 другой IP.

Без маршрута, роутер1 не будет понимать на какой порт/интерфейс направлять запросы к сети 192.168.1.0/24.

Если не заработает, то, вероятно, через сеть VPN в сеть клиента VPN отсутствует NAT. Тогда следует сконфигурировать брандмауэр (firewall) на роутерах, в т.ч. и на роутере1. Настройка брандмауэра в ASUS описана здесь: https://www.asus.com/ru/support/FAQ/1013630/

Необходимо, чтобы брандмауэр на роутере1 пропускал запросы из сети 192.168.1.0/24 в сеть 192.268.0.0/24. И наоборот, на роутере2 - из сети 192.168.0.0/24 в сеть 192.168.1.0/24. Без этого роутер будет отбрасывать все запросы во внутреннюю сеть из других сетей.


При решении данного вопроса с автором возникли проблемы с роутерами ASUS. Клиент (роутер2) ни в какую не видел сеть за сервером (возможно упустил какую-то опцию, "route ..", "iroute" и "push 'route ...'" не помогли). Решение с tap не подходило из-за отключения DHCP на роутере2.
Основная проблема - это невозможность загрузить в роутер целиком файл конфигурации сервером. А документацию консоли роутера (через ssh) найти быстро не удалось.
Если кто знает решение, прошу описать его в комментариях.

Аренда VPS (выделенного сервера) с Ubuntu и поднятие OpenVPN сервера уже на нем с последующим подключением двух роутеров в качестве клиента решили проблему.
Можно поднять и на ПК в сети, конечно. В таком случае нужно будет добавить статический IP для этого ПК и выполнить проброс портов в настройках роутера.

Установку и основную настройку сервера OpenVPN помог упростить скрипт https://git.io/vpn, который пришлось редактировать для замены зашитой в нем сети 10.8.0.0 на другую в связи с наличием пересечения данной сети с другой на одном из роутеров.

Итак, установка и конфигурация сервера OpenVPN на Ubuntu для объединения двух сетей роутеров без выхода в интернет через VPN. Для начала необходимо подключиться к серверу по SSH.

Установка OpenVPN с помощью скрипта через терминал. Скачиваем скрипт и запускаем его командами ниже.
>>> wget https://git.io/vpn -O openvpn-install.sh
>>> sudo bash openvpn-install.sh


Отвечаем на все запросы скрипта, выбираем протокол UDP.
После завершения установки открываем файл nano /etc/openvpn/server/server.conf, удаляем все строки, начинающиеся на push, и добавляем следующее:
ifconfig-pool-persist ipp.txt
client-config-dir /etc/openvpn/server/ccd
client-to-client

route 192.168.0.0 255.255.255.0
push 'route 192.168.0.0 255.255.255.0'

route 192.168.1.0 255.255.255.0
push 'route 192.168.1.0 255.255.255.0'

Пояснение к конфигу

ifconfig-pool-persist ipp.txt - будет сохранять соответствия выданных им IP адресов в файл `ipp.txt`. Таким образом, каждый клиент будет всегда получать один и тот же IP.

client-config-dir /etc/openvpn/server/ccd - указывает серверу директорию с дополнительной конфигурацией для каждого клиента.

client-to-client - разрешает передачу данных между клиентами.

route 192.168.0.0 255.255.255.0 - уведомляет сервер о локальной сети (192.168.0.0/24) клиента.

push 'route 192.168.0.0 255.255.255.0' - сервер будет передавать маршрут к указанной сети всем клиентам.


Далее создадим указанную в конфиге директорию sudo mkdir /etc/openvpn/server/ccd.
И добавим в нее файлы, названия которых будут отражать имена наших клиентов (указываются далее). И пропишем в них какая сеть какому клиенту принадлежит.
/etc/openvpn/server/ccd/router1

iroute 192.168.0.0 255.255.255.0

/etc/openvpn/server/ccd/router2

iroute 192.168.1.0 255.255.255.0


Запускаем скрипт снова для добавления клиента. Для добавления второго запускаем потом еще раз.
После запуска скрипта вводим цифру 1, соответствующую опции 1) Add a new client.
Здесь же и указываем название клиента (router1, router2).
>>> sudo bash openvpn-install.sh

Скачиваем файлы конфигурации для клиентов, которые сгенерировал скрипт, и загружаем соответствующий конфиг при создании OpenVPN клиента на роутерах.
Маршруты на роутерах прописывать не надо, как и правила в брандмауэре. OpenVPN сервер сам отправляет маршруты клиентам, которые мы указали в его конфиге ранее с помощью push 'route ...'.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
iLockMore
@iLockMore Автор вопроса
Подскажи пожалуйста, а как прописать статик ip клиенту впн?
Это в строке с user конфигурациями open vpn server-а?
Если да, то какая строчка ?
Как должна выглядеть функция ?
С остальным вроде
Как понял, но все же если можешь, дай свой контакт телеграмм, или что-то другое для связи, на всякий случай
Спасибо большое !!!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы