LINUX.ORG.RU
решено ФорумAdmin

Очередной OpenVPN объединения двух локалок тред

 , , ,


1

1

Задача состоит в объединении трех квартир в одну сеть посредством OpenVPN. В каждой квартире стоит роутер с OpenWRT.

Как работает сейчас:

Квартира 1: сеть 192.168.10.0/24, на роутере настроен OpenVPN-сервер с таким конфигом:

client-to-client
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
dev tap
dh /etc/openvpn/dh2048.pem
ifconfig-pool-persist /etc/openvpn/ipp.txt 0
keepalive 10 60
key /etc/openvpn/server.key
proto tcp4
server-bridge 192.168.10.1 255.255.255.0 192.168.10.128 192.168.10.254
status /var/log/openvpn-status.log
verb 3
comp-lzo
Квартиры 2 и 3 имеют свои сети, а их комьютеры настроены в качестве OpenVPN-клиентов сервера в квартире 1

Чего хочу: Хочу настроить роутеры в квартире 2 и 3 таким образом, чтобы их внутренняя сеть также находилась в сети 192.168.10.0/24 и чтобы они являлись клиентами OpenVPN-сервера в той же сети (участники сети роутера были участниками сети OpenVPN-сервера)

Например:

  • роутер, являющийся сервером в квартире 1, имеет IP 192.168.10.1 и выдает клиентам адреса в диапазоне 192.168.10.2-192.168.10.99
  • роутер из квартиры 2 имеет IP 192.168.10.100 и выдает клиентам адреса в диапазоне 192.168.10.101-192.168.10.149
  • роутер из квартиры 3, соответственно, имеет IP 192.168.10.150 и выдает своим клиентам адреса в диапазоне 192.168.10.151-192.168.10.199

Также важно, чтобы, если по каким-то причинам OpenVPN-сервер недоступен, локальная сеть и доступ к Интернету в квартире 2 и 3 сохранялись

Насколько я понимаю, моя конфигурация OpenVPN сервера для этого подходит, за исключением диапазона адресов клиентов, но это легко исправить. Как нужно настраивать клиентские роутеры? Правильно ли я понимаю, что все что мне нужно сделать - это настроить обычный клиент OpenVPN и добавить интерфейс tap0 в мост br-lan, создаваемый OpenWRT по дефолту для объединения WiFi и LAN?

★★★★★

Покажи таблицу маршрутизации на роутерах. Посмотри ещё tcpdump-ом, какие пакеты через tap-интерфейсы ходят (на всех трёх маршрутизаторах)

XMs ★★★★★ ()
Ответ на: комментарий от XMs

я пока еще не настраивал клиентские роутеры. Я просто интересуюсь, правильно ли я понял свою задачу. На данный момент настроено так, что на каждом компьютере из квартиры 2 и 3 настроен OpenVPN клиент и это работает, но я хочу, чтобы на конечных устройствах не нужно было ничего дополнительно конфигурировать, а сами роутеры выполняли бриджинг

r0ck3r ★★★★★ ()
Последнее исправление: r0ck3r (всего исправлений: 2)
Ответ на: комментарий от r0ck3r

Спать хочу, поэтому прочитал по диагонали.

Если я не ошибаюсь, тебе с сервера надо запушить маршрутизацию клиентам (и настроить на самом сервере маршрутизацию в сети клиентов). Клиенты ведь получают свои адреса по DHCP? Очень может быть, что для каждого клиента надо будет составлять свой список маршрутов (точнее, один будет общий для всех клиентов — в сеть сервера, а в сети других клиентов списки будут индивидуальны)

XMs ★★★★★ ()
Ответ на: комментарий от XMs

Да, я хочу чтобы клиенты получали свои адреса по DHCP от своего роутера, а не от того где находится сервер OpenVPN, так как мне нужна отказоустойчивость, чтобы если не работает сервер, клиенты этого никак не замечали за исключения отсутствия доступа к общим ресурсам из других сетей

r0ck3r ★★★★★ ()
Ответ на: комментарий от XMs

но суть с пушем маршрутов примерно ясна. То есть нужно добавить маршруты на всю сеть 192.168.10.0/24 за исключением адресов конкретно этого сегмента

r0ck3r ★★★★★ ()
Ответ на: комментарий от r0ck3r

Да, я хочу чтобы клиенты получали свои адреса по DHCP от своего роутера, а не от того где находится сервер OpenVPN

Машины за роутерами разницы не заметят и свои адреса будут получать от своих роутеров. Шлюзом для них также будет являться роутер. А уже на роутере пакеты в нужную сеть будут заворачиваться в VPN согласно таблице маршрутизации.


То есть нужно добавить маршруты на всю сеть 192.168.10.0/24 за исключением адресов конкретно этого сегмента

