具有多个 NIC 的计算机设备可以为隔离网络配置相同的子网吗?

网络工程 子网
2021-07-14 04:33:31

两网

我有一个使用 Xilinx ARM 处理器的嵌入式设备,带有 eth0 和 eth1。我也有 wlan0 并且我正在运行 Linux 3.17。

PC0 <---left--->[eth0  ARM   eth1]<---right:some devices--->PC1

:点对点,只有PC0连接到eth0。这是局域网。我们用这边来做ftp。我们还通过我们的 PC 软件配置了 eth1 的 IP 地址。我们计划将 eth0 指定为 192.168.1.100,将 PC0 指定为 192.168.1.99。

右图:一些设备连接成局域网。我们的客户配置他们的右侧,而不要我们参与这一侧。我们的客户可以使用我们相同的PC软件从eth1端读取数据或ftp。

左右之间:什么都不应该转发,没有桥接,完全隔离。

问题

以下配置在我看来存在潜在问题,希望得到同行的意见:

  1. 如果客户已将其网络配置为 192.168.1.x,并将 eth1 配置为 1.100 == eth0,则此设备将在不同网络上拥有两个 IP 相同的网卡。我们应该避免这种情况吗?

    PC0(99) <---left--->[eth0(100) ARM eth1(100)]<---right:一些设备--->PC1

  2. 如果客户将他们的网络配置为 192.168.1.x,并将 eth1 配置为 1.99 == PC0,现在这会混淆 ARM 设备上的 Linux 吗?现在堆栈知道 PC0 和 eth1 是相同的 IP。我们应该避免这种情况吗?

    PC0(99) <---left--->[eth0(100) ARM eth1(99)]<---right:一些设备--->PC1

  3. 如果客户配置网络为192.168.1.x,eth1为1.98,PC1为100,会不会有问题?我们应该避免这种情况吗?

    PC0(99) <---left--->[eth0(100) ARM eth1(98)]<---right:一些设备--->PC1(100)

  4. 如果客户配置网络为192.168.1.x,eth1配置为1.98,PC1配置为99,会不会有问题?我们应该避免这种情况吗?

    PC0(99) <---left--->[eth0(100) ARM eth1(98)]<---right:一些设备--->PC1(99)

  5. 如果客户配置网络为192.168.1.x,eth1配置为1.98,PC1配置为101,右边其他设备的IP不是98,或者100,希望有办法配置路由表,因此对 eth0 的请求通过 eth0 回复,对 eth1 的请求通过 eth1 回复。但是会不会有问题?是否建议避免这种情况?

    PC0(99) <---left--->[eth0(100) ARM eth1(98)]<---right:一些设备--->PC1(101)

我们是否应该告诉客户我们左侧的子网是什么,而根本不要在右侧使用相同的子网?想象一下,如果我们在这个 ARM 设备上运行两个操作系统,每个操作系统控制一个网卡,那么没有问题。

1个回答

两个网络中间的主机,都使用192.168.1.0/24,将无法知道它192.168.1.99本身在其中一个网络上,除非您有特定的路由。您还应该确保另一端的主机没有相同的地址,或192.168.1.100. 隔离主机 ( 192.168.1.99) 将不能发送或接收除 to 之外的任何内容192.168.1.100,并且另一端的任何东西都无法与隔离 PC 通信。

显而易见的解决方案是为左侧选择地址,该地址在右侧的其他任何地方都不存在。您可以使用具有/31掩码长度的点对点链接,因为它只需要两个地址。有很多可能不会使用的地址块,例如 TEST-NET-1、TEST-NET-2、TEST-NET-3 等。查看RFC 5735,特殊用途 IPv4 地址,第 4 节,汇总表,用于候选地址块。事实上,来自本地链路块 ( 169.254.0.0/16) 的地址可能是理想的,因为这些地址被禁止路由。您也不应该从 更改掩码大小/16,但这对您的应用程序来说并不重要。