在不同VLAN中使用网关进行Linux路由

在我们无法控制路由器的托pipe环境中,我们只有一个内部networking,一个DMZnetworking和一个主机。 在DMZ中是运行Openswan的RHEL服务器,并终止到其他站点的IPsec VPN隧道。

内部networking中的系统需要访问隧道另一端的系统。 这个想法是在内部主机上创build一个指向DMZ主机的路由,作为到达隧道另一侧主机的网关。

根据研究,似乎我不能在另一个子网中没有直接连接到我的网关。 这确实是这种情况,有什么办法可以解决这个问题吗?

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

route add -host $hostOnOtherSideOfVPN gw $hostInDMZ dev eth0 

我能够访问DMZ中的主机而没有任何问题(ICMP,telnet等)。 任何人都可以指向正确的方向吗?

terminal设备(非路由器)的路由可以处理3条信息,包括IP地址,子网掩码和默认网关。 主机会根据IP地址和子网掩码进行math计算,以确定哪些IP是“本地”的,哪些IP应该发送到默认网关进行进一步处理。 因此,您的默认网关必须与您在同一个子网上,否则configuration根本无法工作。

通过在默认网关中添加到该networking的路由,您可以通过默认网关获得到另一个networking的路由。 所以stream量通过一个特定的路由,而不是默认的路由(这个路由器默认网关)。

所以你需要的是这样的:

本地LAN —> DG —> DMZ主机—>本地VPN端点—>远程VPN端点—>远程局域网

这应该通过在您的DG中为远程LAN添加路由到本地DMZ VPN端点的路由来完成。 本地DMZ VPN端点应该有一个路由(它可能已经在那里通过VPN连接)到它的路由表中的远程LAN。

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

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