如何连接两个具有相同 IP 的主机的 LAN?

如何连接两个具有相同 IP 的主机的 LAN?

我在办公室的一个测试实验室里,里面有 6 个不同的 LAN,每个 LAN 有 3 台 PC,假设它们通过交换机连接,分别称为机器 1、机器 2 和机器 3。它们使用的软件只能使用 3 个确定的 IP 地址,假设分别为 x、y 和 z。

因此,这 3 台类似 PC 所属的所有 6 个 LAN 都具有完全相同的手动配置 IP 地址。现在我想连接这 6 个 LAN 来共享文件、文件夹和其他测试数据。怎么做?因为我无法连接到同一个交换机或路由器,因为这会导致 IP 冲突。

那么有人可以帮我解决这个问题吗?

我想到的一个解决方案是安装第二张 NIC/LAN 卡并创建第二个网络以使它们连接到网络。

还有什么方法可行吗?

答案1

如果您为每个局域网配备了一个路由器,并且可能还配备了一个额外的交换机,那么您可以在专用lan0网络上构建自己的小型“互联网”。这些方法也适用于 2 个以上的局域网:

在此处输入图片描述

即使使用基本的家用路由器也可以完成此设置,因为它们通常已经配置为NAT(网络地址转换)并伪装wan端口上的传出流量。(这意味着:路由器通过将所有数据包中的源地址替换为其自己的IP ,隐藏了lan1和中的机器的地址)lan2wan

lan1在网络中使用静态 IP 地址时lan2,必须手动设置默认路由在您的机器上指向其上游路由器 IP(eth1

wan在路由器端口上使用静态 IP 地址时,应使用源地址转换代替化装舞会(通常在使用 DHCP 配置wan端口时使用)。

可选:添加路由器lan0并配置为DHCP 服务器,为wan路由器的端口动态分配IP。

选项 1 使用 DNAT(端口转发):

现在您可以在路由器上配置一些端口转发规则。根据您想要共享的服务,这可能会有点复杂。例如,为了能够通过 SSH 进行访问,反之亦然lan1lan2您需要一些这样的规则(当使用带有 iptables 的 Linux 路由器时):

iptables -A PREROUTING -i eth0 -p tcp --dport 2202 -j DNAT --to 10.0.0.2:22
iptables -A PREROUTING -i eth0 -p tcp --dport 2203 -j DNAT --to 10.0.0.3:22
iptables -A PREROUTING -i eth0 -p tcp --dport 2204 -j DNAT --to 10.0.0.4:22

您可以使用来自其他局域网的转发端口访问单个 ssh 服务器。例如,lan1 10.0.0.2可以lan2 10.0.0.3使用 IP 和端口组合进行访问10.1.0.2:2203

选项 2 使用 VPN 网络:

在此处输入图片描述

如果您有另一台可用的计算机(称为server1),请将其连接到lan0网络并将其配置为 VPN 服务器。例如,当使用OpenVPN一个新的虚拟接口tun0用于VPN网络。

在所有机器上安装 VPN 客户端,并将它们全部通过 IP 连接到 VPN 服务器10.1.0.100,这不需要路由器上的任何端口转发,只需要伪装或 SNAT。

再次以 VPN 为例,这将tun0在每个客户端上创建一个额外的虚拟接口,您可以在其中为每个客户端分配一个唯一 IP 地址在 VPN 子网上10.8.0.0/24,他们可以相互通信(在 OpenVPN 中,您需要使用指令client-to-client来允许这样做)。

该子网也称为“VPN 隧道”。

无需专用路由器的方案 1:

正如您所建议的,您可以安装一个附加网卡在每个局域网中的一台机器上并将其配置为路由器,替换上图中的专用路由器。

无需专用 VPN 服务器的方案 2:

您可以使用其中一台机器lan1lan2托管VPN 服务器并通过转发端口从其他局域网访问它,如选项 1 中所述。

选项 3 使用 VPN 来测试 IP

根据您的测试内容,这可能是最简单的解决方案,因为除了交换机之外,它根本不需要硬件。

坏处:这将对测试网络的性能产生影响,因为 VPN 隧道为所有网络数据包增加了另一层复杂性。您可以通过禁用加密来最大限度地减少影响,例如将以下指令添加到 OpenVPN 配置中:

auth none
cipher none

网络设置如下:

lan0 10.0.0.0/24
+-----+------------+------------+-------------+------------+------------+----+
      |            |            |             |            |            |
      |            |            |             |            |            |
  eth0|        eth0|        eth0|         eth0|        eth0|        eth0|
+----------+ +----------+ +----------+  +----------+ +----------+ +----------+
|10.0.0.1  | |10.0.0.2  | |10.0.0.3  |  |10.0.0.4  | |10.0.0.5  | |10.0.0.6  |
|machine1  | |machine2  | |machine3  |  |machine1  | |machine2  | |machine3  |
|lan1      | |lan1      | |lan1      |  |lan2      | |lan2      | |lan2      |
|VPN-server| |VPN-client| |VPN-client|  |VPN-server| |VPN-client| |VPN-client|
|10.8.0.x  | |10.8.0.y  | |10.8.0.z  |  |10.8.0.x  | |10.8.0.y  | |10.8.0.z  |
+----------+ +----------+ +----------+  +----------+ +----------+ +----------+
  tun0|        tun0|        tun0|         tun0|        tun0|        tun0|
      |            |            |             |            |            |
      |            |            |             |            |            |
+-----+------------+------------+----+  +-----+------------+------------+----+
lan1 (VPN) 10.8.0.0/24                  lan2 (VPN) 10.8.0.0/24

您只需要将 VPN 的子网调整为x, y, z您测试所需的子网和 IP。

相关内容