Да. ЕМНИП, в мане про это рассказывалось где-то в районе опции ccd (client-config-dir)

XMs ★★★★★ ()
Ответ на: комментарий от XMs

Спасибо! То есть принцип настройки роутера следующий: настраиваю клиент на роутере как обычно, добавляю интерфейс tap0 в мост br-lan, прописываю маршруты до узлов сети либо на роутере, либо через push route на сервере. И все должно работать, правильно?

r0ck3r ★★★★★ ()
Ответ на: комментарий от r0ck3r

добавляю интерфейс tap0 в мост br-lan

Вот этого не нужно (тебе же надо сохранить возможность обращаться к роутеру по его VPN-адресу, чтобы пакеты ходили).


прописываю маршруты до узлов сети либо на роутере, либо через push route на сервере

Скорее «либо на роутерах, либо через push route на сервере». У тебя ведь роутеров-клиентов больше одного.

Остальное правильно, по крайней мере, должно работать

XMs ★★★★★ ()
Ответ на: комментарий от XMs

Вот этого не нужно (тебе же надо сохранить возможность обращаться к роутеру по его VPN-адресу, чтобы пакеты ходили).

а вот тут я не понял, почему не надо. Получается, что у роутера будет два интерфейса с одинаковыми IP? Это разве нормально? То есть tap0 с адресом 192.168.10.100 и такой же адрес на br-lan. Или я что-то путаю?

Скорее «либо на роутерах, либо через push route на сервере». У тебя ведь роутеров-клиентов больше одного.

все верно

r0ck3r ★★★★★ ()
Ответ на: комментарий от r0ck3r

То есть tap0 с адресом 192.168.10.100 и такой же адрес на br-lan

А, тогда я туплю. Я разворачивал другую конфигурацию, где внутри VPN были свои адреса, а в сетях, которые они соединяли — свои, и, соответственно, на шлюзах было по три адреса — внешний, внутренний и VPN

XMs ★★★★★ ()
Ответ на: комментарий от XMs

Не пришлось возиться с маршрутами вообще! Не знаю почему, но оно само заработало. Я всего лишь скопировал конфиг одного из клиентов и добавил интерфейс в br-lan. Пакеты ходят в обе стороны, все друг друга видят

r0ck3r ★★★★★ ()
Ответ на: комментарий от XMs

Возникла неожиданная проблема: так как настройки WiFi сети на всех трех роутерах одинаковые, телефон с Android на борту не сбрасывал ARP кэш при переключении с одного роутера на другой, что привело к тому, что сеть переставала работать. Происходило это из-за того, что когда шлюзом был, к примеру, 192.168.10.1 в ARP кэше сохранялся MAC-адрес его WiFi карты, а для узла 192.168.10.100 сохранялся MAC-адрес TAP интерфейса. Далее, после перехода в квартиру 2, где шлюзом уже должен быть 192.168.10.100, телефон пытается найти его по MAC-адресу TAP интерфейса, хотя фактически телефон подключен к WiFi и должен искать его по MAC-адресу WiFi карточки. Это приводило к ошибкам в логе роутера:

received packet on tap0 with own address as source address (addr:64:09:80:7c:ca:1b, vlan:0)

Сейчас попытался решить проблему тем, что продублировал для tap интерфейсов MAC-адреса WiFi карточек. Завтра будет видно, сработал мой план или нет

r0ck3r ★★★★★ ()

Задача состоит в объединении трех квартир в одну сеть

В чем сакральный смысл пихать все в один бродкаст домен?

Turbid ★★★★★ ()
Ответ на: комментарий от r0ck3r

А вафля у тебя во всех трёх квартирах одна и та же? В смысле, это одна сеть с точкой доступа и репитерами, или три сети с одним SSID?

XMs ★★★★★ ()
Ответ на: комментарий от Turbid

пердолинг с бриджами не такой уж пердолинг, ибо там все заработало. Если взамен этого настраивать маршрутизацию - не факт, что проблема с ARP-кэшем клиентов уйдет, а вот проблема пердолинга с маршрутизацией широковещательных пакетов Wake-on-Lan и DLNA появится однозначно

r0ck3r ★★★★★ ()
Ответ на: комментарий от XMs

одна сеть не катит, ибо квартиры на большом расстоянии друг от друга. Решение с назначением MAC-адреса для интерфейса tap0 не прокатило, так как в ARP-кэш помещается MAC-адрес бриджа. Сейчас назначил для всех интерфейсов (кроме WAN) один и тот же мак. Боялся, что ОС не сможет с этим работать, но смогла. На днях оттестирую и сообщу, что получилось

r0ck3r ★★★★★ ()
Ответ на: комментарий от r0ck3r

одна сеть не катит

Тогда завести три сети, берущие настройки авторизации из одного места

XMs ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.