URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 94667
[ Назад ]

Исходное сообщение
"OpenVPN + Heartbeat"

Отправлено merlin_metso , 18-Май-13 18:28 
Доброго всем времени суток.

Сложилось так, что необходимо создать отказоустойчивый кластер OpenVPN ибо на этот сервер завязано не мало всего.

Сразу опишу систему.

node1: openvpn1.testdomain.mydomain.ru 192.168.32.10 (192.168.32.9- virtual IP)
node2: openvpn2.testdomain.mydomain.ru 192.168.32.11

Решено было сделать следующую связку. OpenVPN + Heartbeat + rsync. Последнее для синхронизации /etc/openvpn с первой Ноды на вторую Ноду. Из Мира к виртуальному IP сервера проброшен порт 1194(udp).

И всё, вроде бы, гладко. Виртуальный интерфейс заводится. При "вылетании" Node1 сервис OpenVPN автоматом заводится на Node2, туда же "перекочевывает" и виртуальный IP. По этому виртуальному IP я могу админить сервер (заходить по SSH, просматривать Веб интерфейс Webmin).

Но вот беда. Никак не могу зацепиться по виртуальному IP к OpenVPN серверу. Лог клиента ниже.

Sat May 18 17:54:05 2013 WARNING: No server certificate verification method has been enabled.  See http://openvpn.net/howto.html#mitm for more info.
Sat May 18 17:54:05 2013 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Sat May 18 17:54:05 2013 UDPv4 link local: [undef]
Sat May 18 17:54:05 2013 UDPv4 link remote: [AF_INET]94.247.244.70:1194
Sat May 18 17:55:05 2013 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Sat May 18 17:55:05 2013 TLS Error: TLS handshake failed
Sat May 18 17:55:05 2013 SIGUSR1[soft,tls-error] received, process restarting
Sat May 18 17:55:07 2013 WARNING: No server certificate verification method has been enabled....

И вот этого я понять не могу. Я пробросил из Мира порт 10000 на виртуальный IP и могу заходить на свой Вебмин, что говорит о том, что форвардинг на виртуальный IP работает. Но вот OpenVPN не стартует и всё тут.
Если сделать форвардинг на Реальный IP (192.168.32.10) то ВПН запускается и работает.

Может есть идеи в какую сторону копать?


Содержание

Сообщения в этом обсуждении
"OpenVPN + Heartbeat"
Отправлено ALex_hha , 18-Май-13 19:24 
А если попробовать без TLS, а просто через статический ключ?

P.S.
а какой глубокий смысл в такой связке? Что в итоге хотели получить?


"OpenVPN + Heartbeat"
Отправлено merlin_metso , 19-Май-13 00:12 
> А если попробовать без TLS, а просто через статический ключ?
> P.S.
> а какой глубокий смысл в такой связке? Что в итоге хотели получить?

Статический ключ обязательно попробую, а смысл в такой связке это отказоустойчивость. Если умрет одна машина- другая её заменит. Или я не правильно понял назначение Heartbeat'a?


"OpenVPN + Heartbeat"
Отправлено ALex_hha , 19-Май-13 00:56 
>> А если попробовать без TLS, а просто через статический ключ?
>> P.S.
>> а какой глубокий смысл в такой связке? Что в итоге хотели получить?
> Статический ключ обязательно попробую, а смысл в такой связке это отказоустойчивость. Если
> умрет одна машина- другая её заменит. Или я не правильно понял
> назначение Heartbeat'a?

на машинах то что крутится (http/smtp/pop3/etc...) и зачем в этой связке openvpn?

P.S.
ну и не плохо бы конфиги openvpn увидеть


"OpenVPN + Heartbeat"
Отправлено merlin_metso , 20-Май-13 11:15 
>>> А если попробовать без TLS, а просто через статический ключ?
>>> P.S.
>>> а какой глубокий смысл в такой связке? Что в итоге хотели получить?
>> Статический ключ обязательно попробую, а смысл в такой связке это отказоустойчивость. Если
>> умрет одна машина- другая её заменит. Или я не правильно понял
>> назначение Heartbeat'a?
> на машинах то что крутится (http/smtp/pop3/etc...) и зачем в этой связке openvpn?
> P.S.
> ну и не плохо бы конфиги openvpn увидеть

На машинах чтоит чистая CentOS 5(64 bit). Установлено только OpenVPN Heartbeat и rsync. Просто на предприятии используется OpenVPN. На данный момент OpenVPN сервер всего один и если вдруг он умрет то всем станет грустно, по этой причине я задумал сделать второй OpenVPN сервер и связать их Heartbeat'ом.

Все конфиги сейчас выложу в новом посте.


