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

Второй vpn пускается через первый и от этого тормозит. Как пофиксить?

 ,


3

2

Я по умолчанию всегда держу openvpn соединение включенным, используя его как default gateway, так как живу в тоталитарной стране с цензурой интернета. Иногда мне надо подключать openconnect vpn для доступа к компьютерному кластеру. Если я делаю это при включенном openvpn соединении, соединение с кластером тормозит. Я предполагаю, что трафик опенконнекта идет через тот самый default gateway. Как пофиксить? Бонусные очки за решение, использующее GUI нетворкменеджера.

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

навскидку можно попробовать что-то вроде
ip r a openconnectip/32 dev wlan0

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

Наискосок, пара вариантов:
1. В конфиге клиента ovpn прописать роут
route host || net mask net_gateway
типа
route 1.1.1.1 255.255.255.255 net_gateway
Обращаю внимание, net_gateway это параметр ovpn, его ни на что заменять не надо.
2. Или через скрипт, параметр up. В скрипте прописываем роут до необходимого хоста/хостов/сети/сетей через локальный defroute.

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

Думаю что вы не правы. Хотя смысл в этом есть, но сам не стал об этом писать. ТС написал «используя его как default gateway, так как живу в тоталитарной стране с цензурой интернета.»
Предположим что он в РФ, «сервер ovpn в Австралии», а нужная ему точка «опенконнект» в «соседнем подъезде в РФ». Ничего удивительного в «тормозах», если через «шарик» гонять трафик. Логичнее гнать его напрямую.

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

Непонятно, какие у ТС тормоза. Если просто высокий пинг, то надо применить роутинг через ISP. А вот при проблемах с MTU бывают рандомные таймауты на 5-10 секунд.

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

Непонятно, какие у ТС тормоза.

Все верно. Мы не знаем. Но можно сказать с большой уверенностью, что «напрямую роутинг в соседний подъезд» будет быстрее чем «роутинг через Австралию». Это не подкол. Это факт.
ЗЫ
Напоминаю про http://www.ibiblio.org/harris/500milemail.html :)

anc ★★★★★
()

Решено. Создал файл с правами на запуск /etc/NetworkManager/dispatcher.d/route_cluster_vpn.sh с содержимым:

#!/bin/bash
set -euo pipefail
IFS=$'\n\t'

WIFI_INTERFACE="wlp3s0"
CLUSTER_VPN_IP_FILE_PATH="/tmp/cluster_vpn_ip"

if [ "$2" = "vpn-up" ] && [ "$1" = "tun0" ]; then
  wifi_default_gateway=`ip route | grep "$WIFI_INTERFACE" | grep default | cut --fields=3 "--delimiter= "`
  cluster_vpn_ip=`getent hosts my.openconnect.vpn.url | cut --fields=1 "--delimiter= "`
  echo "$cluster_vpn_ip" > "$CLUSTER_VPN_IP_FILE_PATH"
  route add "$cluster_vpn_ip/32" gw "$wifi_default_gateway" dev "$WIFI_INTERFACE"
fi

if [ "$2" = "vpn-down" ] && [ "$1" = "tun0" ]; then
  wifi_default_gateway=`ip route | grep "$WIFI_INTERFACE" | grep default | cut --fields=3 "--delimiter= "`
  cluster_vpn_ip=`cat "$CLUSTER_VPN_IP_FILE_PATH"`
  route del "$cluster_vpn_ip/32" gw "$wifi_default_gateway" dev "$WIFI_INTERFACE"
fi

Здесь tun0 это название интерфейса, который создается моим openvpn соединением. А my.openconnect.vpn.url это на самом деле домен, к которому я подключаюсь опенконнектом.

Теперь скорость передачи данных с кластера не жалкие 1.5 Мб/сек через «Австралию», а заслуженные 9 Мб/сек.

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

Знатное извращение. Выше я вам написал про конфиги ovpn. А в вашем скрипте «все прекрасно» и использование статических имен интерфейсов (чуть повангую, сомневаюсь что у вас tun0 прописан, скорее самоназначен), и непонятный grep сохраняющий в файл, и т.д. У вас в чем проблема? Что бы до вашего хоста «my.openconnect.vpn.url» ходило не через ovpn, ну так и решайте средствами ovpn без привязки к интерфейсам.

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

В networkmanager вроде есть лишь возможность прописать routes с четко заданными айпишниками. А айпишник дефолт гейтвея разный при подключении к разным вайфаям, поэтому я так не могу сделать.

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

Вы кажется не поняли, поясню еще раз, скрипты прописываем в конфиг ovpn а nm там или нет роли не играет.

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

А айпишник дефолт гейтвея разный при подключении к разным вайфаям

Например переменная $route_net_gateway как раз и содержит ip defgw. В части переменных смотрите man openvpn раздел Environmental Variables

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.