Есть локальная сеть — 192.168.1.0/24. Шлюз сети — 192.168.1.1, сервер vpn — 192.168.1.5. Виртуальная сеть — 10.15.0.0/24. Часть настройки сервера server.conf:
local 192.168.1.5
port 1194
proto udp
dev tun
push "dhcp-option DNS 8.8.8.8"
push "route 192.168.1.0 255.255.255.0"
route 10.15.0.0 255.255.255.0
iptables -t nat -A POSTROUTING -s 10.15.0.0/24 -o eth0 -j MASQUERADE
iptables -I FORWARD -s 10.15.0.0/24 -d 192.168.1.0/24 -j ACCEPT
~$ route -n
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
10.15.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
Клиент — ноут с 3G-модемом. Часть server.conf:
dev tun
proto udp
port 1194
remote public_ip
client
~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
10.15.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
10.64.64.64 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.1.0 10.15.0.1 255.255.255.0 UG 0 0 0 tun0
Итак. Сервер vpn с адресом 10.15.0.1 выдает адрес клиенту — 10.15.0.2. Разумеется есть пинг между ними. Так же клиент видит локальную сеть — 192.168.1.0/24. Нужно, чтобы трафик шел через этот туннель.