Я пытаюсь настроить VPN-соединение типа site-to-site между двумя нашими офисами. 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
С хоста в локальной сети 192.168.2.0 (на R1) я могу выполнить ping на 10.10.0.34 (IP-адрес порта локальной сети на R2), но я не могу выполнить ping на 10.10.0.4 (хост в локальной сети R2).
Что-то не так в моей конфигурации?
решение1
Обычно это связано с маршрутизацией. Если вы можете добраться от одной конечной точки 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 -как этот бит в локальных сетях. Надеюсь, что это работает для вас!