Вот моя инфраструктура:
dns of mydomain.com:
vpn A 90.90.90.1
vpn A 90.90.90.2
client vpn config:
client
dev tun
proto udp
nobind
remote vpn.mydomain.com 1394
server1
net.ipv4.ip_forward = 1
iptables:
FORWARD defaults to ACCEPT
vpn config:
dev tun
topology subnet
port 1394
proto udp
server 10.10.1.0 255.255.255.0
push "route 10.90.90.0 255.255.255.0"
interfaces:
ifpub: 90.90.90.1/24
ifpriv: 10.90.90.1/24
ifvpn: 10.10.1.1/24
routes:
10.10.1.0/24 src 10.10.1.1 dev ifvpn
10.10.2.0/24 via 10.90.90.2 dev ifpriv
server2
net.ipv4.ip_forward = 1
iptables:
FORWARD defaults to ACCEPT
vpn config:
dev tun
topology subnet
port 1394
proto udp
server 10.10.2.0 255.255.255.0
push "route 10.90.90.0 255.255.255.0"
interfaces:
ifpub: 90.90.90.2/24
ifpriv: 10.90.90.2/24
ifvpn: 10.10.2.1/24
routes:
10.10.1.0/24 via 10.90.90.1 dev ifpriv
10.10.2.0/24 src 10.10.2.1 dev ifvpn
Проблема в том, что с моего клиента я могу пропинговать сервер OpenVPN, к которому я подключен, но не другой сервер в подсети 10.90.90.0/24.
tcpdump
показывает, что запрос ICMP переходит от ifvpn
к ifpriv
на том же сервере, но затем пакет запроса ICMP никогда не идет дальше.
Добавление регистрации в iptables также показывает, что пакет запроса ICMP переходит в состояние POSTROUTING без потери, но затем пакет так и не дошел до места назначения, и я не знаю, что здесь происходит, у меня нет решений.
Я знаю, что могу маскировать свои пакеты, но не хочу, потому что это не рекомендуется (https://community.openvpn.net/openvpn/wiki/NatHack), иначе это будет мое самое последнее решение.