У меня есть сервер с публичным IP-адресом. Назовем его $ EXTERNAL. На этом сервере у меня есть сервер OpenVpn.
Сервер настроен для работы в сети:
server 10.14.0.0 255.255.255.0
У меня есть маршрутизатор с прошивкой томата, к которому подключен клиент OpenVpn. У роутера LAN 10.1.1.0/24. Вот таблица маршрутизации роутера:
# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.14.0.9 0.0.0.0 255.255.255.255 UH 40 0 0 tun11
192.168.1.0 0.0.0.0 255.255.255.0 U 40 0 0 vlan1
10.1.1.0 0.0.0.0 255.255.255.0 U 40 0 0 br0
10.14.0.0 10.14.0.9 255.255.255.0 UG 40 0 0 tun11
127.0.0.0 0.0.0.0 255.0.0.0 U 40 0 0 lo
0.0.0.0 192.168.1.1 0.0.0.0 UG 40 0 0 vlan1
Я могу пинговать 10.14.0.1 с роутера. Я могу подключиться к внешнему серверу по ssh как
me@tomato>$ ssh 10.14.0.1
и
me@tomato>$ ssh $EXTERNAL
Однако с компьютера в сети 10.1.1.x я не могу подключиться к серверу vpn по его ip vpn.
me@10.1.1.101>$ ssh 10.14.0.1
терпит неудачу, но
me@10.1.1.101>$ ssh $EXTERNAL
удается.
Кроме того, я не знаю, связано ли это, но с маршрутизатора,
me@tomato>$ telnet 10.14.0.1 80
терпит неудачу, но
me@tomato>$ telnet $EXTERNAL 80
удается.
Вам нужно добавить маршрут к 10.1.1.0/24 на VPN-сервере, чтобы клиенты могли до него добраться:
root@vpn-server:~# ip route add 10.1.1.0/24 via 10.14.0.9