As promised the working configs.
IP's and FQDN have been anonymized
Reference:
FQDN Remote_IP
Proxmox-Node-1.example.org 178.4.9.2
OpenVPN-Server-1.example.org 154.66.31.62
Proxmox-Node-2.example.org 5.115.83.175
OpenVPN-Server-2.example.org 186.5.64.120
Proxmox-Node-3.example.org 191.21.16.18
OpenVPN-Server-3.example.org 203.1.5.7
OpenVPN Server Configs:
OpenVPN-Server-1:
cat /etc/openvpn/server.conf
server.conf
local 154.66.31.62
port 1194
proto udp
dev tap
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh4096.pem
server 10.1.1.0 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt
client-config-dir ccd
route 10.1.1.0 255.255.255.
client-to-client
keepalive 10 120
tls-auth ta.key 0 # This file is secret
comp-lzo
max-clients 5
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
verb 3
cat /etc/openvpn/ipp.txt
ProxmoxNode1OpenvpnServer1,10.1.1.10
ProxmoxNode2OpenvpnServer1,10.1.1.20
ProxmoxNode3OpenvpnServer1,10.1.1.30
ls -1 /etc/openvpn/ccd/
ProxmoxNode1OpenvpnServer1.user
ProxmoxNode2OpenvpnServer1.user
ProxmoxNode3OpenvpnServer1.user
cat /etc/openvpn/ccd/ProxmoxNode1OpenvpnServer1.user
ifconfig-push 10.1.1.1 10.1.1.254
cat /etc/openvpn/ccd/ProxmoxNode2OpenvpnServer1.user
ifconfig-push 10.1.1.1 10.1.1.254
cat /etc/openvpn/ccd/ProxmoxNode3OpenvpnServer1.user
ifconfig-push 10.1.1.1 10.1.1.254
OpenVPN-Server-2:
cat /etc/openvpn/server.conf
local 186.5.64.120
port 1194
proto udp
dev tap
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh4096.pem
server 10.1.2.0 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt
client-config-dir ccd
route 10.1.2.0 255.255.255.
client-to-client
keepalive 10 120
tls-auth ta.key 0 # This file is secret
comp-lzo
max-clients 5
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
verb 3
cat /etc/openvpn/ipp.txt
ProxmoxNode1OpenvpnServer2,10.1.2.10
ProxmoxNode2OpenvpnServer2,10.1.2.20
ProxmoxNode3OpenvpnServer2,10.1.2.30
ls -1 /etc/openvpn/ccd/
ProxmoxNode1OpenvpnServer2.user
ProxmoxNode2OpenvpnServer2.user
ProxmoxNode3OpenvpnServer2.user
cat /etc/openvpn/ccd/ProxmoxNode1OpenvpnServer2.user
ifconfig-push 10.1.2.1 10.1.2.254
cat /etc/openvpn/ccd/ProxmoxNode2OpenvpnServer2.user
ifconfig-push 10.1.2.1 10.1.2.254
cat /etc/openvpn/ccd/ProxmoxNode3OpenvpnServer2.user
ifconfig-push 10.1.2.1 10.1.2.254
OpenVPN-Server-3:
cat /etc/openvpn/server.conf
local 203.1.5.7
port 1194
proto udp
dev tap
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh4096.pem
server 10.1.3.0 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt
client-config-dir ccd
route 10.1.3.0 255.255.255.
client-to-client
keepalive 10 120
tls-auth ta.key 0 # This file is secret
comp-lzo
max-clients 5
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
verb 3
cat /etc/openvpn/ipp.txt
ProxmoxNode1OpenvpnServer3,10.1.3.10
ProxmoxNode2OpenvpnServer3,10.1.3.20
ProxmoxNode3OpenvpnServer3,10.1.3.30
ls -1 /etc/openvpn/ccd/
ProxmoxNode1OpenvpnServer3.user
ProxmoxNode2OpenvpnServer3.user
ProxmoxNode3OpenvpnServer3.user
cat /etc/openvpn/ccd/ProxmoxNode1OpenvpnServer3.user
ifconfig-push 10.1.3.1 10.1.3.254
cat /etc/openvpn/ccd/ProxmoxNode2OpenvpnServer3.user
ifconfig-push 10.1.3.1 10.1.3.254
cat /etc/openvpn/ccd/ProxmoxNode3OpenvpnServer3.user
ifconfig-push 10.1.3.1 10.1.3.254
Proxmox-Node-Configs (OpenVPn-Client):
Proxmox-Node-1:
cat /etc/openvpn/ProxmoxNode1OpenvpnServer1.ovpn
client
dev tap1
proto udp
remote OpenVPN-Server-1.example.org 1194
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca OpenvpnServer1.ca.crt
cert ProxmoxNode1OpenvpnServer1.crt
key ProxmoxNode1OpenvpnServer1.key
ns-cert-type server
tls-auth OpenvpnServer1.ta.key 1
comp-lzo
verb 3
cat /etc/openvpn/ProxmoxNode1OpenvpnServer2.ovpn
client
dev tap2
proto udp
remote OpenVPN-Server-2.example.org 1194
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca OpenvpnServer2.ca.crt
cert ProxmoxNode1OpenvpnServer2.crt
key ProxmoxNode1OpenvpnServer2.key
ns-cert-type server
tls-auth OpenvpnServer2.ta.key 1
comp-lzo
verb 3
cat /etc/openvpn/ProxmoxNode1OpenvpnServer3.ovpn
client
dev tap3
proto udp
remote OpenVPN-Server-3.example.org 1194
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca OpenvpnServer3.ca.crt
cert ProxmoxNode1OpenvpnServer3.crt
key ProxmoxNode1OpenvpnServer3.key
ns-cert-type server
tls-auth OpenvpnServer3.ta.key 1
comp-lzo
verb 3
Start clients with
openvpn --config /etc/openvpn/ProxmoxNode1OpenvpnServer1.ovpn
openvpn --config /etc/openvpn/ProxmoxNode1OpenvpnServer2.ovpn
openvpn --config /etc/openvpn/ProxmoxNode1OpenvpnServer3.ovpn
cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
10.1.1.10 node1.vpn.local node1 pvelocalhost
10.1.2.10 node1.vpn.local node1 pvelocalhost
10.1.3.10 node1.vpn.local node1 pvelocalhost
10.1.1.20 node2.vpn.local node2
10.1.2.20 node2.vpn.local node2
10.1.2.20 node2.vpn.local node2
10.1.1.30 node3.vpn.local node3
10.1.2.30 node3.vpn.local node3
10.1.3.30 node3.vpn.local node3
178.4.9.2 Proxmox-Node-1.example.org node1
Proxmox-Node-2:
cat /etc/openvpn/ProxmoxNode2OpenvpnServer1.ovpn
client
dev tap1
proto udp
remote OpenVPN-Server-1.example.org 1194
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca OpenvpnServer1.ca.crt
cert ProxmoxNode2OpenvpnServer1.crt
key ProxmoxNode2OpenvpnServer1.key
ns-cert-type server
tls-auth OpenvpnServer1.ta.key 1
comp-lzo
verb 3
cat /etc/openvpn/ProxmoxNode2OpenvpnServer2.ovpn
client
dev tap2
proto udp
remote OpenVPN-Server-2.example.org 1194
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca OpenvpnServer1.ca.crt
cert ProxmoxNode2OpenvpnServer2.crt
key ProxmoxNode2OpenvpnServer2.key
ns-cert-type server
tls-auth OpenvpnServer1.ta.key 1
comp-lzo
verb 3
cat /etc/openvpn/ProxmoxNode2OpenvpnServer3.ovpn
client
dev tap3
proto udp
remote OpenVPN-Server-3.example.org 1194
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca OpenvpnServer3.ca.crt
cert ProxmoxNode2OpenvpnServer3.crt
key ProxmoxNode2OpenvpnServer3.key
ns-cert-type server
tls-auth OpenvpnServer3.ta.key 1
comp-lzo
verb 3
Start clients with
openvpn --config /etc/openvpn/ProxmoxNode2OpenvpnServer1.ovpn
openvpn --config /etc/openvpn/ProxmoxNode2OpenvpnServer2.ovpn
openvpn --config /etc/openvpn/ProxmoxNode2OpenvpnServer3.ovpn
cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
10.1.1.10 node1.vpn.local node1
10.1.2.10 node1.vpn.local node1
10.1.3.10 node1.vpn.local node1
10.1.1.20 node2.vpn.local node2 pvelocalhost
10.1.2.20 node2.vpn.local node2 pvelocalhost
10.1.2.20 node2.vpn.local node2 pvelocalhost
10.1.1.30 node3.vpn.local node3
10.1.2.30 node3.vpn.local node3
10.1.3.30 node3.vpn.local node3
5.115.83.175 Proxmox-Node-2.example.org node2
Proxmox-Node-3:
cat /etc/openvpn/ProxmoxNode3OpenvpnServer1.ovpn
client
dev tap1
proto udp
remote OpenVPN-Server-1.example.org 1194
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca OpenvpnServer1.ca.crt
cert ProxmoxNode3OpenvpnServer1.crt
key ProxmoxNode3OpenvpnServer1.key
ns-cert-type server
tls-auth OpenvpnServer1.ta.key 1
comp-lzo
verb 3
cat /etc/openvpn/ProxmoxNode3OpenvpnServer2.ovpn
client
dev tap2
proto udp
remote OpenVPN-Server-2.example.org 1194
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca OpenvpnServer1.ca.crt
cert ProxmoxNode3OpenvpnServer2.crt
key ProxmoxNode3OpenvpnServer2.key
ns-cert-type server
tls-auth OpenvpnServer1.ta.key 1
comp-lzo
verb 3
cat /etc/openvpn/ProxmoxNode3OpenvpnServer3.ovpn
client
dev tap3
proto udp
remote OpenVPN-Server-3.example.org 1194
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca OpenvpnServer3.ca.crt
cert ProxmoxNode3OpenvpnServer3.crt
key ProxmoxNode3OpenvpnServer3.key
ns-cert-type server
tls-auth OpenvpnServer3.ta.key 1
comp-lzo
verb 3
Start clients with
openvpn --config /etc/openvpn/ProxmoxNode2OpenvpnServer1.ovpn
openvpn --config /etc/openvpn/ProxmoxNode2OpenvpnServer2.ovpn
openvpn --config /etc/openvpn/ProxmoxNode2OpenvpnServer3.ovpn
cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
10.1.1.10 node1.vpn.local node1
10.1.2.10 node1.vpn.local node1
10.1.3.10 node1.vpn.local node1
10.1.1.20 node2.vpn.local node2
10.1.2.20 node2.vpn.local node2
10.1.2.20 node2.vpn.local node2
10.1.1.30 node3.vpn.local node3 pvelocalhost
10.1.2.30 node3.vpn.local node3 pvelocalhost
10.1.3.30 node3.vpn.local node3 pvelocalhost
191.21.16.18 Proxmox-Node-3.example.org node3
afterwards i just added the nodes to Proxmox as you usually do and it worked. I now can reboot one OpenVPN-Server or one Proxmox-Node and the Cluster is still able to communicate as its suppsed to. No more single point of Failure caused by OpenVPN 😃
maikcat wrote[...]
i repeat..MESH IS complicated...
Michael.
no Kidding. Thats just 3 Nodes. Imho Proxmox can handle up to 16 Nodes *gg*