На ESXI гипервизоре есть VM-router, которая выполняет роль NAT и OVPN сервера, имеет два интерфейса: eth0 (ip 46.4.120.218, смотрит в интернет) и eth1 (VLAN).
В VLAN есть много виртуалок, которые имеют локальные адреса вида 192.168.182.*/28, и ходят в интернет через NAT.
Посредством OVPN я пытаюсь подключиться к любой из этих локальных виртуалок в VLAN, но ни к одному ip 192.168.182.*/28 пинг с OpenVPN клиента не проходит:
PING 192.168.182.17 (192.168.182.17) 56(84) bytes of data.
Настраивал OpenVPN согласно
официальной доке (не затрагивая TLS, пока разбираюсь с основами).
В итоге на VPNServer виртуалке я вижу новый интерфейс tun0 с ip 10.9.8.1, на VPNClient тоже вижу tun0 с ip 10.9.8.2. После запуска OpenVPN на обеих машинах общение идет отлично, пинга по ip 10.9.8.* проходит замечательно.
IPv4 forwaring на OpenVPN server включен.
OpenVPN server routing table
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 46.4.120.193 0.0.0.0 UG 0 0 0 eth0
10.9.8.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
46.4.120.192 0.0.0.0 255.255.255.224 U 0 0 0 eth0
192.168.182.16 0.0.0.0 255.255.255.240 U 0 0 0 eth1
OpenVPN client routing table
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 88.198.179.46 0.0.0.0 UG 0 0 0 eth0
10.9.8.1 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
88.198.179.40 0.0.0.0 255.255.255.248 U 0 0 0 eth0
Iptables config на OVPN Server:
# NAT для VLAN
*nat
-A POSTROUTING -s 192.168.0.0/16 -o eth0 -j SNAT --to-source 46.4.120.218
COMMIT
# Проброс портов
*filter
-A FORWARD -s 192.168.182.0/24 -d 88.198.179.41/29 -j ACCEPT
-A FORWARD -d 192.168.182.0/24 -s 88.198.179.41/29 -j ACCEPT
COMMIT
Конфиг tun0 на OVPN Server:
dev tun0
ifconfig 10.9.8.1 10.9.8.2
secret /etc/openvpn/static.key
Конфиг tun0 на OVPN Client:
remote 46.4.120.218
dev tun0
ifconfig 10.9.8.2 10.9.8.1
secret /etc/openvpn/static.key
Возможно проблема в том, что VPN Client не знает, куда ему направлять пакеты 192.168.182.*? Может быть необходимо добавить какой-либо маршрут?
P.S. Конфиг openvpn:
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
# ip отличается от tun0, это ок?
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.182.0 255.255.255.240"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3