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

OpenVPN ASUS<->Mikrotik

 , ,


0

1

Честно два дня пытался вспомнить, как это всё работало раньше. Но работало точно год назад.

Прошу подсказать.

ASUS, как сервер (в городе) + Mikrotik, как клиент (в лесу).

Соединение устанавливается. И 10.8.0.1, и 10.8.0.6 оба пингуются в обе стороны.

Но сама лесная сеть за Микротиком не отвечает. Т.е. вот прям сам Микротик - своим 10.8.0.6 отвечает, а своим же 192.168.88.1 уже нет ответа.

Только в обратную, городскую сторону всё чудесно работает. Собственно по ssh 192.168.99.1 захожу на Асус, и с него же пытаюсь пинговать обратно.

Маршруты и там и там есть.

192.168.88.0/24 via 10.8.0.2 dev tun21
- почему этого недостаточно АСУСу чтобы добраться до 192.168.88.1? Что ещё забыл?

★★★★
Ответ на: комментарий от Kolins

Да, прописан. Типа 192.168.99.0/24 via 10.8.0.5 dev ovpn1 - только там термины микротивские, немного не так в буквах, но смысл такой же.

В firewall на Миктротике вижу правило masquerade для srcnat и исходящего ovpn1 интерфейса. Вот не знаю откуда он там. То ли оно само, то ли это я делал больше года назад.

Может на АСУСе тоже надо так? Но я не помню, чтоб лез в такие дебри раньше. Там вроде всё в WebUI настраивалось, когда работало.

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

Максимально сомнительное утверждение.

Это ж совсем разные вещи.

Выключил правило маскарадинга - пропали пинги в ту сторону, что на мой взгляд было ожидаемо.

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

на АСУСе

адрес: inet 10.8.0.1 peer 10.8.0.2/32
маршруты:
10.8.0.0/24 via 10.8.0.2 dev tun21 
10.8.0.2 dev tun21  proto kernel  scope link  src 10.8.0.1

На Микротике

адрес: 10.8.0.6/32       10.8.0.5      ovpn1
маршруты
10.8.0.1/32      10.8.0.5            1
10.8.0.5/32      ovpn1               0

почему там /24 а тут /32 ? Так должно быть? На это можно как-то влиять настройками или глубоко внутри реализации OpenVPN закопано?

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

А, дошло. Там же на Асусе оно «сервер» - типа ожидает и других клиентов в той же 10.8.0.0/24. Ладно.

192.168.88.0/24 и 192.168.99.0/24

это точно есть.

/ip/route> p

    DST-ADDRESS      GATEWAY      DISTANCE
DAd 0.0.0.0/0        192.168.1.1         2 #это МТС модем
DAv 10.8.0.1/32      10.8.0.5            1
DAc 10.8.0.5/32      ovpn-out1           0
DAc 192.168.1.0/24   lte1                0
DAc 192.168.88.0/24  bridge              0
DAv 192.168.99.0/24  10.8.0.5          244

ip r

default via XXX.XXX.XXX.XXX dev eth3 
10.8.0.0/24 via 10.8.0.2 dev tun21 
10.8.0.2 dev tun21  proto kernel  scope link  src 10.8.0.1 
XXX.XXX.XXX.XXX/24 dev eth3  proto kernel  scope link  src XXX.XXX.XXX.XXX
XXX.XXX.XXX.XXX dev eth3  proto kernel  scope link 
127.0.0.0/8 dev lo  scope link 
192.168.88.0/24 via 10.8.0.2 dev tun21 
192.168.99.0/24 dev br0  proto kernel  scope link  src 192.168.99.1

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

Почему маршрут на Микротике до 192.168.99.0/24 через 10.8.0.5 - это же ip Микротика в ovpn?

Тоже и с Асусом.

Надо на Микротике прописать шлюзом Асус для сети за Асусом и наоборот.

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

Почему маршрут на Микротике до 192.168.99.0/24 через 10.8.0.5 - это же ip Микротика в ovpn?

Это ж не я руками пишу - это «push route» так отрабатывает. Да и вроде правильно же отрабатывает - когда устанавливает соединение оно добавляет маршрут к нужной сети через установленное соединение. Вроде всё логично.

Kolins. Дошло про «маскарадинг». Он нужен чтобы остальные машины в 192.198.88.0/24 могли ходить через VPN. Самому Микротику он действительно не нужен - у него же и так свой родной адрес в VPN сети есть. Отключаю правило «маскарадинга» на Микротике - пропадают пинги с машины 192.168.88.10 в 192.168.99.1, но не пропадают пинги с 192.168.88.1 в туда же.

Ну и... всё уже. Практически неинтересно уже. Уехал из леса. Так и не победил. Теперь два дня не буду видеть свои видеокамеры в лесу.

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

Микроты push route не умеют, может в 7 версии что-то добавили, но раньше не умели.
Если надумаешь победить, пни в этом чате или в tg, попробую помочь.

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

