Linux 路由网关位于不同的 VLAN

Linux 路由网关位于不同的 VLAN

在托管环境中,我们无法控制路由器,我们只有一个内部网络和一个 DMZ 网络,每个网络内都有一个主机。DMZ 中有一个运行 Openswan 的 RHEL 服务器,它终止了通往另一个站点的 IPsec VPN 隧道。

内部网络中的系统需要访问隧道另一端的系统。其思路是在内部主机上创建一条路由,指向 DMZ 主机作为网关,以到达隧道另一端的主机。

根据研究,似乎我无法在与我没有直接连接的另一个子网中设置网关。情况确实如此吗?有什么方法可以解决这个问题吗?

这是我在内部主机上运行的命令:

route add -host $hostOnOtherSideOfVPN gw $hostInDMZ dev eth0

我可以毫无问题地访问 DMZ 中的主机(ICMP、telnet 等)。有人能给我指明正确的方向吗?

答案1

终端设备(非路由器)的路由基于 3 条信息,即您的 IP 地址、子网掩码和默认网关。主机对 IP 地址和子网掩码进行计算,以确定哪些 IP 是“本地”的,哪些 IP 应发送到默认网关进行进一步处理。因此,您的默认网关必须与您位于同一子网,否则配置根本不起作用。

答案2

通过在默认网关中添加到该网络的路由,您可以通过默认网关获得到其他网络的路由。因此,流量将通过特定路由而不是默认路由(此时默认路由将是路由器的默认网关)。

所以你需要的是这个:

本地 LAN--->DG--->DMZ 主机--->本地 VPN 端点--->远程 VPN 端点--->远程 LAN

这可以通过在 DG 中添加一条路由到本地 DMZ VPN 端点的远程 LAN 路由来实现。然后,本地 DMZ VPN 端点应该在其路由表中有一个到远程 LAN 的路由(它可能已经通过 VPN 连接存在)。

答案3

您可以在 $DMZHost 和 $RemoteHost(s) 之间设置 SSH 反向代理,但根据您需要在另一端访问的远程主机和远程主机端口的数量,这可能有点笨拙。

如果可行,您将连接到隧道中指定的转发端口上的 $DMZHost。

相关内容