"OpenVPN + Heartbeat"
Отправлено Mr. Sneer , 18-Май-13 20:40 
>[оверквотинг удален]
> Sat May 18 17:55:05 2013 TLS Error: TLS handshake failed
> Sat May 18 17:55:05 2013 SIGUSR1[soft,tls-error] received, process restarting
> Sat May 18 17:55:07 2013 WARNING: No server certificate verification method has
> been enabled....
> И вот этого я понять не могу. Я пробросил из Мира порт
> 10000 на виртуальный IP и могу заходить на свой Вебмин, что
> говорит о том, что форвардинг на виртуальный IP работает. Но вот
> OpenVPN не стартует и всё тут.
> Если сделать форвардинг на Реальный IP (192.168.32.10) то ВПН запускается и работает.
> Может есть идеи в какую сторону копать?

Настройки netfilter на второй ноде правильны? Что показывает netstat -apnu на первой ноде (когда она активна) и на второй (когда активна она)?
Вместо rsync можно использовать drbd - классная штука, рекомендую)


"OpenVPN + Heartbeat"
Отправлено merlin_metso , 20-Май-13 13:15 
>[оверквотинг удален]
>> been enabled....
>> И вот этого я понять не могу. Я пробросил из Мира порт
>> 10000 на виртуальный IP и могу заходить на свой Вебмин, что
>> говорит о том, что форвардинг на виртуальный IP работает. Но вот
>> OpenVPN не стартует и всё тут.
>> Если сделать форвардинг на Реальный IP (192.168.32.10) то ВПН запускается и работает.
>> Может есть идеи в какую сторону копать?
> Настройки netfilter на второй ноде правильны? Что показывает netstat -apnu на первой
> ноде (когда она активна) и на второй (когда активна она)?
> Вместо rsync можно использовать drbd - классная штука, рекомендую)

И так подробные конфиги.

####################
Сетевые настройки ##
####################

Node1:  openvpn1.testdomain.mydomain.ru
    Eth0 192.168.32.10

Node2:  openvpn2.testdomain.mydomain.ru
    Eth0 192.168.32.11

######################
Настройки Heartbeat ##
######################

Node1:

/etc/ha.d/ha.cf
    logfile /var/log/ha-log
    logfacility     local0
    keepalive 2
    deadtime 30
    initdead 120
    udpport 694
    bcast   eth0
    auto_failback on
    node    openvpn1.testdomain.mydomain.ru
    node    openvpn2.testdomain.mydomain.ru
/etc/ha.d/haresources
    openvpn1.testdomain.mydomain.ru 192.168.32.9 openvpn
/etc/ha.d/authkeys
    auth 2
    2 sha1 test-ha

Node2:

/etc/ha.d/ha.cf
    logfile /var/log/ha-log
    logfacility     local0
    keepalive 2
    deadtime 30
    initdead 120
    udpport 694
    bcast   eth0            # Linux
    auto_failback on
    node    openvpn1.testdomain.mydomain.ru
    node    openvpn2.testdomain.mydomain.ru
/etc/ha.d/haresources
    openvpn1.testdomain.mydomain.ru 192.168.32.9 openvpn
/etc/ha.d/ayuthkeys
    auth 2
    2 sha1 test-ha

####################
Настройки OpenVPN ##
####################

Node1:

/etc/openvpn/testserver.conf
    port 1194
    proto udp
    dev tun0
    ca keys/testdomain/ca.crt
    cert keys/testdomain/testserver.crt
    key keys/testdomain/testserver.key
    dh keys/testdomain/dh1024.pem
    server 192.168.33.0 255.255.255.0
    crl-verify keys/testdomain/crl.pem
    cipher AES-128-CBC
    user nobody
    group nobody
    status servers/testserver/logs/openvpn-status.log
    log-append servers/testserver/logs/openvpn.log
    verb 2
    mute 20
    max-clients 100
    management 127.0.0.1 7505
    keepalive 10 120
    client-config-dir /etc/openvpn/servers/testserver/ccd
    comp-lzo
    persist-key
    persist-tun
    ccd-exclusive
    push "route 192.168.32.0 255.255.255.0"

Node2:

/etc/openvpn/testserver.conf
    port 1194
    proto udp
    dev tun0
    ca keys/testdomain/ca.crt
    cert keys/testdomain/testserver.crt
    key keys/testdomain/testserver.key
    dh keys/testdomain/dh1024.pem
    server 192.168.33.0 255.255.255.0
    crl-verify keys/testdomain/crl.pem
    cipher AES-128-CBC
    user nobody
    group nobody
    status servers/testserver/logs/openvpn-status.log
    log-append servers/testserver/logs/openvpn.log
    verb 2
    mute 20
    max-clients 100
    management 127.0.0.1 7505
    keepalive 10 120
    client-config-dir /etc/openvpn/servers/testserver/ccd
    comp-lzo
    persist-key
    persist-tun
    ccd-exclusive
    push "route 192.168.32.0 255.255.255.0"

