我正在尝试在我们两个办公室之间建立站点到站点的 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
从 192.168.2.0 LAN(在 R1 上)上的主机,我可以 ping 10.10.0.34(R2 上的 LAN 端口 IP),但无法 ping 10.10.0.4(R2 LAN 上的主机)。
我的配置有什么问题吗?
答案1
这通常与路由有关。如果你可以从一个 OpenVPN 端点到达另一个端点,那么你应该已经接近正常工作的设置了 - 但是:
如果有需要在特定端点之外访问的 LAN,请确保启用 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 文档 -就像局域网上的这个。 希望可以帮助你!