Назад | Перейти на главную страницу

Как остановить туннель OpenVPN, если сервер не отвечает?

У меня два сервера openvpn, но оба идут в одну сеть. Сделано для отказоустойчивости. Если один из них не работает, трафик должен идти через другой. Клиенты получают маршруты с разной метрикой, поэтому эта задача решена.

Но когда один из серверов отключается, клиент пытается повторно подключиться к этому серверу и не выключает tun-интерфейс. Таким образом, трафик пытается пройти через проблемный сервер.

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

Это конфиг клиента:

tls-client

dev tun
proto udp
remote server1.ovpn.example.com 2100

topology subnet

pull

#resolv-retry infinite
#nobind

tls-auth keys/ta.key 1
ca keys/ca.crt
cert keys/client.crt
key keys/client.key
ns-cert-type server

cipher DES-EDE3-CBC

keepalive 10 120

comp-lzo

user nobody
group nogroup

persist-key
persist-tun

status /var/log/openvpn-status.log
log-append  /var/log/openvpn.log

verb 3

route 172.19.20.0 255.255.255.0 172.16.150.3
route-metric 3

Думаю, если я удалю keep-alive Tun-интерфейс перейдет в автономный режим после тайм-аута ping, но вернется ли он обратно, когда сервер вернется?

После создания моего проекта VPN для Qubes, Я обнаружил, что OpenVPN имеет определенную тенденцию зависать при обрыве соединения.

Вот параметры, которые я добавил, чтобы OpenVPN реагировал на отключения:

ping 10
ping-restart 40
connect-retry 5 30
connect-retry-max 7
resolv-retry 15

Согласно документам, если у вас несколько remote записи, то после сбоя соединения ping-restart приведет к использованию следующего пульта ДУ. Следовательно, указав несколько remote строки для ваших серверов могут быть здесь полезны.

Избавьтесь от persist-tun вариант. Без этой опции соединение VPN отключается, устройство tun закроется и будет удалено. Проблема, конечно же, в том, что удаление этой опции означает, что вам нужно запустить демон VPN как root, а не под ником. Потому что, поскольку у вас нет учетной записи, OpenVPN не сможет создать новое устройство tun при восстановлении соединения.