我怎样才能通过首先强制它通过另一个内部 IP 来从一台服务器路由外部 IP?
在我们的网络设置中,源服务器通过一张网卡连接到互联网。目标服务器也连接到互联网。
当我使用目标 IP 时,我希望数据包首先被路由到另一个内部 IP,然后再转发到目标服务器的外部 IP,而不是直接通过互联网通过该服务器进行通信。
将会有多个系统请求使用这个外部 IP,并且所有系统都必须首先通过内部 IP 进行路由。
我有 Windows 服务器,我希望以最少的努力和最少的权限执行上述路由。
答案1
我无法发表评论,因为我没有所需的代表,但从我有限的网络知识来看,我认为这取决于您使用的路由器类型。如果您使用 Linux 机器作为路由器,使用命令,这将很简单。iptables
您可以在机器上创建转发规则并通过该机器路由所有流量。
由于您使用的是 Windows,因此您表面上必须在每台计算机上配置出站防火墙规则,以便将流量重定向到内部网络。根据您的 Windows 版本,这些基于 CLI 的工具会有所不同(例如 2008 版的 netsh、2012 版的 Powershell 3.0 cmdlet 等)。这会很繁琐,因为您必须在网络上的每台计算机上添加规则(以便出站流量不会总是反弹回转发机器)。
或者,如果您的传统硬件路由器具有足够先进的端口转发选项,您也可以在传统硬件路由器上执行此操作。
就我个人而言,我会启动一个简单的 Linux(Ubuntu 14.10 LTS 服务器版)机箱作为 Hyper-V 客户机,并通过它转发所有流量,使用 IPTables 配置路由。这有点儿像黑客行为,并且不是系统资源的最佳利用方式,但它可以让您完全控制本地网络流量。如果您不想浪费虚拟化资源,请使用旧的物理机箱或 dd-wrt 路由器(两者都很便宜)。
这是来自 dd-wrt 网站的 iptables 手册页: http://www.dd-wrt.com/wiki/index.php/Iptables_command
答案2
也可以通过交换机和网络基础设施进行路由,但这取决于实际的硬件实现。