Назад | Перейти на главную страницу

Устранение неполадок Open VPN

Я пытаюсь установить 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 - как этот бит в локальных сетях. Надеюсь, что это работает для вас!