##############################
Вывод команды netstat -panu ##
##############################

Node1:

[root@openvpn1 node1]# netstat -apnu
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
udp        0      0 0.0.0.0:10000               0.0.0.0:*                               1743/perl
udp        0      0 0.0.0.0:929                 0.0.0.0:*                               1177/rpc.statd
udp        0      0 0.0.0.0:932                 0.0.0.0:*                               1177/rpc.statd
udp        0      0 0.0.0.0:1194                0.0.0.0:*                               4668/openvpn
udp        0      0 0.0.0.0:694                 0.0.0.0:*                               1654/heartbeat: wri
udp        0      0 0.0.0.0:41442               0.0.0.0:*                               1654/heartbeat: wri
udp        0      0 0.0.0.0:5353                0.0.0.0:*                               1693/avahi-daemon
udp        0      0 0.0.0.0:111                 0.0.0.0:*                               1142/portmap
udp        0      0 0.0.0.0:36863               0.0.0.0:*                               1693/avahi-daemon

Node2:

[root@openvpn2 ~]# netstat -apnu
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
udp        0      0 0.0.0.0:10000               0.0.0.0:*                               1683/perl
udp        0      0 0.0.0.0:52899               0.0.0.0:*                               26331/heartbeat: wr
udp        0      0 0.0.0.0:56230               0.0.0.0:*                               1633/avahi-daemon
udp        0      0 0.0.0.0:694                 0.0.0.0:*                               26331/heartbeat: wr
udp        0      0 0.0.0.0:5353                0.0.0.0:*                               1633/avahi-daemon
udp        0      0 0.0.0.0:879                 0.0.0.0:*                               1127/rpc.statd
udp        0      0 0.0.0.0:111                 0.0.0.0:*                               1092/portmap
udp        0      0 0.0.0.0:882                 0.0.0.0:*                               1127/rpc.statd


По поводу drbd. Не вижу особого смысла его использовать ради синхронизации максимуму пары десятков конфигов. rsync, думаю, с этим вполне справится.


"OpenVPN + Heartbeat"
Отправлено McLeod095 , 20-Май-13 11:49 
>[оверквотинг удален]
> Sat May 18 17:55:05 2013 TLS Error: TLS handshake failed
> Sat May 18 17:55:05 2013 SIGUSR1[soft,tls-error] received, process restarting
> Sat May 18 17:55:07 2013 WARNING: No server certificate verification method has
> been enabled....
> И вот этого я понять не могу. Я пробросил из Мира порт
> 10000 на виртуальный IP и могу заходить на свой Вебмин, что
> говорит о том, что форвардинг на виртуальный IP работает. Но вот
> OpenVPN не стартует и всё тут.
> Если сделать форвардинг на Реальный IP (192.168.32.10) то ВПН запускается и работает.
> Может есть идеи в какую сторону копать?

А может можно и без heartbeat обойтись. У OpenVPN есть опция remote которую можно указывать несколько раз и также задать remote-random, тогда клиент будет цепляться к одному из серверов указанных в remote, только надо проверить что произойдет при обрыве связи, и все вроде готово.


"OpenVPN + Heartbeat"
Отправлено reader , 20-Май-13 13:52 
>[оверквотинг удален]
> Sat May 18 17:55:05 2013 TLS Error: TLS handshake failed
> Sat May 18 17:55:05 2013 SIGUSR1[soft,tls-error] received, process restarting
> Sat May 18 17:55:07 2013 WARNING: No server certificate verification method has
> been enabled....
> И вот этого я понять не могу. Я пробросил из Мира порт
> 10000 на виртуальный IP и могу заходить на свой Вебмин, что
> говорит о том, что форвардинг на виртуальный IP работает. Но вот
> OpenVPN не стартует и всё тут.
> Если сделать форвардинг на Реальный IP (192.168.32.10) то ВПН запускается и работает.
> Может есть идеи в какую сторону копать?

multihome?

попробуйте 1194/tcp


"OpenVPN + Heartbeat"
Отправлено merlin_metso , 20-Май-13 15:57 
>[оверквотинг удален]
>> Sat May 18 17:55:07 2013 WARNING: No server certificate verification method has
>> been enabled....
>> И вот этого я понять не могу. Я пробросил из Мира порт
>> 10000 на виртуальный IP и могу заходить на свой Вебмин, что
>> говорит о том, что форвардинг на виртуальный IP работает. Но вот
>> OpenVPN не стартует и всё тут.
>> Если сделать форвардинг на Реальный IP (192.168.32.10) то ВПН запускается и работает.
>> Может есть идеи в какую сторону копать?
> multihome?
> попробуйте 1194/tcp

Спасибо, reader. multihome спас положение.

Решение НАЙДЕНО :)

SOLVED