Я пытаюсь установить VPN-соединение между двумя нашими офисами. Я использую VPN-серверы 2 "Edgerouter lite", а программное обеспечение для туннелирования, которое я использую, - OpenVPN.
Вот как обстоят дела на данный момент:
-
R1:
LAN subnet: 192.168.2.0/24
LAN port: 192.168.2.1
WAN port: X.X.X.X
-
R2:
LAN subnet: 10.10.0.0/24
LAN port: 10.10.0.34
WAN port: Y.Y.Y.Y
-
R1 Open VPN config:
openvpn vtun0 {
local-address 192.168.2.1 {
}
local-port 1194
mode site-to-site
openvpn-option --comp-lzo
openvpn-option --float
openvpn-option "--ping 10"
openvpn-option "--ping-restart 20"
openvpn-option --ping-timer-rem
openvpn-option --persist-tun
openvpn-option --persist-key
openvpn-option "--user nobody"
openvpn-option "--group nogroup"
remote-address 10.10.0.39
remote-host X.X.X.X
remote-port 1194
shared-secret-key-file /config/auth/secret
}
-
R2 Open VPN config:
openvpn vtun0 {
local-address 10.10.0.39 {
}
local-port 1194
mode site-to-site
openvpn-option --comp-lzo
openvpn-option --float
openvpn-option "--ping 10"
openvpn-option "--ping-restart 20"
openvpn-option --ping-timer-rem
openvpn-option --persist-tun
openvpn-option --persist-key
openvpn-option "--user nobody"
openvpn-option "--group nogroup"
remote-address 192.168.2.1
remote-host Y.Y.Y.Y
remote-port 1194
shared-secret-key-file /config/auth/secret
}
-
show openvpn status site-to-site on R1
OpenVPN client status on vtun0 []
Remote CN Remote IP Tunnel IP TX byte RX byte Connected Since
--------------- --------------- --------------- ------- ------- ------------------------
None (PSK) Y.Y.Y.Y 10.10.0.39 51.6K 51.0K N/A
-
show openvpn status site-to-site on R2
OpenVPN client status on vtun0 []
Remote CN Remote IP Tunnel IP TX byte RX byte Connected Since
--------------- --------------- --------------- ------- ------- ------------------------
None (PSK) X.X.X.X 192.168.2.1 85.3K 84.5K N/A
-
Routing table R1:
IP Next hop INT TYPE
0.0.0.0/0 X.X.X.XGW eth1 static
127.0.0.0/8 lo connected
192.168.2.0/24 eth0 connected
X.X.X.X/X eth1 connected
10.10.0.0/24 vtun0 static
10.10.0.39/32 vtun0 connected
-
Routing table R2:
IP Next hop INT TYPE
0.0.0.0/0 Y.Y.Y.YGW eth0 static
127.0.0.0/8 lo connected
10.10.0.0/24 eth1 connected
Y.Y.Y.Y/Y eth0 connected
192.168.2.0/24 vtun0 static
192.168.2.1/32 vtun0 connected
С хоста в LAN 192.168.2.0 (на R1) я могу пинговать 10.10.0.34 (IP-адрес порта LAN на R2), но не могу пинговать 10.10.0.4 (хост в LAN R2).
Что-то не так в моей конфигурации?
Обычно это связано с маршрутизацией. Если вы можете перейти от одной конечной точки OpenVPN к другой, вы должны быть довольно близки к рабочей настройке, но:
Убедитесь, что IP-переадресация включена, если локальная сеть должна быть доступна за пределами определенной конечной точки.
Клиенты на удаленной стороне соединения не знают, как вернуться на другую сторону соединения. Это верно в обоих направлениях через туннель.
Вы можете исправить это, используя iroute
и push
заявления в openvpn.conf
на ваш выбор. Если вы присоединяетесь к двум сетям x.x.x.x
и y.y.y.y
, затем на стороне сервера (скажем x.x.x.x
), ты можешь сделать это:
push "route net mask"
или push "route x.x.x.x 255.255.255.0"
например. Это передает удаленным клиентам y.y.y.y
правильный маршрут обратно в x.x.x.x
через туннель.
Если на стороне сервера (x.x.x.x
) должен видеть станции за пределами шлюза OpenVPN в y.y.y.y
, вам также необходимо использовать iroute
заявление. Ставить iroute y.y.y.y 255.255.255.0
на стороне сервера, чтобы это произошло. Это в основном позволяет OpenVPN узнать, какой клиент отвечает за конкретную подсеть.
iroute
заявления должны войти в ccd
(Я думаю, каталог конфигурации клиента). Обычно это находится в файлах с именем /etc/openvpn/ccd/<client name>
.Думаю, это должно вас подтолкнуть. Также обратите внимание на отличную документацию OpenVPN - как этот бит в локальных сетях. Надеюсь, что это работает для вас!