我们有两个互联网连接,分别在各自的路由器上。
路由器 1:192.168.0.1 / 255.255.255.0 路由器 2:192.168.0.2 / 255.255.255.0
我们的终端服务器有一个单网卡,192.168.0.3 / 255.255.255.0,默认网关为 192.168.0.1。
两个路由器都设置为将外部 3389 转发到 192.168.0.3。当通过路由器 1 从 WAN 连接时,连接成功,没有问题。如果我们尝试通过路由器 2 连接,正如预期的那样,它不起作用。终端服务器配置为侦听所有 NIC/地址(默认)等。
现在我知道不应该添加第二个网关来解决这个问题,所以我假设服务器需要静态路由才能在需要时返回到路由器 2?
任何意见,将不胜感激。
答案1
假设两个路由器都接收来自互联网的连接(而不是您可以在静态路由中识别的互联网子集),Windows 就无法按照您的意愿行事。
如果“Router2”上的传入连接来自特定子网,那么只需通过“Router2”向该子网添加静态路由即可完成。
假设您希望在两个连接上都为来自 Internet 的连接提供服务:您正在寻找的是基于策略的路由功能,而 Windows 却没有这种功能。当 Windows 收到来自“Router2”的新连接尝试时,它将通过默认网关做出响应。Windows 并不“关心”该连接“来自”“Router2”路由器。
要实现您的目标,您需要在支持此功能的 Windows Server 计算机前面放置一个路由器。Linux 计算机可以做到这一点,任何主流品牌的嵌入式路由器(Cisco、Juniper 等)也可以做到这一点。
编辑:
仅在机器上安装第二个 NIC 并没有帮助。Windows 仍将响应其默认网关。
这是您需要关注的关键点。Windows 可以从任意数量的来源接收新连接,但它将通过其默认网关响应子网外的主机。
正如 Zoredache 指出的那样,您可以将路由器配置为对传入连接进行源地址 NAT,此时 Windows 会“看到”这些连接来自路由器的 IP 地址,并会单独响应每个路由器。您将无法记录传入连接的真实源地址。虽然这很丑陋,但可以正常工作。
最后,我重复 Zoredache 所说的话:您在 ESXi 盒上 - 在 Windows 机器和 Internet 之间部署 Linux 路由器 VM 并在那里处理它。