将一台主机连接到位于不同网络上、具有相同网络地址的两台主机的选项?

将一台主机连接到位于不同网络上、具有相同网络地址的两台主机的选项?

这是我的情况的图表。

/-(Network cloud)- Host B (192.168.1.2) Host A -NIC 1 (192.168.1.50) - <-- Connected via patch panel to either B or C \-(Network cloud)- Host C (192.168.1.2) - NIC 2 (currently unused)

所有主机都运行 Linux Redhat 变体。此配置以前是两个完全独立的网络,用于测试软件部署。主机 B 和主机 C 都位于相同的网络上,因为它们都配置了相同的主机和网络地址。此外,主机 A 与两个网络之间的连接经过一系列交换机和路由器,出于测试原因,这些交换机和路由器无法修改。

我已将所有开发工具安装在主机 A 上。主机 A 上的一个网卡已配置为 192.168.1.0 网络的 IP,这样我就可以连接到主机 B 或主机 C 的网络。主机 A 上还有一个额外的网卡也可以使用。

我的问题是,如果有的话,我有哪些选项可以同时连接到主机 B 和主机 C?假设我只被允许更改主机 A 上的配置,而不能更改主机 B、主机 C 或沿途任何跃点上的配置。

我的第一个想法是可以使用主机 A 上的 NAT 转换来解决这个问题。但我不确定如何配置,或者这是否适合我的情况。

答案1

答案取决于网络服务的可访问性/要求。但一般来说,您可能要在两个网络(B 或 C)之一上使用 NAT。例如,您必须将网络 B 隐藏在 NAT 后面,并在具有 NAT 的路由器上为所需服务配置端口转发。

这甚至可以用于廉价的 soho 路由器 - 这是比直接在主机 A 上配置 NAT 更好的方法 - 更加独立于主机 A 硬件更新(升级、故障......)。

参见示例图:

主机 A NIC 1 (192.168.2.1) --> || 路由器 WAN -- 路由器 LAN || --> 主机 B (192.168.1.2)

主机 A NIC 2(192.168.1.50)--> 主机 C(192.168.1.2)

答案2

哇。有人把你置于非常糟糕的境地。你应该严肃地和他们说几句。此外,这就是为什么 IP 地址规划和避免 IP 地址重用如此重要,即使在具有未路由 IP 子网的内部网络上也是如此。

我认为您可以在主机 A 上使用静态 ARP 条目。考虑到它们位于不同的“网络云”上,这究竟如何工作可能是一个更具挑战性的问题。如果您可以将其中一个网络云连接到您的第二个适配器,那么我的建议(这是一个会破坏的邪恶黑客)是:

适配器 1:

  • IP:192.168.1.50/25
  • 主机B已连接至网络云

适配器 2:

  • IP:192.168.1.178/25
  • 主机C已连接至网络云

静态 ARP 条目:

  • 192.168.1.130 -> 主机 C 的 MAC 地址

现在,您可以以 192.168.1.2 的身份访问主机 B,以 192.168.1.130 的身份访问主机 C,数据包将通过正确的接口到达那里。所以它可能有效。至少在您解决网络问题之前。

注意事项(哦,天哪,有注意事项):

  • 主机 A 无法访问主机 B 所在网络的 192.168.1.0/24 上半部分中的主机,也无法访问主机 C 所在网络的 192.168.1.0/24 下半部分中的主机。
  • 主机 C 认为主机 A 的 IP 地址是 192.168.1.178,而不是 .50。(如果 178 已被占用,则可以使用该网络上半部分中未使用的 IP 地址)。
  • 您需要配置启动时建立的路由和静态 ARP 条目。
  • 您需要根据网关的 IP 地址仔细地放置计算机的默认路由;您可能需要更改包含默认路由的网络。
  • 为了防止这种情况在每次后续网络变更时发生,您必须强制执行非常严格的网络变更控制,如果您能够强制执行,就意味着您可以正确解决或预防这个问题。

请未来的编辑注意,请不要羞于添加这个答案是一个可怕的黑客行为或可能出错的原因。

相关内容