使用 OpenVPN 的站点到站点隧道

使用 OpenVPN 的站点到站点隧道

我有 2 个网络,我想在这两个网络之间建立 VPN 隧道。目前它看起来是这样的:

网络拓扑结构

在主端,vpn 服务器位于独立于路由器的 Linux 设备上!在次端,vpn 客户端位于路由器本身上。该路由器是 OpenWRT 路由器,仅用于 VPN 路由器。我无法配置服务器和服务器局域网以在两者之间建立完整的站点到站点连接。

主网络中的每个客户端都应该到达辅助网络中的每个客户端,反之亦然。

OpenWRT/openWRT 路由器连接到主站点并到达网络中的每个设备(通过 OpenWRT 路由器上的 SSH,例如 10.0.254.254 上的 ping 成功),但无论我设置了哪些静态路由,此站点的任何客户端都无法到达主站点。除非我配置客户端,所有请求都将重定向到目标网络(redirect-gateway def1)。

这样,每个连接都会被转发(这不是最佳的,因为我想使用本地互联网连接)并且我能够访问辅助网络的所有客户端,但是,不幸的是,反过来却行不通。主站点 -> 辅助站点。

无论我如何测试,过去几天我都无法管理从主站点到安全站点的连接。

许多人写了如何使用 iroute、push route 和 route。我找不到合适的方案来正确进行路由。有人说我必须将其写入 /etc/openvpn/ccd/clientname,有人说不需要。

我现在很困惑。我希望得到能帮助我解决这个问题的答案。这应该不难——虽然我已经读过 wireguard 在这个问题上表现更好,但我仍然想尝试 ovpn

我要怎么做才能让它工作?

我已经尝试过这个:

https://openwrt.org/docs/guide-user/services/vpn/openvpn/extra#site-to-site https://forum.openwrt.org/t/openvpn-site-to-site-vpn/37259 https://openwrt.org/docs/guide-user/services/vpn/openvpn/client

答案1

您需要10.0.0.0/16在第二个路由器上添加一条路由,并10.10.0.0/16在主路由器上添加一条路由。因此:

route 10.10.0.0 255.255.0.0
push "route 10.0.0.0 255.255.0.0"

在服务器conf中应该这样做。前者用于服务器(主路由器),后者用于客户端(第二个路由器)。

iroute也需要(对于10.10.0.0/16),除非您不使用mode server(暗示server),因为这假设将有多个客户端,并且会iroute告诉服务器哪个客户端应该接收特定流量。请确保client-config-dir在服务器配置文件中指向包含带有的文件的目录iroute(并且文件本身需要使用客户端的“通用名称”命名)。

相关内容