Ось моя інфраструктура:
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 ), або це буде моє дуже останнє рішення.
ifpriv
інтерфейси на обох серверах з'єднані локальною мережею, і ви бачите вихідний пакет ifpriv
на сервері 1, але він ніколи не входить ifpriv
на сервері 2, чи правильно? Дурне питання: Чи можете ви пінг сервер 2 з сервера 1 безпосередньо?
iptables -t nat -A POSTROUTING -s 10.10.1.0/24 -o ifpriv -j MASQUERADE
наприклад, на сервері 1 і тепер я можу пінг сервера 2 приватного ip від мого клієнта. Але, як описано на сторінці NatHackThe authorities would see all the telephone calls as coming from you. It would be better if everyone got their own phone, so the calls could be routed directly.
. Отже, проблема тут ще ...