LINUX.ORG.RU

VPN через VPN, на одной системе.

 , ,


0

1

Здравствуйте. Имею два конфига openvpn, от разных провайдеров. (Знаю, что можно взять виртуальные машины, поставить мост, или взять сразу doublevpn, quadrovpn и т.д, но это не подходит)

Как настроить маршрутизацию, что-бы завернуть второе подключение и использовать его?

Пытался так:

1)openvpn --config 1.ovpn (route прописывается автоматически, после чего второй вариант должен пойти через первый... или я не прав?)

2)openvpn --route-noexec --config 2.ovpn

А как быть дальше - не знаю. Интерфейсы, пускай будут: tun0 и tun1


Чего ты хочешь добиться? Чтобы у тебя было две независимых сети, клиенты которых могут между собой как-то взаимодействовать? Или, может, чтобы один тоннель поднимался через второй? Нарисуй карту сети, сразу множество вопросов отпадёт

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

Я хочу подключить VPN «A» и через активный VPN «A» подключить VPN «B» В интернет должен быть выход через «B».

ps то, что я использую VPN «B» должен видеть только провайдер VPN-а «A».

А провайдер VPN-а «B» должен видеть, ip VPN «A» и все.

Проще говоря - завернуть трафик одного впн-а в другой.

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

openvpn --config 1.ovpn

После этого покажи таблицу маршрутизации. Если VPN-провайдер ничего не химичит, то там будет маршрут через твой шлюз в локальной сети до VPN-сервера 1, и маршрут по умолчанию через VPN 1.

openvpn --config 2.ovpn

По идее, после этого будет: маршрут через твой шлюз в локальной сети до VPN-сервера 1, маршрут до VPN-сервера 2 через VPN 1, и маршрут по умолчанию через VPN 2.

Если это не работает, прошу показать, где я ошибся в своих рассуждениях.

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

openvpn --config 1.ovpn

route: https://pastebin.com/7CzYM6Es

openvpn --config 2.ovpn (при активном 1.ovpn)

route: https://pastebin.com/1PYvBHZs

Хочу отметить, что маршрутизацию ставит openvpn, поэтому, когда при активном первом конфиге я запуска второй - получаю: ERROR: Linux route add command failed: external program exited with error status: 2

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

Не ошибаетесь)

openvpn 1.ovpn

https://pastebin.com/nfxgCYSJ

Второй конфиг нужен? Если да, то при каких обстоятельствах? (запускать ли первый конфиг перед этим и т.д)

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

Ничего не понятно.

Прошу:

1. Пользоваться командой «ip route», а не «route». На крайняк - «route -n». 2. Дополнительно показать таблицу маршрутизации до того, как поднимается соединение VPN.

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

А нет, как раз все понятно. OpenVPN перебил маршрут по умолчанию глупым способом - как две половинки. Ищем в конфиге опцию «redirect-gateway def1» и удаляем. Если ее нет - она пришла от удаленного сервера, перебиваем так: «redirect-gateway» без параметров.

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

Да, в первом. И во втором тоже, для симметрии, хотя отрицательные эффекты есть только от присутствия этой директивы в первом конфиге.

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

Так если во втором убрать, то как перезапишется дефолт. шлюз через tun1? Конфигов нету посмотреть...

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

Если параметр redirect-gateway выставлен без опции def1, то OpenVPN смотрит на текущий шлюз по умолчанию, добавляет через него маршрут до сервера, удаляет маршрут по умолчанию, а потом добавляет маршрут по умолчанию через внутренний адрес того конца туннеля. С опцией def1 вместо удаления маршрута по умолчанию и добавления нового создаются два маршрута до двух половинок интернета.

Т.е. если опции def1 нигде нет, то ожидается вот такое поведение. Пишу только те маршруты, которые изменяются.

До установки соединений:

default via 192.168.1.1 dev wlp4s0 proto dhcp metric 600 

После установки одного VPN (внешний IP шлюза 192.0.2.1, внутренний 172.16.1.1):

192.0.2.1 via 192.168.1.1 dev wlp4s0 proto dhcp metric 600 
default via 172.16.1.1 dev tun0 proto static metric 600

После установки двух VPN (у второго внешний IP шлюза 198.51.100.1, внутренний 10.0.0.1):

192.0.2.1 via 192.168.1.1 dev wlp4s0 proto dhcp metric 600 
198.51.100.1 via 172.16.1.1 dev tun0 proto static metric 600
default via 10.0.0.1 dev tun1 proto static metric 600
AEP ★★★★★
()
Ответ на: комментарий от Marex

В вашем примере видно, что опции redirect-gateway def1 в конфиге нет. Т.е. она приходит с того конца, и ее надо перебить.

https://community.openvpn.net/openvpn/wiki/IgnoreRedirectGateway

pull-filter ignore redirect-gateway
redirect-gateway

Или, если pull-filter не поддерживается,

route-nopull
redirect-gateway
AEP ★★★★★
()
Ответ на: комментарий от AEP

В первый конфиг добавляю:

pull-filter ignore redirect-gateway
redirect-gateway

Запускаю:

route -n:

https://pastebin.com/eDbijP7C

Второй конфиг:

https://pastebin.com/izGsVDzu

Содержит параметр:

redirect-gateway def1

Удаляю. (pull-filter ignore redirect-gateway и redirect-gateway Не добавляю - ошибка?)

Запускаю при активном первом:

route -n

https://pastebin.com/N2Lm4pgL

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

надо def1 удалять. Перечитай еще раз. Если строки этой нет на кл., значит есть на сервере. Тогда через ignore.

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

Решил вместо той строки вставить:

pull-filter ignore redirect-gateway
redirect-gateway

route -n

https://pastebin.com/KYRiczNq

curl ident.me: 154.45.24.52

Насколько я понимаю, все получилось - теперь VPN 2 идет через туннель VPN 1.

Всем огромное спасибо за помощь!

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