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

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

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

Связанный контент