нужно для каждого клиента на сервере добавлять настройки маршрута.

Что есть «каждый клиент»? Имеется в виду VPN-клиент?

Вот приходит Микротик и говорит «привет, я клиент». Сервер (АСУС) его проверяет - да, действительно клиент - вот тебе коннект.

Теперь, чтобы вся сеть за Микротиком (и сам Микротик с адресом в той сети) стали доступны через 10.8.0.0/24 есть два варианта:

  • или на сервере есть каталог ccd под этого клиента с «iroute»
  • или целиком всему VPN сказать route add

и так, и эдак - в итоге желаемый маршрут на АСУСе появляется.
но не работает.
где ошибка?

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

На сервере каталог сcd с файлом для каждого клиента с iroute. tun - маршрутизиуремая именно openvpn-ом сеть, добавление маршрута снаружи относительно ее не помогает. И push «route …» в серверном конфиге не забыть(клиент должен знать путь куда отвечать).

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

Так я про это всё и говорю.

Только клиент-то один. Нет других же.

# cat /etc/openvpn/server1/ccd/mikrotik.berg
iroute 192.168.88.0 255.255.255.0

# grep 99 /etc/openvpn/server1/config.ovpn
push "route 192.168.99.0 255.255.255.0 vpn_gateway 500"

Вроде всё же на месте. И даже этот «пуш» в ту сторону-то правильно всё сделал на Микротике - с той стороны 192.168.99.1 доступно же.

Вот с этой стороны не могу понять чего не хватает.

# ping 10.8.0.6
PING 10.8.0.6 (10.8.0.6): 56 data bytes
64 bytes from 10.8.0.6: seq=0 ttl=64 time=340.045 ms
вот же он, отвечает.
но
# ping 192.168.88.1
PING 192.168.88.1 (192.168.88.1): 56 data bytes
^C

выглядит как поговорка «укусить локоть» в действии.

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

Всё. Окончательно дошло, что именно забыл.

# cat /etc/openvpn/server1/ccd/mikrotik.berg
это неправильное Common Name для микротивского сертификата.

написал правильное - всё заработало. даже в лес ехать не надо.

Kolins и вам спасибо за участие )

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

Это ж не я руками пишу - это «push route» так отрабатывает

Значит неправильно сконфигурировано.

маршрут к нужной сети через установленное соединение.

Маршрут до нужной сети должен проходить через маршрутизатор, котрый об этой сети что-то знает.

Рассмотрим как у вас сделано:

(Сеть за ASUS)        (ASUS)        (MikroTik)    (Сеть за MikroTiK)
192.168.99.0/24 -- 192.168.99.1    192.168.88.1 -- 192.168.88.0/24
                     10.8.0.2   --   10.8.0.5

На ASUS прописано: 192.168.88.0/24 via 10.8.0.2

На MikroTik: 192.168.99.0/24 via 10.8.0.5

Как пакеты пойдут из хоста в сети 192.168.99.0/24 на хост в сети 192.168.88.0/24 ?

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

Так на ASUS, казалось бы, есть же маршрут «как ходить в 88».

192.168.88.0/24 via 10.8.0.2 dev tun21
«88 искать за 10.8.0.2»
10.8.0.0/24 via 10.8.0.2 dev tun21
«вообще всю 10.8.0.0 искать за 10.8.0.2»
10.8.0.2 dev tun21  proto kernel  scope link  src 10.8.0.1
«10.8.0.2 должно быть в tun из 10.8.0.1» (вроде так)
tun21: inet 10.8.0.1 peer 10.8.0.2/32 scope global tun21
«а 10.8.0.1 - это уже родной адрес интерфейса tun21»

------

Только этого недостаточно, как выяснилось. Вот ровно всё то же самое в буквах по ip r и ip a - но с правильным iroute по правильному Common Name сертификата - и тогда работает.

Честно говоря я не знаю эту магию с iroute внутри tun. Но без неё вот это бытовое понимание «сеть такую-то искать за таким-то узлом» - ломается.

Toxo2 ★★★★
() автор топика
Ответ на: комментарий от FireFighter
192.168.99.0/24 via 10.8.0.2

этого точно не может быть. на Микротике нет 10.8.0.2 - там сеть из двух хостов 10.8.0.5 и 10.8.0.6

На Асусе, возможно, без разницы, поскольку там /24

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

Мне кажется - скорее вы что-то путаете.

Всё вполне логично АСУС делает своими push route в Микротик и route в себя.

Как вы себе представляете Микротик делал бы

192.168.99.0/24 via 10.8.0.2
если про этот 10.8.0.2 он и сам ни сном, ни духом.

Ладно, спасибо за ваши переживания. В любом случае сейчас проблемы нет. Сижу, смотрю видео про свой огород в снегу.

Toxo2 ★★★★
() автор топика