Всем привет!
Есть облачные сервера Centos. Задача: построить архитектуру OpenVPN в таком виде: клиент подключается к бастиону ->> бастион подключается к центральному серверу OpenVPN ->> центральный сервер маршрутизирует трафик во внутреннюю сеть нужного мне сервиса. Всего должно быть 3 бастиона (по одному для каждого филиала) и два центральных OpenVPN-сервера с плавающим IP. Короче: клиент OpenVPN ->> клиент-сервер OpenVPN ->> сервер OpenVPN.
IP-адрессация (белые адреса, все на разных облаках; придуманные айпишники из головы):
1. Бастион - 175.79.254.95
2. Центральный сервер - 79.175.254.95
Что имею: клиент (любой айпи) без проблем по отдельности подключается и к бастиону (175.79.254.95) , и к центральному серверу (79.175.254.95). Интернет есть с обоих серверов.
Проблема: при коннектинге бастиона (175.79.254.95) и центрального сервера (79.175.254.95) обрывается связь с бастионом. Бастион не пингуется и не подает никаких признаков жизни, пока не перезапустить сервер.
Конфиг центрального OpenVPN-сервера:
[root@central-vpn-server ~]# cat /etc/openvpn/central-vpn-server.conf
port 1194
proto tcp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/central-vpn-server.crt
key /etc/openvpn/central-vpn-server.key
dh /etc/openvpn/dh2048.pem
tls-auth /etc/openvpn/ta.key 0
key-direction 0
cipher AES-128-CBC
auth SHA512
server 10.8.4.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push «dhcp-option DNS 208.67.222.222»
push «dhcp-option DNS 208.67.220.220»
push «redirect-gateway def1 bypass-dhcp»
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append /var/log/openvpn/openvpn.log
log /var/log/openvpn.log
Состояние netstat -tlnp центрального OpenVPN-сервера:
[root@central-vpn-server~]# netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1017/master
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 930/nginx: master p
tcp 0 0 0.0.0.0:22131 0.0.0.0:* LISTEN 1139/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1017/master
tcp6 0 0 :::80 :::* LISTEN 930/nginx: master p
tcp6 0 0 :::22131 :::* LISTEN 1139/sshd
Состояние netstat -nr центрального OpenVPN-сервера:
[root@central-vpn-server ~]# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.18.62.22 0.0.0.0 UG 0 0 0 eth0
10.18.62.22 0.0.0.0 255.255.255.254 U 0 0 0 eth0
Конфиг бастион OpenVPN-сервера:
[root@bastion-server ~]# cat /etc/openvpn/bastion-server.conf
port 1194
proto tcp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/bastion-server.crt
key /etc/openvpn/bastion-server.key
dh /etc/openvpn/dh2048.pem
tls-auth /etc/openvpn/ta.key 0
key-direction 0
cipher AES-128-CBC
auth SHA512
topology subnet
server 10.8.3.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push «dhcp-option DNS 208.67.222.222»
push «dhcp-option DNS 208.67.220.220»
push «redirect-gateway def1 bypass-dhcp»
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append /var/log/openvpn/openvpn.log
Состояние netstat -tlnp бастион OpenVPN-сервера:
[root@bastion-server ~]# netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:1194 0.0.0.0:* LISTEN 1020/openvpn
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1038/nginx: master
tcp 0 0 0.0.0.0:22131 0.0.0.0:* LISTEN 1253/sshd
tcp6 0 0 :::80 :::* LISTEN 1038/nginx: master
tcp6 0 0 :::22131 :::* LISTEN 1253/sshd
Состояние netstat -nr бастион OpenVPN-сервера:
[root@bastion-server ~]# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 172.31.1.1 0.0.0.0 UG 0 0 0 eth0
10.8.3.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
172.31.1.1 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
Конфиг клиента (одинаковый):
[root@client ~]# cat /etc/openvpn/client.conf
client
dev tun
proto tcp
remote $IP 1194
remote-cert-tls server
key-direction 1
cipher AES-128-CBC
auth SHA512
auth-nocache
nobind
resolv-retry infinite
comp-lzo
verb 3
persist-key
persist-tun
user nobody
group nobody
Вопрос: как правильно прописать маршрутизацию, чтобы моя схема стала рабочей? Я понимаю, что совсем запутался в маршрутизации, поэтому не стал прикладывать сюда роуты и пуши, коих перепробовал все варианты (или не все), поэтому выложил просто рабочие конфиги.